Add documentation for 1.1.0.
diff --git a/doc/1.1.0/guacamole-common-js/ArrayBufferReader.js.html b/doc/1.1.0/guacamole-common-js/ArrayBufferReader.js.html
new file mode 100644
index 0000000..beb0109
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/ArrayBufferReader.js.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: ArrayBufferReader.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: ArrayBufferReader.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A reader which automatically handles the given input stream, returning
+ * strictly received packets as array buffers. Note that this object will
+ * overwrite any installed event handlers on the given Guacamole.InputStream.
+ * 
+ * @constructor
+ * @param {Guacamole.InputStream} stream The stream that data will be read
+ *                                       from.
+ */
+Guacamole.ArrayBufferReader = function(stream) {
+
+    /**
+     * Reference to this Guacamole.InputStream.
+     * @private
+     */
+    var guac_reader = this;
+
+    // Receive blobs as array buffers
+    stream.onblob = function(data) {
+
+        // Convert to ArrayBuffer
+        var binary = window.atob(data);
+        var arrayBuffer = new ArrayBuffer(binary.length);
+        var bufferView = new Uint8Array(arrayBuffer);
+
+        for (var i=0; i&lt;binary.length; i++)
+            bufferView[i] = binary.charCodeAt(i);
+
+        // Call handler, if present
+        if (guac_reader.ondata)
+            guac_reader.ondata(arrayBuffer);
+
+    };
+
+    // Simply call onend when end received
+    stream.onend = function() {
+        if (guac_reader.onend)
+            guac_reader.onend();
+    };
+
+    /**
+     * Fired once for every blob of data received.
+     * 
+     * @event
+     * @param {ArrayBuffer} buffer The data packet received.
+     */
+    this.ondata = null;
+
+    /**
+     * Fired once this stream is finished and no further data will be written.
+     * @event
+     */
+    this.onend = null;
+
+};</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/ArrayBufferWriter.js.html b/doc/1.1.0/guacamole-common-js/ArrayBufferWriter.js.html
new file mode 100644
index 0000000..d0e0add
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/ArrayBufferWriter.js.html
@@ -0,0 +1,174 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: ArrayBufferWriter.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: ArrayBufferWriter.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A writer which automatically writes to the given output stream with arbitrary
+ * binary data, supplied as ArrayBuffers.
+ * 
+ * @constructor
+ * @param {Guacamole.OutputStream} stream The stream that data will be written
+ *                                        to.
+ */
+Guacamole.ArrayBufferWriter = function(stream) {
+
+    /**
+     * Reference to this Guacamole.StringWriter.
+     * @private
+     */
+    var guac_writer = this;
+
+    // Simply call onack for acknowledgements
+    stream.onack = function(status) {
+        if (guac_writer.onack)
+            guac_writer.onack(status);
+    };
+
+    /**
+     * Encodes the given data as base64, sending it as a blob. The data must
+     * be small enough to fit into a single blob instruction.
+     * 
+     * @private
+     * @param {Uint8Array} bytes The data to send.
+     */
+    function __send_blob(bytes) {
+
+        var binary = "";
+
+        // Produce binary string from bytes in buffer
+        for (var i=0; i&lt;bytes.byteLength; i++)
+            binary += String.fromCharCode(bytes[i]);
+
+        // Send as base64
+        stream.sendBlob(window.btoa(binary));
+
+    }
+
+    /**
+     * The maximum length of any blob sent by this Guacamole.ArrayBufferWriter,
+     * in bytes. Data sent via
+     * [sendData()]{@link Guacamole.ArrayBufferWriter#sendData} which exceeds
+     * this length will be split into multiple blobs. As the Guacamole protocol
+     * limits the maximum size of any instruction or instruction element to
+     * 8192 bytes, and the contents of blobs will be base64-encoded, this value
+     * should only be increased with extreme caution.
+     *
+     * @type {Number}
+     * @default {@link Guacamole.ArrayBufferWriter.DEFAULT_BLOB_LENGTH}
+     */
+    this.blobLength = Guacamole.ArrayBufferWriter.DEFAULT_BLOB_LENGTH;
+
+    /**
+     * Sends the given data.
+     * 
+     * @param {ArrayBuffer|TypedArray} data The data to send.
+     */
+    this.sendData = function(data) {
+
+        var bytes = new Uint8Array(data);
+
+        // If small enough to fit into single instruction, send as-is
+        if (bytes.length &lt;= guac_writer.blobLength)
+            __send_blob(bytes);
+
+        // Otherwise, send as multiple instructions
+        else {
+            for (var offset=0; offset&lt;bytes.length; offset += guac_writer.blobLength)
+                __send_blob(bytes.subarray(offset, offset + guac_writer.blobLength));
+        }
+
+    };
+
+    /**
+     * Signals that no further text will be sent, effectively closing the
+     * stream.
+     */
+    this.sendEnd = function() {
+        stream.sendEnd();
+    };
+
+    /**
+     * Fired for received data, if acknowledged by the server.
+     * @event
+     * @param {Guacamole.Status} status The status of the operation.
+     */
+    this.onack = null;
+
+};
+
+/**
+ * The default maximum blob length for new Guacamole.ArrayBufferWriter
+ * instances.
+ *
+ * @constant
+ * @type {Number}
+ */
+Guacamole.ArrayBufferWriter.DEFAULT_BLOB_LENGTH = 6048;
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/AudioContextFactory.js.html b/doc/1.1.0/guacamole-common-js/AudioContextFactory.js.html
new file mode 100644
index 0000000..8bbca11
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/AudioContextFactory.js.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: AudioContextFactory.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: AudioContextFactory.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Maintains a singleton instance of the Web Audio API AudioContext class,
+ * instantiating the AudioContext only in response to the first call to
+ * getAudioContext(), and only if no existing AudioContext instance has been
+ * provided via the singleton property. Subsequent calls to getAudioContext()
+ * will return the same instance.
+ *
+ * @namespace
+ */
+Guacamole.AudioContextFactory = {
+
+    /**
+     * A singleton instance of a Web Audio API AudioContext object, or null if
+     * no instance has yes been created. This property may be manually set if
+     * you wish to supply your own AudioContext instance, but care must be
+     * taken to do so as early as possible. Assignments to this property will
+     * not retroactively affect the value returned by previous calls to
+     * getAudioContext().
+     *
+     * @type {AudioContext}
+     */
+    'singleton' : null,
+
+    /**
+     * Returns a singleton instance of a Web Audio API AudioContext object.
+     *
+     * @return {AudioContext}
+     *     A singleton instance of a Web Audio API AudioContext object, or null
+     *     if the Web Audio API is not supported.
+     */
+    'getAudioContext' : function getAudioContext() {
+
+        // Fallback to Webkit-specific AudioContext implementation
+        var AudioContext = window.AudioContext || window.webkitAudioContext;
+
+        // Get new AudioContext instance if Web Audio API is supported
+        if (AudioContext) {
+            try {
+
+                // Create new instance if none yet exists
+                if (!Guacamole.AudioContextFactory.singleton)
+                    Guacamole.AudioContextFactory.singleton = new AudioContext();
+
+                // Return singleton instance
+                return Guacamole.AudioContextFactory.singleton;
+
+            }
+            catch (e) {
+                // Do not use Web Audio API if not allowed by browser
+            }
+        }
+
+        // Web Audio API not supported
+        return null;
+
+    }
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/AudioPlayer.js.html b/doc/1.1.0/guacamole-common-js/AudioPlayer.js.html
new file mode 100644
index 0000000..d9bd3e9
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/AudioPlayer.js.html
@@ -0,0 +1,556 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: AudioPlayer.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: AudioPlayer.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Abstract audio player which accepts, queues and plays back arbitrary audio
+ * data. It is up to implementations of this class to provide some means of
+ * handling a provided Guacamole.InputStream. Data received along the provided
+ * stream is to be played back immediately.
+ *
+ * @constructor
+ */
+Guacamole.AudioPlayer = function AudioPlayer() {
+
+    /**
+     * Notifies this Guacamole.AudioPlayer that all audio up to the current
+     * point in time has been given via the underlying stream, and that any
+     * difference in time between queued audio data and the current time can be
+     * considered latency.
+     */
+    this.sync = function sync() {
+        // Default implementation - do nothing
+    };
+
+};
+
+/**
+ * Determines whether the given mimetype is supported by any built-in
+ * implementation of Guacamole.AudioPlayer, and thus will be properly handled
+ * by Guacamole.AudioPlayer.getInstance().
+ *
+ * @param {String} mimetype
+ *     The mimetype to check.
+ *
+ * @returns {Boolean}
+ *     true if the given mimetype is supported by any built-in
+ *     Guacamole.AudioPlayer, false otherwise.
+ */
+Guacamole.AudioPlayer.isSupportedType = function isSupportedType(mimetype) {
+
+    return Guacamole.RawAudioPlayer.isSupportedType(mimetype);
+
+};
+
+/**
+ * Returns a list of all mimetypes supported by any built-in
+ * Guacamole.AudioPlayer, in rough order of priority. Beware that only the core
+ * mimetypes themselves will be listed. Any mimetype parameters, even required
+ * ones, will not be included in the list. For example, "audio/L8" is a
+ * supported raw audio mimetype that is supported, but it is invalid without
+ * additional parameters. Something like "audio/L8;rate=44100" would be valid,
+ * however (see https://tools.ietf.org/html/rfc4856).
+ *
+ * @returns {String[]}
+ *     A list of all mimetypes supported by any built-in Guacamole.AudioPlayer,
+ *     excluding any parameters.
+ */
+Guacamole.AudioPlayer.getSupportedTypes = function getSupportedTypes() {
+
+    return Guacamole.RawAudioPlayer.getSupportedTypes();
+
+};
+
+/**
+ * Returns an instance of Guacamole.AudioPlayer providing support for the given
+ * audio format. If support for the given audio format is not available, null
+ * is returned.
+ *
+ * @param {Guacamole.InputStream} stream
+ *     The Guacamole.InputStream to read audio data from.
+ *
+ * @param {String} mimetype
+ *     The mimetype of the audio data in the provided stream.
+ *
+ * @return {Guacamole.AudioPlayer}
+ *     A Guacamole.AudioPlayer instance supporting the given mimetype and
+ *     reading from the given stream, or null if support for the given mimetype
+ *     is absent.
+ */
+Guacamole.AudioPlayer.getInstance = function getInstance(stream, mimetype) {
+
+    // Use raw audio player if possible
+    if (Guacamole.RawAudioPlayer.isSupportedType(mimetype))
+        return new Guacamole.RawAudioPlayer(stream, mimetype);
+
+    // No support for given mimetype
+    return null;
+
+};
+
+/**
+ * Implementation of Guacamole.AudioPlayer providing support for raw PCM format
+ * audio. This player relies only on the Web Audio API and does not require any
+ * browser-level support for its audio formats.
+ *
+ * @constructor
+ * @augments Guacamole.AudioPlayer
+ * @param {Guacamole.InputStream} stream
+ *     The Guacamole.InputStream to read audio data from.
+ *
+ * @param {String} mimetype
+ *     The mimetype of the audio data in the provided stream, which must be a
+ *     "audio/L8" or "audio/L16" mimetype with necessary parameters, such as:
+ *     "audio/L16;rate=44100,channels=2".
+ */
+Guacamole.RawAudioPlayer = function RawAudioPlayer(stream, mimetype) {
+
+    /**
+     * The format of audio this player will decode.
+     *
+     * @private
+     * @type {Guacamole.RawAudioFormat}
+     */
+    var format = Guacamole.RawAudioFormat.parse(mimetype);
+
+    /**
+     * An instance of a Web Audio API AudioContext object, or null if the
+     * Web Audio API is not supported.
+     *
+     * @private
+     * @type {AudioContext}
+     */
+    var context = Guacamole.AudioContextFactory.getAudioContext();
+
+    /**
+     * The earliest possible time that the next packet could play without
+     * overlapping an already-playing packet, in seconds. Note that while this
+     * value is in seconds, it is not an integer value and has microsecond
+     * resolution.
+     *
+     * @private
+     * @type {Number}
+     */
+    var nextPacketTime = context.currentTime;
+
+    /**
+     * Guacamole.ArrayBufferReader wrapped around the audio input stream
+     * provided with this Guacamole.RawAudioPlayer was created.
+     *
+     * @private
+     * @type {Guacamole.ArrayBufferReader}
+     */
+    var reader = new Guacamole.ArrayBufferReader(stream);
+
+    /**
+     * The minimum size of an audio packet split by splitAudioPacket(), in
+     * seconds. Audio packets smaller than this will not be split, nor will the
+     * split result of a larger packet ever be smaller in size than this
+     * minimum.
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var MIN_SPLIT_SIZE = 0.02;
+
+    /**
+     * The maximum amount of latency to allow between the buffered data stream
+     * and the playback position, in seconds. Initially, this is set to
+     * roughly one third of a second.
+     *
+     * @private
+     * @type {Number}
+     */
+    var maxLatency = 0.3;
+
+    /**
+     * The type of typed array that will be used to represent each audio packet
+     * internally. This will be either Int8Array or Int16Array, depending on
+     * whether the raw audio format is 8-bit or 16-bit.
+     *
+     * @private
+     * @constructor
+     */
+    var SampleArray = (format.bytesPerSample === 1) ? window.Int8Array : window.Int16Array;
+
+    /**
+     * The maximum absolute value of any sample within a raw audio packet
+     * received by this audio player. This depends only on the size of each
+     * sample, and will be 128 for 8-bit audio and 32768 for 16-bit audio.
+     *
+     * @private
+     * @type {Number}
+     */
+    var maxSampleValue = (format.bytesPerSample === 1) ? 128 : 32768;
+
+    /**
+     * The queue of all pending audio packets, as an array of sample arrays.
+     * Audio packets which are pending playback will be added to this queue for
+     * further manipulation prior to scheduling via the Web Audio API. Once an
+     * audio packet leaves this queue and is scheduled via the Web Audio API,
+     * no further modifications can be made to that packet.
+     *
+     * @private
+     * @type {SampleArray[]}
+     */
+    var packetQueue = [];
+
+    /**
+     * Given an array of audio packets, returns a single audio packet
+     * containing the concatenation of those packets.
+     *
+     * @private
+     * @param {SampleArray[]} packets
+     *     The array of audio packets to concatenate.
+     *
+     * @returns {SampleArray}
+     *     A single audio packet containing the concatenation of all given
+     *     audio packets. If no packets are provided, this will be undefined.
+     */
+    var joinAudioPackets = function joinAudioPackets(packets) {
+
+        // Do not bother joining if one or fewer packets are in the queue
+        if (packets.length &lt;= 1)
+            return packets[0];
+
+        // Determine total sample length of the entire queue
+        var totalLength = 0;
+        packets.forEach(function addPacketLengths(packet) {
+            totalLength += packet.length;
+        });
+
+        // Append each packet within queue
+        var offset = 0;
+        var joined = new SampleArray(totalLength);
+        packets.forEach(function appendPacket(packet) {
+            joined.set(packet, offset);
+            offset += packet.length;
+        });
+
+        return joined;
+
+    };
+
+    /**
+     * Given a single packet of audio data, splits off an arbitrary length of
+     * audio data from the beginning of that packet, returning the split result
+     * as an array of two packets. The split location is determined through an
+     * algorithm intended to minimize the liklihood of audible clicking between
+     * packets. If no such split location is possible, an array containing only
+     * the originally-provided audio packet is returned.
+     *
+     * @private
+     * @param {SampleArray} data
+     *     The audio packet to split.
+     *
+     * @returns {SampleArray[]}
+     *     An array of audio packets containing the result of splitting the
+     *     provided audio packet. If splitting is possible, this array will
+     *     contain two packets. If splitting is not possible, this array will
+     *     contain only the originally-provided packet.
+     */
+    var splitAudioPacket = function splitAudioPacket(data) {
+
+        var minValue = Number.MAX_VALUE;
+        var optimalSplitLength = data.length;
+
+        // Calculate number of whole samples in the provided audio packet AND
+        // in the minimum possible split packet
+        var samples = Math.floor(data.length / format.channels);
+        var minSplitSamples = Math.floor(format.rate * MIN_SPLIT_SIZE);
+
+        // Calculate the beginning of the "end" of the audio packet
+        var start = Math.max(
+            format.channels * minSplitSamples,
+            format.channels * (samples - minSplitSamples)
+        );
+
+        // For all samples at the end of the given packet, find a point where
+        // the perceptible volume across all channels is lowest (and thus is
+        // the optimal point to split)
+        for (var offset = start; offset &lt; data.length; offset += format.channels) {
+
+            // Calculate the sum of all values across all channels (the result
+            // will be proportional to the average volume of a sample)
+            var totalValue = 0;
+            for (var channel = 0; channel &lt; format.channels; channel++) {
+                totalValue += Math.abs(data[offset + channel]);
+            }
+
+            // If this is the smallest average value thus far, set the split
+            // length such that the first packet ends with the current sample
+            if (totalValue &lt;= minValue) {
+                optimalSplitLength = offset + format.channels;
+                minValue = totalValue;
+            }
+
+        }
+
+        // If packet is not split, return the supplied packet untouched
+        if (optimalSplitLength === data.length)
+            return [data];
+
+        // Otherwise, split the packet into two new packets according to the
+        // calculated optimal split length
+        return [
+            new SampleArray(data.buffer.slice(0, optimalSplitLength * format.bytesPerSample)),
+            new SampleArray(data.buffer.slice(optimalSplitLength * format.bytesPerSample))
+        ];
+
+    };
+
+    /**
+     * Pushes the given packet of audio data onto the playback queue. Unlike
+     * other private functions within Guacamole.RawAudioPlayer, the type of the
+     * ArrayBuffer packet of audio data here need not be specific to the type
+     * of audio (as with SampleArray). The ArrayBuffer type provided by a
+     * Guacamole.ArrayBufferReader, for example, is sufficient. Any necessary
+     * conversions will be performed automatically internally.
+     *
+     * @private
+     * @param {ArrayBuffer} data
+     *     A raw packet of audio data that should be pushed onto the audio
+     *     playback queue.
+     */
+    var pushAudioPacket = function pushAudioPacket(data) {
+        packetQueue.push(new SampleArray(data));
+    };
+
+    /**
+     * Shifts off and returns a packet of audio data from the beginning of the
+     * playback queue. The length of this audio packet is determined
+     * dynamically according to the click-reduction algorithm implemented by
+     * splitAudioPacket().
+     *
+     * @private
+     * @returns {SampleArray}
+     *     A packet of audio data pulled from the beginning of the playback
+     *     queue.
+     */
+    var shiftAudioPacket = function shiftAudioPacket() {
+
+        // Flatten data in packet queue
+        var data = joinAudioPackets(packetQueue);
+        if (!data)
+            return null;
+
+        // Pull an appropriate amount of data from the front of the queue
+        packetQueue = splitAudioPacket(data);
+        data = packetQueue.shift();
+
+        return data;
+
+    };
+
+    /**
+     * Converts the given audio packet into an AudioBuffer, ready for playback
+     * by the Web Audio API. Unlike the raw audio packets received by this
+     * audio player, AudioBuffers require floating point samples and are split
+     * into isolated planes of channel-specific data.
+     *
+     * @private
+     * @param {SampleArray} data
+     *     The raw audio packet that should be converted into a Web Audio API
+     *     AudioBuffer.
+     *
+     * @returns {AudioBuffer}
+     *     A new Web Audio API AudioBuffer containing the provided audio data,
+     *     converted to the format used by the Web Audio API.
+     */
+    var toAudioBuffer = function toAudioBuffer(data) {
+
+        // Calculate total number of samples
+        var samples = data.length / format.channels;
+
+        // Determine exactly when packet CAN play
+        var packetTime = context.currentTime;
+        if (nextPacketTime &lt; packetTime)
+            nextPacketTime = packetTime;
+
+        // Get audio buffer for specified format
+        var audioBuffer = context.createBuffer(format.channels, samples, format.rate);
+
+        // Convert each channel
+        for (var channel = 0; channel &lt; format.channels; channel++) {
+
+            var audioData = audioBuffer.getChannelData(channel);
+
+            // Fill audio buffer with data for channel
+            var offset = channel;
+            for (var i = 0; i &lt; samples; i++) {
+                audioData[i] = data[offset] / maxSampleValue;
+                offset += format.channels;
+            }
+
+        }
+
+        return audioBuffer;
+
+    };
+
+    // Defer playback of received audio packets slightly
+    reader.ondata = function playReceivedAudio(data) {
+
+        // Push received samples onto queue
+        pushAudioPacket(new SampleArray(data));
+
+        // Shift off an arbitrary packet of audio data from the queue (this may
+        // be different in size from the packet just pushed)
+        var packet = shiftAudioPacket();
+        if (!packet)
+            return;
+
+        // Determine exactly when packet CAN play
+        var packetTime = context.currentTime;
+        if (nextPacketTime &lt; packetTime)
+            nextPacketTime = packetTime;
+
+        // Set up buffer source
+        var source = context.createBufferSource();
+        source.connect(context.destination);
+
+        // Use noteOn() instead of start() if necessary
+        if (!source.start)
+            source.start = source.noteOn;
+
+        // Schedule packet
+        source.buffer = toAudioBuffer(packet);
+        source.start(nextPacketTime);
+
+        // Update timeline by duration of scheduled packet
+        nextPacketTime += packet.length / format.channels / format.rate;
+
+    };
+
+    /** @override */
+    this.sync = function sync() {
+
+        // Calculate elapsed time since last sync
+        var now = context.currentTime;
+
+        // Reschedule future playback time such that playback latency is
+        // bounded within a reasonable latency threshold
+        nextPacketTime = Math.min(nextPacketTime, now + maxLatency);
+
+    };
+
+};
+
+Guacamole.RawAudioPlayer.prototype = new Guacamole.AudioPlayer();
+
+/**
+ * Determines whether the given mimetype is supported by
+ * Guacamole.RawAudioPlayer.
+ *
+ * @param {String} mimetype
+ *     The mimetype to check.
+ *
+ * @returns {Boolean}
+ *     true if the given mimetype is supported by Guacamole.RawAudioPlayer,
+ *     false otherwise.
+ */
+Guacamole.RawAudioPlayer.isSupportedType = function isSupportedType(mimetype) {
+
+    // No supported types if no Web Audio API
+    if (!Guacamole.AudioContextFactory.getAudioContext())
+        return false;
+
+    return Guacamole.RawAudioFormat.parse(mimetype) !== null;
+
+};
+
+/**
+ * Returns a list of all mimetypes supported by Guacamole.RawAudioPlayer. Only
+ * the core mimetypes themselves will be listed. Any mimetype parameters, even
+ * required ones, will not be included in the list. For example, "audio/L8" is
+ * a raw audio mimetype that may be supported, but it is invalid without
+ * additional parameters. Something like "audio/L8;rate=44100" would be valid,
+ * however (see https://tools.ietf.org/html/rfc4856).
+ *
+ * @returns {String[]}
+ *     A list of all mimetypes supported by Guacamole.RawAudioPlayer, excluding
+ *     any parameters. If the necessary JavaScript APIs for playing raw audio
+ *     are absent, this list will be empty.
+ */
+Guacamole.RawAudioPlayer.getSupportedTypes = function getSupportedTypes() {
+
+    // No supported types if no Web Audio API
+    if (!Guacamole.AudioContextFactory.getAudioContext())
+        return [];
+
+    // We support 8-bit and 16-bit raw PCM
+    return [
+        'audio/L8',
+        'audio/L16'
+    ];
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/AudioRecorder.js.html b/doc/1.1.0/guacamole-common-js/AudioRecorder.js.html
new file mode 100644
index 0000000..9a0c7da
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/AudioRecorder.js.html
@@ -0,0 +1,622 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: AudioRecorder.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: AudioRecorder.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Abstract audio recorder which streams arbitrary audio data to an underlying
+ * Guacamole.OutputStream. It is up to implementations of this class to provide
+ * some means of handling this Guacamole.OutputStream. Data produced by the
+ * recorder is to be sent along the provided stream immediately.
+ *
+ * @constructor
+ */
+Guacamole.AudioRecorder = function AudioRecorder() {
+
+    /**
+     * Callback which is invoked when the audio recording process has stopped
+     * and the underlying Guacamole stream has been closed normally. Audio will
+     * only resume recording if a new Guacamole.AudioRecorder is started. This
+     * Guacamole.AudioRecorder instance MAY NOT be reused.
+     *
+     * @event
+     */
+    this.onclose = null;
+
+    /**
+     * Callback which is invoked when the audio recording process cannot
+     * continue due to an error, if it has started at all. The underlying
+     * Guacamole stream is automatically closed. Future attempts to record
+     * audio should not be made, and this Guacamole.AudioRecorder instance
+     * MAY NOT be reused.
+     *
+     * @event
+     */
+    this.onerror = null;
+
+};
+
+/**
+ * Determines whether the given mimetype is supported by any built-in
+ * implementation of Guacamole.AudioRecorder, and thus will be properly handled
+ * by Guacamole.AudioRecorder.getInstance().
+ *
+ * @param {String} mimetype
+ *     The mimetype to check.
+ *
+ * @returns {Boolean}
+ *     true if the given mimetype is supported by any built-in
+ *     Guacamole.AudioRecorder, false otherwise.
+ */
+Guacamole.AudioRecorder.isSupportedType = function isSupportedType(mimetype) {
+
+    return Guacamole.RawAudioRecorder.isSupportedType(mimetype);
+
+};
+
+/**
+ * Returns a list of all mimetypes supported by any built-in
+ * Guacamole.AudioRecorder, in rough order of priority. Beware that only the
+ * core mimetypes themselves will be listed. Any mimetype parameters, even
+ * required ones, will not be included in the list. For example, "audio/L8" is
+ * a supported raw audio mimetype that is supported, but it is invalid without
+ * additional parameters. Something like "audio/L8;rate=44100" would be valid,
+ * however (see https://tools.ietf.org/html/rfc4856).
+ *
+ * @returns {String[]}
+ *     A list of all mimetypes supported by any built-in
+ *     Guacamole.AudioRecorder, excluding any parameters.
+ */
+Guacamole.AudioRecorder.getSupportedTypes = function getSupportedTypes() {
+
+    return Guacamole.RawAudioRecorder.getSupportedTypes();
+
+};
+
+/**
+ * Returns an instance of Guacamole.AudioRecorder providing support for the
+ * given audio format. If support for the given audio format is not available,
+ * null is returned.
+ *
+ * @param {Guacamole.OutputStream} stream
+ *     The Guacamole.OutputStream to send audio data through.
+ *
+ * @param {String} mimetype
+ *     The mimetype of the audio data to be sent along the provided stream.
+ *
+ * @return {Guacamole.AudioRecorder}
+ *     A Guacamole.AudioRecorder instance supporting the given mimetype and
+ *     writing to the given stream, or null if support for the given mimetype
+ *     is absent.
+ */
+Guacamole.AudioRecorder.getInstance = function getInstance(stream, mimetype) {
+
+    // Use raw audio recorder if possible
+    if (Guacamole.RawAudioRecorder.isSupportedType(mimetype))
+        return new Guacamole.RawAudioRecorder(stream, mimetype);
+
+    // No support for given mimetype
+    return null;
+
+};
+
+/**
+ * Implementation of Guacamole.AudioRecorder providing support for raw PCM
+ * format audio. This recorder relies only on the Web Audio API and does not
+ * require any browser-level support for its audio formats.
+ *
+ * @constructor
+ * @augments Guacamole.AudioRecorder
+ * @param {Guacamole.OutputStream} stream
+ *     The Guacamole.OutputStream to write audio data to.
+ *
+ * @param {String} mimetype
+ *     The mimetype of the audio data to send along the provided stream, which
+ *     must be a "audio/L8" or "audio/L16" mimetype with necessary parameters,
+ *     such as: "audio/L16;rate=44100,channels=2".
+ */
+Guacamole.RawAudioRecorder = function RawAudioRecorder(stream, mimetype) {
+
+    /**
+     * Reference to this RawAudioRecorder.
+     *
+     * @private
+     * @type {Guacamole.RawAudioRecorder}
+     */
+    var recorder = this;
+
+    /**
+     * The size of audio buffer to request from the Web Audio API when
+     * recording or processing audio, in sample-frames. This must be a power of
+     * two between 256 and 16384 inclusive, as required by
+     * AudioContext.createScriptProcessor().
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var BUFFER_SIZE = 2048;
+
+    /**
+     * The window size to use when applying Lanczos interpolation, commonly
+     * denoted by the variable "a".
+     * See: https://en.wikipedia.org/wiki/Lanczos_resampling
+     *
+     * @private
+     * @contant
+     * @type Number
+     */
+    var LANCZOS_WINDOW_SIZE = 3;
+
+    /**
+     * The format of audio this recorder will encode.
+     *
+     * @private
+     * @type {Guacamole.RawAudioFormat}
+     */
+    var format = Guacamole.RawAudioFormat.parse(mimetype);
+
+    /**
+     * An instance of a Web Audio API AudioContext object, or null if the
+     * Web Audio API is not supported.
+     *
+     * @private
+     * @type {AudioContext}
+     */
+    var context = Guacamole.AudioContextFactory.getAudioContext();
+
+    // Some browsers do not implement navigator.mediaDevices - this
+    // shims in this functionality to ensure code compatibility.
+    if (!navigator.mediaDevices)
+        navigator.mediaDevices = {};
+
+    // Browsers that either do not implement navigator.mediaDevices
+    // at all or do not implement it completely need the getUserMedia
+    // method defined.  This shims in this function by detecting
+    // one of the supported legacy methods.
+    if (!navigator.mediaDevices.getUserMedia)
+        navigator.mediaDevices.getUserMedia = (navigator.getUserMedia
+                || navigator.webkitGetUserMedia
+                || navigator.mozGetUserMedia
+                || navigator.msGetUserMedia).bind(navigator);
+
+    /**
+     * Guacamole.ArrayBufferWriter wrapped around the audio output stream
+     * provided when this Guacamole.RawAudioRecorder was created.
+     *
+     * @private
+     * @type {Guacamole.ArrayBufferWriter}
+     */
+    var writer = new Guacamole.ArrayBufferWriter(stream);
+
+    /**
+     * The type of typed array that will be used to represent each audio packet
+     * internally. This will be either Int8Array or Int16Array, depending on
+     * whether the raw audio format is 8-bit or 16-bit.
+     *
+     * @private
+     * @constructor
+     */
+    var SampleArray = (format.bytesPerSample === 1) ? window.Int8Array : window.Int16Array;
+
+    /**
+     * The maximum absolute value of any sample within a raw audio packet sent
+     * by this audio recorder. This depends only on the size of each sample,
+     * and will be 128 for 8-bit audio and 32768 for 16-bit audio.
+     *
+     * @private
+     * @type {Number}
+     */
+    var maxSampleValue = (format.bytesPerSample === 1) ? 128 : 32768;
+
+    /**
+     * The total number of audio samples read from the local audio input device
+     * over the life of this audio recorder.
+     *
+     * @private
+     * @type {Number}
+     */
+    var readSamples = 0;
+
+    /**
+     * The total number of audio samples written to the underlying Guacamole
+     * connection over the life of this audio recorder.
+     *
+     * @private
+     * @type {Number}
+     */
+    var writtenSamples = 0;
+
+    /**
+     * The audio stream provided by the browser, if allowed. If no stream has
+     * yet been received, this will be null.
+     *
+     * @type MediaStream
+     */
+    var mediaStream = null;
+
+    /**
+     * The source node providing access to the local audio input device.
+     *
+     * @private
+     * @type {MediaStreamAudioSourceNode}
+     */
+    var source = null;
+
+    /**
+     * The script processing node which receives audio input from the media
+     * stream source node as individual audio buffers.
+     *
+     * @private
+     * @type {ScriptProcessorNode}
+     */
+    var processor = null;
+
+    /**
+     * The normalized sinc function. The normalized sinc function is defined as
+     * 1 for x=0 and sin(PI * x) / (PI * x) for all other values of x.
+     *
+     * See: https://en.wikipedia.org/wiki/Sinc_function
+     *
+     * @private
+     * @param {Number} x
+     *     The point at which the normalized sinc function should be computed.
+     *
+     * @returns {Number}
+     *     The value of the normalized sinc function at x.
+     */
+    var sinc = function sinc(x) {
+
+        // The value of sinc(0) is defined as 1
+        if (x === 0)
+            return 1;
+
+        // Otherwise, normlized sinc(x) is sin(PI * x) / (PI * x)
+        var piX = Math.PI * x;
+        return Math.sin(piX) / piX;
+
+    };
+
+    /**
+     * Calculates the value of the Lanczos kernal at point x for a given window
+     * size. See: https://en.wikipedia.org/wiki/Lanczos_resampling
+     *
+     * @private
+     * @param {Number} x
+     *     The point at which the value of the Lanczos kernel should be
+     *     computed.
+     *
+     * @param {Number} a
+     *     The window size to use for the Lanczos kernel.
+     *
+     * @returns {Number}
+     *     The value of the Lanczos kernel at the given point for the given
+     *     window size.
+     */
+    var lanczos = function lanczos(x, a) {
+
+        // Lanczos is sinc(x) * sinc(x / a) for -a &lt; x &lt; a ...
+        if (-a &lt; x &amp;&amp; x &lt; a)
+            return sinc(x) * sinc(x / a);
+
+        // ... and 0 otherwise
+        return 0;
+
+    };
+
+    /**
+     * Determines the value of the waveform represented by the audio data at
+     * the given location. If the value cannot be determined exactly as it does
+     * not correspond to an exact sample within the audio data, the value will
+     * be derived through interpolating nearby samples.
+     *
+     * @private
+     * @param {Float32Array} audioData
+     *     An array of audio data, as returned by AudioBuffer.getChannelData().
+     *
+     * @param {Number} t
+     *     The relative location within the waveform from which the value
+     *     should be retrieved, represented as a floating point number between
+     *     0 and 1 inclusive, where 0 represents the earliest point in time and
+     *     1 represents the latest.
+     *
+     * @returns {Number}
+     *     The value of the waveform at the given location.
+     */
+    var interpolateSample = function getValueAt(audioData, t) {
+
+        // Convert [0, 1] range to [0, audioData.length - 1]
+        var index = (audioData.length - 1) * t;
+
+        // Determine the start and end points for the summation used by the
+        // Lanczos interpolation algorithm (see: https://en.wikipedia.org/wiki/Lanczos_resampling)
+        var start = Math.floor(index) - LANCZOS_WINDOW_SIZE + 1;
+        var end = Math.floor(index) + LANCZOS_WINDOW_SIZE;
+
+        // Calculate the value of the Lanczos interpolation function for the
+        // required range
+        var sum = 0;
+        for (var i = start; i &lt;= end; i++) {
+            sum += (audioData[i] || 0) * lanczos(index - i, LANCZOS_WINDOW_SIZE);
+        }
+
+        return sum;
+
+    };
+
+    /**
+     * Converts the given AudioBuffer into an audio packet, ready for streaming
+     * along the underlying output stream. Unlike the raw audio packets used by
+     * this audio recorder, AudioBuffers require floating point samples and are
+     * split into isolated planes of channel-specific data.
+     *
+     * @private
+     * @param {AudioBuffer} audioBuffer
+     *     The Web Audio API AudioBuffer that should be converted to a raw
+     *     audio packet.
+     *
+     * @returns {SampleArray}
+     *     A new raw audio packet containing the audio data from the provided
+     *     AudioBuffer.
+     */
+    var toSampleArray = function toSampleArray(audioBuffer) {
+
+        // Track overall amount of data read
+        var inSamples = audioBuffer.length;
+        readSamples += inSamples;
+
+        // Calculate the total number of samples that should be written as of
+        // the audio data just received and adjust the size of the output
+        // packet accordingly
+        var expectedWrittenSamples = Math.round(readSamples * format.rate / audioBuffer.sampleRate);
+        var outSamples = expectedWrittenSamples - writtenSamples;
+
+        // Update number of samples written
+        writtenSamples += outSamples;
+
+        // Get array for raw PCM storage
+        var data = new SampleArray(outSamples * format.channels);
+
+        // Convert each channel
+        for (var channel = 0; channel &lt; format.channels; channel++) {
+
+            var audioData = audioBuffer.getChannelData(channel);
+
+            // Fill array with data from audio buffer channel
+            var offset = channel;
+            for (var i = 0; i &lt; outSamples; i++) {
+                data[offset] = interpolateSample(audioData, i / (outSamples - 1)) * maxSampleValue;
+                offset += format.channels;
+            }
+
+        }
+
+        return data;
+
+    };
+
+    /**
+     * Requests access to the user's microphone and begins capturing audio. All
+     * received audio data is resampled as necessary and forwarded to the
+     * Guacamole stream underlying this Guacamole.RawAudioRecorder. This
+     * function must be invoked ONLY ONCE per instance of
+     * Guacamole.RawAudioRecorder.
+     *
+     * @private
+     */
+    var beginAudioCapture = function beginAudioCapture() {
+
+        // Attempt to retrieve an audio input stream from the browser
+        navigator.mediaDevices.getUserMedia({ 'audio' : true }, function streamReceived(stream) {
+
+            // Create processing node which receives appropriately-sized audio buffers
+            processor = context.createScriptProcessor(BUFFER_SIZE, format.channels, format.channels);
+            processor.connect(context.destination);
+
+            // Send blobs when audio buffers are received
+            processor.onaudioprocess = function processAudio(e) {
+                writer.sendData(toSampleArray(e.inputBuffer).buffer);
+            };
+
+            // Connect processing node to user's audio input source
+            source = context.createMediaStreamSource(stream);
+            source.connect(processor);
+
+            // Save stream for later cleanup
+            mediaStream = stream;
+
+        }, function streamDenied() {
+
+            // Simply end stream if audio access is not allowed
+            writer.sendEnd();
+
+            // Notify of closure
+            if (recorder.onerror)
+                recorder.onerror();
+
+        });
+
+    };
+
+    /**
+     * Stops capturing audio, if the capture has started, freeing all associated
+     * resources. If the capture has not started, this function simply ends the
+     * underlying Guacamole stream.
+     *
+     * @private
+     */
+    var stopAudioCapture = function stopAudioCapture() {
+
+        // Disconnect media source node from script processor
+        if (source)
+            source.disconnect();
+
+        // Disconnect associated script processor node
+        if (processor)
+            processor.disconnect();
+
+        // Stop capture
+        if (mediaStream) {
+            var tracks = mediaStream.getTracks();
+            for (var i = 0; i &lt; tracks.length; i++)
+                tracks[i].stop();
+        }
+
+        // Remove references to now-unneeded components
+        processor = null;
+        source = null;
+        mediaStream = null;
+
+        // End stream
+        writer.sendEnd();
+
+    };
+
+    // Once audio stream is successfully open, request and begin reading audio
+    writer.onack = function audioStreamAcknowledged(status) {
+
+        // Begin capture if successful response and not yet started
+        if (status.code === Guacamole.Status.Code.SUCCESS &amp;&amp; !mediaStream)
+            beginAudioCapture();
+
+        // Otherwise stop capture and cease handling any further acks
+        else {
+
+            // Stop capturing audio
+            stopAudioCapture();
+            writer.onack = null;
+
+            // Notify if stream has closed normally
+            if (status.code === Guacamole.Status.Code.RESOURCE_CLOSED) {
+                if (recorder.onclose)
+                    recorder.onclose();
+            }
+
+            // Otherwise notify of closure due to error
+            else {
+                if (recorder.onerror)
+                    recorder.onerror();
+            }
+
+        }
+
+    };
+
+};
+
+Guacamole.RawAudioRecorder.prototype = new Guacamole.AudioRecorder();
+
+/**
+ * Determines whether the given mimetype is supported by
+ * Guacamole.RawAudioRecorder.
+ *
+ * @param {String} mimetype
+ *     The mimetype to check.
+ *
+ * @returns {Boolean}
+ *     true if the given mimetype is supported by Guacamole.RawAudioRecorder,
+ *     false otherwise.
+ */
+Guacamole.RawAudioRecorder.isSupportedType = function isSupportedType(mimetype) {
+
+    // No supported types if no Web Audio API
+    if (!Guacamole.AudioContextFactory.getAudioContext())
+        return false;
+
+    return Guacamole.RawAudioFormat.parse(mimetype) !== null;
+
+};
+
+/**
+ * Returns a list of all mimetypes supported by Guacamole.RawAudioRecorder. Only
+ * the core mimetypes themselves will be listed. Any mimetype parameters, even
+ * required ones, will not be included in the list. For example, "audio/L8" is
+ * a raw audio mimetype that may be supported, but it is invalid without
+ * additional parameters. Something like "audio/L8;rate=44100" would be valid,
+ * however (see https://tools.ietf.org/html/rfc4856).
+ *
+ * @returns {String[]}
+ *     A list of all mimetypes supported by Guacamole.RawAudioRecorder,
+ *     excluding any parameters. If the necessary JavaScript APIs for recording
+ *     raw audio are absent, this list will be empty.
+ */
+Guacamole.RawAudioRecorder.getSupportedTypes = function getSupportedTypes() {
+
+    // No supported types if no Web Audio API
+    if (!Guacamole.AudioContextFactory.getAudioContext())
+        return [];
+
+    // We support 8-bit and 16-bit raw PCM
+    return [
+        'audio/L8',
+        'audio/L16'
+    ];
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/BlobReader.js.html b/doc/1.1.0/guacamole-common-js/BlobReader.js.html
new file mode 100644
index 0000000..109c651
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/BlobReader.js.html
@@ -0,0 +1,178 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: BlobReader.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: BlobReader.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A reader which automatically handles the given input stream, assembling all
+ * received blobs into a single blob by appending them to each other in order.
+ * Note that this object will overwrite any installed event handlers on the
+ * given Guacamole.InputStream.
+ * 
+ * @constructor
+ * @param {Guacamole.InputStream} stream The stream that data will be read
+ *                                       from.
+ * @param {String} mimetype The mimetype of the blob being built.
+ */
+Guacamole.BlobReader = function(stream, mimetype) {
+
+    /**
+     * Reference to this Guacamole.InputStream.
+     * @private
+     */
+    var guac_reader = this;
+
+    /**
+     * The length of this Guacamole.InputStream in bytes.
+     * @private
+     */
+    var length = 0;
+
+    // Get blob builder
+    var blob_builder;
+    if      (window.BlobBuilder)       blob_builder = new BlobBuilder();
+    else if (window.WebKitBlobBuilder) blob_builder = new WebKitBlobBuilder();
+    else if (window.MozBlobBuilder)    blob_builder = new MozBlobBuilder();
+    else
+        blob_builder = new (function() {
+
+            var blobs = [];
+
+            /** @ignore */
+            this.append = function(data) {
+                blobs.push(new Blob([data], {"type": mimetype}));
+            };
+
+            /** @ignore */
+            this.getBlob = function() {
+                return new Blob(blobs, {"type": mimetype});
+            };
+
+        })();
+
+    // Append received blobs
+    stream.onblob = function(data) {
+
+        // Convert to ArrayBuffer
+        var binary = window.atob(data);
+        var arrayBuffer = new ArrayBuffer(binary.length);
+        var bufferView = new Uint8Array(arrayBuffer);
+
+        for (var i=0; i&lt;binary.length; i++)
+            bufferView[i] = binary.charCodeAt(i);
+
+        blob_builder.append(arrayBuffer);
+        length += arrayBuffer.byteLength;
+
+        // Call handler, if present
+        if (guac_reader.onprogress)
+            guac_reader.onprogress(arrayBuffer.byteLength);
+
+        // Send success response
+        stream.sendAck("OK", 0x0000);
+
+    };
+
+    // Simply call onend when end received
+    stream.onend = function() {
+        if (guac_reader.onend)
+            guac_reader.onend();
+    };
+
+    /**
+     * Returns the current length of this Guacamole.InputStream, in bytes.
+     * @return {Number} The current length of this Guacamole.InputStream.
+     */
+    this.getLength = function() {
+        return length;
+    };
+
+    /**
+     * Returns the contents of this Guacamole.BlobReader as a Blob.
+     * @return {Blob} The contents of this Guacamole.BlobReader.
+     */
+    this.getBlob = function() {
+        return blob_builder.getBlob();
+    };
+
+    /**
+     * Fired once for every blob of data received.
+     * 
+     * @event
+     * @param {Number} length The number of bytes received.
+     */
+    this.onprogress = null;
+
+    /**
+     * Fired once this stream is finished and no further data will be written.
+     * @event
+     */
+    this.onend = null;
+
+};</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/BlobWriter.js.html b/doc/1.1.0/guacamole-common-js/BlobWriter.js.html
new file mode 100644
index 0000000..a1a8741
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/BlobWriter.js.html
@@ -0,0 +1,296 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: BlobWriter.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: BlobWriter.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A writer which automatically writes to the given output stream with the
+ * contents of provided Blob objects.
+ *
+ * @constructor
+ * @param {Guacamole.OutputStream} stream
+ *     The stream that data will be written to.
+ */
+Guacamole.BlobWriter = function BlobWriter(stream) {
+
+    /**
+     * Reference to this Guacamole.BlobWriter.
+     *
+     * @private
+     * @type {Guacamole.BlobWriter}
+     */
+    var guacWriter = this;
+
+    /**
+     * Wrapped Guacamole.ArrayBufferWriter which will be used to send any
+     * provided file data.
+     *
+     * @private
+     * @type {Guacamole.ArrayBufferWriter}
+     */
+    var arrayBufferWriter = new Guacamole.ArrayBufferWriter(stream);
+
+    // Initially, simply call onack for acknowledgements
+    arrayBufferWriter.onack = function(status) {
+        if (guacWriter.onack)
+            guacWriter.onack(status);
+    };
+
+    /**
+     * Browser-independent implementation of Blob.slice() which uses an end
+     * offset to determine the span of the resulting slice, rather than a
+     * length.
+     *
+     * @private
+     * @param {Blob} blob
+     *     The Blob to slice.
+     *
+     * @param {Number} start
+     *     The starting offset of the slice, in bytes, inclusive.
+     *
+     * @param {Number} end
+     *     The ending offset of the slice, in bytes, exclusive.
+     *
+     * @returns {Blob}
+     *     A Blob containing the data within the given Blob starting at
+     *     &lt;code>start&lt;/code> and ending at &lt;code>end - 1&lt;/code>.
+     */
+    var slice = function slice(blob, start, end) {
+
+        // Use prefixed implementations if necessary
+        var sliceImplementation = (
+                blob.slice
+             || blob.webkitSlice
+             || blob.mozSlice
+        ).bind(blob);
+
+        var length = end - start;
+
+        // The old Blob.slice() was length-based (not end-based). Try the
+        // length version first, if the two calls are not equivalent.
+        if (length !== end) {
+
+            // If the result of the slice() call matches the expected length,
+            // trust that result. It must be correct.
+            var sliceResult = sliceImplementation(start, length);
+            if (sliceResult.size === length)
+                return sliceResult;
+
+        }
+
+        // Otherwise, use the most-recent standard: end-based slice()
+        return sliceImplementation(start, end);
+
+    };
+
+    /**
+     * Sends the contents of the given blob over the underlying stream.
+     *
+     * @param {Blob} blob
+     *     The blob to send.
+     */
+    this.sendBlob = function sendBlob(blob) {
+
+        var offset = 0;
+        var reader = new FileReader();
+
+        /**
+         * Reads the next chunk of the blob provided to
+         * [sendBlob()]{@link Guacamole.BlobWriter#sendBlob}. The chunk itself
+         * is read asynchronously, and will not be available until
+         * reader.onload fires.
+         *
+         * @private
+         */
+        var readNextChunk = function readNextChunk() {
+
+            // If no further chunks remain, inform of completion and stop
+            if (offset >= blob.size) {
+
+                // Fire completion event for completed blob
+                if (guacWriter.oncomplete)
+                    guacWriter.oncomplete(blob);
+
+                // No further chunks to read
+                return;
+
+            }
+
+            // Obtain reference to next chunk as a new blob
+            var chunk = slice(blob, offset, offset + arrayBufferWriter.blobLength);
+            offset += arrayBufferWriter.blobLength;
+
+            // Attempt to read the blob contents represented by the blob into
+            // a new array buffer
+            reader.readAsArrayBuffer(chunk);
+
+        };
+
+        // Send each chunk over the stream, continue reading the next chunk
+        reader.onload = function chunkLoadComplete() {
+
+            // Send the successfully-read chunk
+            arrayBufferWriter.sendData(reader.result);
+
+            // Continue sending more chunks after the latest chunk is
+            // acknowledged
+            arrayBufferWriter.onack = function sendMoreChunks(status) {
+
+                if (guacWriter.onack)
+                    guacWriter.onack(status);
+
+                // Abort transfer if an error occurs
+                if (status.isError())
+                    return;
+
+                // Inform of blob upload progress via progress events
+                if (guacWriter.onprogress)
+                    guacWriter.onprogress(blob, offset - arrayBufferWriter.blobLength);
+
+                // Queue the next chunk for reading
+                readNextChunk();
+
+            };
+
+        };
+
+        // If an error prevents further reading, inform of error and stop
+        reader.onerror = function chunkLoadFailed() {
+
+            // Fire error event, including the context of the error
+            if (guacWriter.onerror)
+                guacWriter.onerror(blob, offset, reader.error);
+
+        };
+
+        // Begin reading the first chunk
+        readNextChunk();
+
+    };
+
+    /**
+     * Signals that no further text will be sent, effectively closing the
+     * stream.
+     */
+    this.sendEnd = function sendEnd() {
+        arrayBufferWriter.sendEnd();
+    };
+
+    /**
+     * Fired for received data, if acknowledged by the server.
+     *
+     * @event
+     * @param {Guacamole.Status} status
+     *     The status of the operation.
+     */
+    this.onack = null;
+
+    /**
+     * Fired when an error occurs reading a blob passed to
+     * [sendBlob()]{@link Guacamole.BlobWriter#sendBlob}. The transfer for the
+     * the given blob will cease, but the stream will remain open.
+     *
+     * @event
+     * @param {Blob} blob
+     *     The blob that was being read when the error occurred.
+     *
+     * @param {Number} offset
+     *     The offset of the failed read attempt within the blob, in bytes.
+     *
+     * @param {DOMError} error
+     *     The error that occurred.
+     */
+    this.onerror = null;
+
+    /**
+     * Fired for each successfully-read chunk of data as a blob is being sent
+     * via [sendBlob()]{@link Guacamole.BlobWriter#sendBlob}.
+     *
+     * @event
+     * @param {Blob} blob
+     *     The blob that is being read.
+     *
+     * @param {Number} offset
+     *     The offset of the read that just succeeded.
+     */
+    this.onprogress = null;
+
+    /**
+     * Fired when a blob passed to
+     * [sendBlob()]{@link Guacamole.BlobWriter#sendBlob} has finished being
+     * sent.
+     *
+     * @event
+     * @param {Blob} blob
+     *     The blob that was sent.
+     */
+    this.oncomplete = null;
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Client.js.html b/doc/1.1.0/guacamole-common-js/Client.js.html
new file mode 100644
index 0000000..c6de771
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Client.js.html
@@ -0,0 +1,1741 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Client.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Client.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Guacamole protocol client. Given a {@link Guacamole.Tunnel},
+ * automatically handles incoming and outgoing Guacamole instructions via the
+ * provided tunnel, updating its display using one or more canvas elements.
+ * 
+ * @constructor
+ * @param {Guacamole.Tunnel} tunnel The tunnel to use to send and receive
+ *                                  Guacamole instructions.
+ */
+Guacamole.Client = function(tunnel) {
+
+    var guac_client = this;
+
+    var STATE_IDLE          = 0;
+    var STATE_CONNECTING    = 1;
+    var STATE_WAITING       = 2;
+    var STATE_CONNECTED     = 3;
+    var STATE_DISCONNECTING = 4;
+    var STATE_DISCONNECTED  = 5;
+
+    var currentState = STATE_IDLE;
+    
+    var currentTimestamp = 0;
+    var pingInterval = null;
+
+    /**
+     * Translation from Guacamole protocol line caps to Layer line caps.
+     * @private
+     */
+    var lineCap = {
+        0: "butt",
+        1: "round",
+        2: "square"
+    };
+
+    /**
+     * Translation from Guacamole protocol line caps to Layer line caps.
+     * @private
+     */
+    var lineJoin = {
+        0: "bevel",
+        1: "miter",
+        2: "round"
+    };
+
+    /**
+     * The underlying Guacamole display.
+     *
+     * @private
+     * @type {Guacamole.Display}
+     */
+    var display = new Guacamole.Display();
+
+    /**
+     * All available layers and buffers
+     *
+     * @private
+     * @type {Object.&lt;Number, (Guacamole.Display.VisibleLayer|Guacamole.Layer)>}
+     */
+    var layers = {};
+    
+    /**
+     * All audio players currently in use by the client. Initially, this will
+     * be empty, but audio players may be allocated by the server upon request.
+     *
+     * @private
+     * @type {Object.&lt;Number, Guacamole.AudioPlayer>}
+     */
+    var audioPlayers = {};
+
+    /**
+     * All video players currently in use by the client. Initially, this will
+     * be empty, but video players may be allocated by the server upon request.
+     *
+     * @private
+     * @type {Object.&lt;Number, Guacamole.VideoPlayer>}
+     */
+    var videoPlayers = {};
+
+    // No initial parsers
+    var parsers = [];
+
+    // No initial streams 
+    var streams = [];
+
+    /**
+     * All current objects. The index of each object is dictated by the
+     * Guacamole server.
+     *
+     * @private
+     * @type {Guacamole.Object[]}
+     */
+    var objects = [];
+
+    // Pool of available stream indices
+    var stream_indices = new Guacamole.IntegerPool();
+
+    // Array of allocated output streams by index
+    var output_streams = [];
+
+    function setState(state) {
+        if (state != currentState) {
+            currentState = state;
+            if (guac_client.onstatechange)
+                guac_client.onstatechange(currentState);
+        }
+    }
+
+    function isConnected() {
+        return currentState == STATE_CONNECTED
+            || currentState == STATE_WAITING;
+    }
+
+    /**
+     * Produces an opaque representation of Guacamole.Client state which can be
+     * later imported through a call to importState(). This object is
+     * effectively an independent, compressed snapshot of protocol and display
+     * state. Invoking this function implicitly flushes the display.
+     *
+     * @param {function} callback
+     *     Callback which should be invoked once the state object is ready. The
+     *     state object will be passed to the callback as the sole parameter.
+     *     This callback may be invoked immediately, or later as the display
+     *     finishes rendering and becomes ready.
+     */
+    this.exportState = function exportState(callback) {
+
+        // Start with empty state
+        var state = {
+            'currentState' : currentState,
+            'currentTimestamp' : currentTimestamp,
+            'layers' : {}
+        };
+
+        var layersSnapshot = {};
+
+        // Make a copy of all current layers (protocol state)
+        for (var key in layers) {
+            layersSnapshot[key] = layers[key];
+        }
+
+        // Populate layers once data is available (display state, requires flush)
+        display.flush(function populateLayers() {
+
+            // Export each defined layer/buffer
+            for (var key in layersSnapshot) {
+
+                var index = parseInt(key);
+                var layer = layersSnapshot[key];
+                var canvas = layer.toCanvas();
+
+                // Store layer/buffer dimensions
+                var exportLayer = {
+                    'width'  : layer.width,
+                    'height' : layer.height
+                };
+
+                // Store layer/buffer image data, if it can be generated
+                if (layer.width &amp;&amp; layer.height)
+                    exportLayer.url = canvas.toDataURL('image/png');
+
+                // Add layer properties if not a buffer nor the default layer
+                if (index > 0) {
+                    exportLayer.x = layer.x;
+                    exportLayer.y = layer.y;
+                    exportLayer.z = layer.z;
+                    exportLayer.alpha = layer.alpha;
+                    exportLayer.matrix = layer.matrix;
+                    exportLayer.parent = getLayerIndex(layer.parent);
+                }
+
+                // Store exported layer
+                state.layers[key] = exportLayer;
+
+            }
+
+            // Invoke callback now that the state is ready
+            callback(state);
+
+        });
+
+    };
+
+    /**
+     * Restores Guacamole.Client protocol and display state based on an opaque
+     * object from a prior call to exportState(). The Guacamole.Client instance
+     * used to export that state need not be the same as this instance.
+     *
+     * @param {Object} state
+     *     An opaque representation of Guacamole.Client state from a prior call
+     *     to exportState().
+     *
+     * @param {function} [callback]
+     *     The function to invoke when state has finished being imported. This
+     *     may happen immediately, or later as images within the provided state
+     *     object are loaded.
+     */
+    this.importState = function importState(state, callback) {
+
+        var key;
+        var index;
+
+        currentState = state.currentState;
+        currentTimestamp = state.currentTimestamp;
+
+        // Dispose of all layers
+        for (key in layers) {
+            index = parseInt(key);
+            if (index > 0)
+                display.dispose(layers[key]);
+        }
+
+        layers = {};
+
+        // Import state of each layer/buffer
+        for (key in state.layers) {
+
+            index = parseInt(key);
+
+            var importLayer = state.layers[key];
+            var layer = getLayer(index);
+
+            // Reset layer size
+            display.resize(layer, importLayer.width, importLayer.height);
+
+            // Initialize new layer if it has associated data
+            if (importLayer.url) {
+                display.setChannelMask(layer, Guacamole.Layer.SRC);
+                display.draw(layer, 0, 0, importLayer.url);
+            }
+
+            // Set layer-specific properties if not a buffer nor the default layer
+            if (index > 0 &amp;&amp; importLayer.parent >= 0) {
+
+                // Apply layer position and set parent
+                var parent = getLayer(importLayer.parent);
+                display.move(layer, parent, importLayer.x, importLayer.y, importLayer.z);
+
+                // Set layer transparency
+                display.shade(layer, importLayer.alpha);
+
+                // Apply matrix transform
+                var matrix = importLayer.matrix;
+                display.distort(layer,
+                    matrix[0], matrix[1], matrix[2],
+                    matrix[3], matrix[4], matrix[5]);
+
+            }
+
+        }
+
+        // Flush changes to display
+        display.flush(callback);
+
+    };
+
+    /**
+     * Returns the underlying display of this Guacamole.Client. The display
+     * contains an Element which can be added to the DOM, causing the
+     * display to become visible.
+     * 
+     * @return {Guacamole.Display} The underlying display of this
+     *                             Guacamole.Client.
+     */
+    this.getDisplay = function() {
+        return display;
+    };
+
+    /**
+     * Sends the current size of the screen.
+     * 
+     * @param {Number} width The width of the screen.
+     * @param {Number} height The height of the screen.
+     */
+    this.sendSize = function(width, height) {
+
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        tunnel.sendMessage("size", width, height);
+
+    };
+
+    /**
+     * Sends a key event having the given properties as if the user
+     * pressed or released a key.
+     * 
+     * @param {Boolean} pressed Whether the key is pressed (true) or released
+     *                          (false).
+     * @param {Number} keysym The keysym of the key being pressed or released.
+     */
+    this.sendKeyEvent = function(pressed, keysym) {
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        tunnel.sendMessage("key", keysym, pressed);
+    };
+
+    /**
+     * Sends a mouse event having the properties provided by the given mouse
+     * state.
+     * 
+     * @param {Guacamole.Mouse.State} mouseState The state of the mouse to send
+     *                                           in the mouse event.
+     */
+    this.sendMouseState = function(mouseState) {
+
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        // Update client-side cursor
+        display.moveCursor(
+            Math.floor(mouseState.x),
+            Math.floor(mouseState.y)
+        );
+
+        // Build mask
+        var buttonMask = 0;
+        if (mouseState.left)   buttonMask |= 1;
+        if (mouseState.middle) buttonMask |= 2;
+        if (mouseState.right)  buttonMask |= 4;
+        if (mouseState.up)     buttonMask |= 8;
+        if (mouseState.down)   buttonMask |= 16;
+
+        // Send message
+        tunnel.sendMessage("mouse", Math.floor(mouseState.x), Math.floor(mouseState.y), buttonMask);
+    };
+
+    /**
+     * Allocates an available stream index and creates a new
+     * Guacamole.OutputStream using that index, associating the resulting
+     * stream with this Guacamole.Client. Note that this stream will not yet
+     * exist as far as the other end of the Guacamole connection is concerned.
+     * Streams exist within the Guacamole protocol only when referenced by an
+     * instruction which creates the stream, such as a "clipboard", "file", or
+     * "pipe" instruction.
+     *
+     * @returns {Guacamole.OutputStream}
+     *     A new Guacamole.OutputStream with a newly-allocated index and
+     *     associated with this Guacamole.Client.
+     */
+    this.createOutputStream = function createOutputStream() {
+
+        // Allocate index
+        var index = stream_indices.next();
+
+        // Return new stream
+        var stream = output_streams[index] = new Guacamole.OutputStream(guac_client, index);
+        return stream;
+
+    };
+
+    /**
+     * Opens a new audio stream for writing, where audio data having the give
+     * mimetype will be sent along the returned stream. The instruction
+     * necessary to create this stream will automatically be sent.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the audio data that will be sent along the returned
+     *     stream.
+     *
+     * @return {Guacamole.OutputStream}
+     *     The created audio stream.
+     */
+    this.createAudioStream = function(mimetype) {
+
+        // Allocate and associate stream with audio metadata
+        var stream = guac_client.createOutputStream();
+        tunnel.sendMessage("audio", stream.index, mimetype);
+        return stream;
+
+    };
+
+    /**
+     * Opens a new file for writing, having the given index, mimetype and
+     * filename. The instruction necessary to create this stream will
+     * automatically be sent.
+     *
+     * @param {String} mimetype The mimetype of the file being sent.
+     * @param {String} filename The filename of the file being sent.
+     * @return {Guacamole.OutputStream} The created file stream.
+     */
+    this.createFileStream = function(mimetype, filename) {
+
+        // Allocate and associate stream with file metadata
+        var stream = guac_client.createOutputStream();
+        tunnel.sendMessage("file", stream.index, mimetype, filename);
+        return stream;
+
+    };
+
+    /**
+     * Opens a new pipe for writing, having the given name and mimetype. The
+     * instruction necessary to create this stream will automatically be sent.
+     *
+     * @param {String} mimetype The mimetype of the data being sent.
+     * @param {String} name The name of the pipe.
+     * @return {Guacamole.OutputStream} The created file stream.
+     */
+    this.createPipeStream = function(mimetype, name) {
+
+        // Allocate and associate stream with pipe metadata
+        var stream = guac_client.createOutputStream();
+        tunnel.sendMessage("pipe", stream.index, mimetype, name);
+        return stream;
+
+    };
+
+    /**
+     * Opens a new clipboard object for writing, having the given mimetype. The
+     * instruction necessary to create this stream will automatically be sent.
+     *
+     * @param {String} mimetype The mimetype of the data being sent.
+     * @param {String} name The name of the pipe.
+     * @return {Guacamole.OutputStream} The created file stream.
+     */
+    this.createClipboardStream = function(mimetype) {
+
+        // Allocate and associate stream with clipboard metadata
+        var stream = guac_client.createOutputStream();
+        tunnel.sendMessage("clipboard", stream.index, mimetype);
+        return stream;
+
+    };
+
+    /**
+     * Opens a new argument value stream for writing, having the given
+     * parameter name and mimetype, requesting that the connection parameter
+     * with the given name be updated to the value described by the contents
+     * of the following stream. The instruction necessary to create this stream
+     * will automatically be sent.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the data being sent.
+     *
+     * @param {String} name
+     *     The name of the connection parameter to attempt to update.
+     *
+     * @return {Guacamole.OutputStream}
+     *     The created argument value stream.
+     */
+    this.createArgumentValueStream = function createArgumentValueStream(mimetype, name) {
+
+        // Allocate and associate stream with argument value metadata
+        var stream = guac_client.createOutputStream();
+        tunnel.sendMessage("argv", stream.index, mimetype, name);
+        return stream;
+
+    };
+
+    /**
+     * Creates a new output stream associated with the given object and having
+     * the given mimetype and name. The legality of a mimetype and name is
+     * dictated by the object itself. The instruction necessary to create this
+     * stream will automatically be sent.
+     *
+     * @param {Number} index
+     *     The index of the object for which the output stream is being
+     *     created.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the data which will be sent to the output stream.
+     *
+     * @param {String} name
+     *     The defined name of an output stream within the given object.
+     *
+     * @returns {Guacamole.OutputStream}
+     *     An output stream which will write blobs to the named output stream
+     *     of the given object.
+     */
+    this.createObjectOutputStream = function createObjectOutputStream(index, mimetype, name) {
+
+        // Allocate and ssociate stream with object metadata
+        var stream = guac_client.createOutputStream();
+        tunnel.sendMessage("put", index, stream.index, mimetype, name);
+        return stream;
+
+    };
+
+    /**
+     * Requests read access to the input stream having the given name. If
+     * successful, a new input stream will be created.
+     *
+     * @param {Number} index
+     *     The index of the object from which the input stream is being
+     *     requested.
+     *
+     * @param {String} name
+     *     The name of the input stream to request.
+     */
+    this.requestObjectInputStream = function requestObjectInputStream(index, name) {
+
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        tunnel.sendMessage("get", index, name);
+    };
+
+    /**
+     * Acknowledge receipt of a blob on the stream with the given index.
+     * 
+     * @param {Number} index The index of the stream associated with the
+     *                       received blob.
+     * @param {String} message A human-readable message describing the error
+     *                         or status.
+     * @param {Number} code The error code, if any, or 0 for success.
+     */
+    this.sendAck = function(index, message, code) {
+
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        tunnel.sendMessage("ack", index, message, code);
+    };
+
+    /**
+     * Given the index of a file, writes a blob of data to that file.
+     * 
+     * @param {Number} index The index of the file to write to.
+     * @param {String} data Base64-encoded data to write to the file.
+     */
+    this.sendBlob = function(index, data) {
+
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        tunnel.sendMessage("blob", index, data);
+    };
+
+    /**
+     * Marks a currently-open stream as complete. The other end of the
+     * Guacamole connection will be notified via an "end" instruction that the
+     * stream is closed, and the index will be made available for reuse in
+     * future streams.
+     * 
+     * @param {Number} index
+     *     The index of the stream to end.
+     */
+    this.endStream = function(index) {
+
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        // Explicitly close stream by sending "end" instruction
+        tunnel.sendMessage("end", index);
+
+        // Free associated index and stream if they exist
+        if (output_streams[index]) {
+            stream_indices.free(index);
+            delete output_streams[index];
+        }
+
+    };
+
+    /**
+     * Fired whenever the state of this Guacamole.Client changes.
+     * 
+     * @event
+     * @param {Number} state The new state of the client.
+     */
+    this.onstatechange = null;
+
+    /**
+     * Fired when the remote client sends a name update.
+     * 
+     * @event
+     * @param {String} name The new name of this client.
+     */
+    this.onname = null;
+
+    /**
+     * Fired when an error is reported by the remote client, and the connection
+     * is being closed.
+     * 
+     * @event
+     * @param {Guacamole.Status} status A status object which describes the
+     *                                  error.
+     */
+    this.onerror = null;
+
+    /**
+     * Fired when a audio stream is created. The stream provided to this event
+     * handler will contain its own event handlers for received data.
+     *
+     * @event
+     * @param {Guacamole.InputStream} stream
+     *     The stream that will receive audio data from the server.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the audio data which will be received.
+     *
+     * @return {Guacamole.AudioPlayer}
+     *     An object which implements the Guacamole.AudioPlayer interface and
+     *     has been initialied to play the data in the provided stream, or null
+     *     if the built-in audio players of the Guacamole client should be
+     *     used.
+     */
+    this.onaudio = null;
+
+    /**
+     * Fired when a video stream is created. The stream provided to this event
+     * handler will contain its own event handlers for received data.
+     *
+     * @event
+     * @param {Guacamole.InputStream} stream
+     *     The stream that will receive video data from the server.
+     *
+     * @param {Guacamole.Display.VisibleLayer} layer
+     *     The destination layer on which the received video data should be
+     *     played. It is the responsibility of the Guacamole.VideoPlayer
+     *     implementation to play the received data within this layer.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the video data which will be received.
+     *
+     * @return {Guacamole.VideoPlayer}
+     *     An object which implements the Guacamole.VideoPlayer interface and
+     *     has been initialied to play the data in the provided stream, or null
+     *     if the built-in video players of the Guacamole client should be
+     *     used.
+     */
+    this.onvideo = null;
+
+    /**
+     * Fired when the current value of a connection parameter is being exposed
+     * by the server.
+     *
+     * @event
+     * @param {Guacamole.InputStream} stream
+     *     The stream that will receive connection parameter data from the
+     *     server.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the data which will be received.
+     *
+     * @param {String} name
+     *     The name of the connection parameter whose value is being exposed.
+     */
+    this.onargv = null;
+
+    /**
+     * Fired when the clipboard of the remote client is changing.
+     * 
+     * @event
+     * @param {Guacamole.InputStream} stream The stream that will receive
+     *                                       clipboard data from the server.
+     * @param {String} mimetype The mimetype of the data which will be received.
+     */
+    this.onclipboard = null;
+
+    /**
+     * Fired when a file stream is created. The stream provided to this event
+     * handler will contain its own event handlers for received data.
+     * 
+     * @event
+     * @param {Guacamole.InputStream} stream The stream that will receive data
+     *                                       from the server.
+     * @param {String} mimetype The mimetype of the file received.
+     * @param {String} filename The name of the file received.
+     */
+    this.onfile = null;
+
+    /**
+     * Fired when a filesystem object is created. The object provided to this
+     * event handler will contain its own event handlers and functions for
+     * requesting and handling data.
+     *
+     * @event
+     * @param {Guacamole.Object} object
+     *     The created filesystem object.
+     *
+     * @param {String} name
+     *     The name of the filesystem.
+     */
+    this.onfilesystem = null;
+
+    /**
+     * Fired when a pipe stream is created. The stream provided to this event
+     * handler will contain its own event handlers for received data;
+     * 
+     * @event
+     * @param {Guacamole.InputStream} stream The stream that will receive data
+     *                                       from the server.
+     * @param {String} mimetype The mimetype of the data which will be received.
+     * @param {String} name The name of the pipe.
+     */
+    this.onpipe = null;
+
+    /**
+     * Fired whenever a sync instruction is received from the server, indicating
+     * that the server is finished processing any input from the client and
+     * has sent any results.
+     * 
+     * @event
+     * @param {Number} timestamp The timestamp associated with the sync
+     *                           instruction.
+     */
+    this.onsync = null;
+
+    /**
+     * Returns the layer with the given index, creating it if necessary.
+     * Positive indices refer to visible layers, an index of zero refers to
+     * the default layer, and negative indices refer to buffers.
+     *
+     * @private
+     * @param {Number} index
+     *     The index of the layer to retrieve.
+     *
+     * @return {Guacamole.Display.VisibleLayer|Guacamole.Layer}
+     *     The layer having the given index.
+     */
+    var getLayer = function getLayer(index) {
+
+        // Get layer, create if necessary
+        var layer = layers[index];
+        if (!layer) {
+
+            // Create layer based on index
+            if (index === 0)
+                layer = display.getDefaultLayer();
+            else if (index > 0)
+                layer = display.createLayer();
+            else
+                layer = display.createBuffer();
+                
+            // Add new layer
+            layers[index] = layer;
+
+        }
+
+        return layer;
+
+    };
+
+    /**
+     * Returns the index passed to getLayer() when the given layer was created.
+     * Positive indices refer to visible layers, an index of zero refers to the
+     * default layer, and negative indices refer to buffers.
+     *
+     * @param {Guacamole.Display.VisibleLayer|Guacamole.Layer} layer
+     *     The layer whose index should be determined.
+     *
+     * @returns {Number}
+     *     The index of the given layer, or null if no such layer is associated
+     *     with this client.
+     */
+    var getLayerIndex = function getLayerIndex(layer) {
+
+        // Avoid searching if there clearly is no such layer
+        if (!layer)
+            return null;
+
+        // Search through each layer, returning the index of the given layer
+        // once found
+        for (var key in layers) {
+            if (layer === layers[key])
+                return parseInt(key);
+        }
+
+        // Otherwise, no such index
+        return null;
+
+    };
+
+    function getParser(index) {
+
+        var parser = parsers[index];
+
+        // If parser not yet created, create it, and tie to the
+        // oninstruction handler of the tunnel.
+        if (parser == null) {
+            parser = parsers[index] = new Guacamole.Parser();
+            parser.oninstruction = tunnel.oninstruction;
+        }
+
+        return parser;
+
+    }
+
+    /**
+     * Handlers for all defined layer properties.
+     * @private
+     */
+    var layerPropertyHandlers = {
+
+        "miter-limit": function(layer, value) {
+            display.setMiterLimit(layer, parseFloat(value));
+        }
+
+    };
+    
+    /**
+     * Handlers for all instruction opcodes receivable by a Guacamole protocol
+     * client.
+     * @private
+     */
+    var instructionHandlers = {
+
+        "ack": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var reason = parameters[1];
+            var code = parseInt(parameters[2]);
+
+            // Get stream
+            var stream = output_streams[stream_index];
+            if (stream) {
+
+                // Signal ack if handler defined
+                if (stream.onack)
+                    stream.onack(new Guacamole.Status(code, reason));
+
+                // If code is an error, invalidate stream if not already
+                // invalidated by onack handler
+                if (code >= 0x0100 &amp;&amp; output_streams[stream_index] === stream) {
+                    stream_indices.free(stream_index);
+                    delete output_streams[stream_index];
+                }
+
+            }
+
+        },
+
+        "arc": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var x = parseInt(parameters[1]);
+            var y = parseInt(parameters[2]);
+            var radius = parseInt(parameters[3]);
+            var startAngle = parseFloat(parameters[4]);
+            var endAngle = parseFloat(parameters[5]);
+            var negative = parseInt(parameters[6]);
+
+            display.arc(layer, x, y, radius, startAngle, endAngle, negative != 0);
+
+        },
+
+        "argv": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var mimetype = parameters[1];
+            var name = parameters[2];
+
+            // Create stream
+            if (guac_client.onargv) {
+                var stream = streams[stream_index] = new Guacamole.InputStream(guac_client, stream_index);
+                guac_client.onargv(stream, mimetype, name);
+            }
+
+            // Otherwise, unsupported
+            else
+                guac_client.sendAck(stream_index, "Receiving argument values unsupported", 0x0100);
+
+        },
+
+        "audio": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var mimetype = parameters[1];
+
+            // Create stream 
+            var stream = streams[stream_index] =
+                    new Guacamole.InputStream(guac_client, stream_index);
+
+            // Get player instance via callback
+            var audioPlayer = null;
+            if (guac_client.onaudio)
+                audioPlayer = guac_client.onaudio(stream, mimetype);
+
+            // If unsuccessful, try to use a default implementation
+            if (!audioPlayer)
+                audioPlayer = Guacamole.AudioPlayer.getInstance(stream, mimetype);
+
+            // If we have successfully retrieved an audio player, send success response
+            if (audioPlayer) {
+                audioPlayers[stream_index] = audioPlayer;
+                guac_client.sendAck(stream_index, "OK", 0x0000);
+            }
+
+            // Otherwise, mimetype must be unsupported
+            else
+                guac_client.sendAck(stream_index, "BAD TYPE", 0x030F);
+
+        },
+
+        "blob": function(parameters) {
+
+            // Get stream 
+            var stream_index = parseInt(parameters[0]);
+            var data = parameters[1];
+            var stream = streams[stream_index];
+
+            // Write data
+            if (stream &amp;&amp; stream.onblob)
+                stream.onblob(data);
+
+        },
+
+        "body" : function handleBody(parameters) {
+
+            // Get object
+            var objectIndex = parseInt(parameters[0]);
+            var object = objects[objectIndex];
+
+            var streamIndex = parseInt(parameters[1]);
+            var mimetype = parameters[2];
+            var name = parameters[3];
+
+            // Create stream if handler defined
+            if (object &amp;&amp; object.onbody) {
+                var stream = streams[streamIndex] = new Guacamole.InputStream(guac_client, streamIndex);
+                object.onbody(stream, mimetype, name);
+            }
+
+            // Otherwise, unsupported
+            else
+                guac_client.sendAck(streamIndex, "Receipt of body unsupported", 0x0100);
+
+        },
+
+        "cfill": function(parameters) {
+
+            var channelMask = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var r = parseInt(parameters[2]);
+            var g = parseInt(parameters[3]);
+            var b = parseInt(parameters[4]);
+            var a = parseInt(parameters[5]);
+
+            display.setChannelMask(layer, channelMask);
+            display.fillColor(layer, r, g, b, a);
+
+        },
+
+        "clip": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+
+            display.clip(layer);
+
+        },
+
+        "clipboard": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var mimetype = parameters[1];
+
+            // Create stream 
+            if (guac_client.onclipboard) {
+                var stream = streams[stream_index] = new Guacamole.InputStream(guac_client, stream_index);
+                guac_client.onclipboard(stream, mimetype);
+            }
+
+            // Otherwise, unsupported
+            else
+                guac_client.sendAck(stream_index, "Clipboard unsupported", 0x0100);
+
+        },
+
+        "close": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+
+            display.close(layer);
+
+        },
+
+        "copy": function(parameters) {
+
+            var srcL = getLayer(parseInt(parameters[0]));
+            var srcX = parseInt(parameters[1]);
+            var srcY = parseInt(parameters[2]);
+            var srcWidth = parseInt(parameters[3]);
+            var srcHeight = parseInt(parameters[4]);
+            var channelMask = parseInt(parameters[5]);
+            var dstL = getLayer(parseInt(parameters[6]));
+            var dstX = parseInt(parameters[7]);
+            var dstY = parseInt(parameters[8]);
+
+            display.setChannelMask(dstL, channelMask);
+            display.copy(srcL, srcX, srcY, srcWidth, srcHeight, 
+                         dstL, dstX, dstY);
+
+        },
+
+        "cstroke": function(parameters) {
+
+            var channelMask = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var cap = lineCap[parseInt(parameters[2])];
+            var join = lineJoin[parseInt(parameters[3])];
+            var thickness = parseInt(parameters[4]);
+            var r = parseInt(parameters[5]);
+            var g = parseInt(parameters[6]);
+            var b = parseInt(parameters[7]);
+            var a = parseInt(parameters[8]);
+
+            display.setChannelMask(layer, channelMask);
+            display.strokeColor(layer, cap, join, thickness, r, g, b, a);
+
+        },
+
+        "cursor": function(parameters) {
+
+            var cursorHotspotX = parseInt(parameters[0]);
+            var cursorHotspotY = parseInt(parameters[1]);
+            var srcL = getLayer(parseInt(parameters[2]));
+            var srcX = parseInt(parameters[3]);
+            var srcY = parseInt(parameters[4]);
+            var srcWidth = parseInt(parameters[5]);
+            var srcHeight = parseInt(parameters[6]);
+
+            display.setCursor(cursorHotspotX, cursorHotspotY,
+                              srcL, srcX, srcY, srcWidth, srcHeight);
+
+        },
+
+        "curve": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var cp1x = parseInt(parameters[1]);
+            var cp1y = parseInt(parameters[2]);
+            var cp2x = parseInt(parameters[3]);
+            var cp2y = parseInt(parameters[4]);
+            var x = parseInt(parameters[5]);
+            var y = parseInt(parameters[6]);
+
+            display.curveTo(layer, cp1x, cp1y, cp2x, cp2y, x, y);
+
+        },
+
+        "disconnect" : function handleDisconnect(parameters) {
+
+            // Explicitly tear down connection
+            guac_client.disconnect();
+
+        },
+
+        "dispose": function(parameters) {
+            
+            var layer_index = parseInt(parameters[0]);
+
+            // If visible layer, remove from parent
+            if (layer_index > 0) {
+
+                // Remove from parent
+                var layer = getLayer(layer_index);
+                display.dispose(layer);
+
+                // Delete reference
+                delete layers[layer_index];
+
+            }
+
+            // If buffer, just delete reference
+            else if (layer_index &lt; 0)
+                delete layers[layer_index];
+
+            // Attempting to dispose the root layer currently has no effect.
+
+        },
+
+        "distort": function(parameters) {
+
+            var layer_index = parseInt(parameters[0]);
+            var a = parseFloat(parameters[1]);
+            var b = parseFloat(parameters[2]);
+            var c = parseFloat(parameters[3]);
+            var d = parseFloat(parameters[4]);
+            var e = parseFloat(parameters[5]);
+            var f = parseFloat(parameters[6]);
+
+            // Only valid for visible layers (not buffers)
+            if (layer_index >= 0) {
+                var layer = getLayer(layer_index);
+                display.distort(layer, a, b, c, d, e, f);
+            }
+
+        },
+ 
+        "error": function(parameters) {
+
+            var reason = parameters[0];
+            var code = parseInt(parameters[1]);
+
+            // Call handler if defined
+            if (guac_client.onerror)
+                guac_client.onerror(new Guacamole.Status(code, reason));
+
+            guac_client.disconnect();
+
+        },
+
+        "end": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+
+            // Get stream
+            var stream = streams[stream_index];
+            if (stream) {
+
+                // Signal end of stream if handler defined
+                if (stream.onend)
+                    stream.onend();
+
+                // Invalidate stream
+                delete streams[stream_index];
+
+            }
+
+        },
+
+        "file": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var mimetype = parameters[1];
+            var filename = parameters[2];
+
+            // Create stream 
+            if (guac_client.onfile) {
+                var stream = streams[stream_index] = new Guacamole.InputStream(guac_client, stream_index);
+                guac_client.onfile(stream, mimetype, filename);
+            }
+
+            // Otherwise, unsupported
+            else
+                guac_client.sendAck(stream_index, "File transfer unsupported", 0x0100);
+
+        },
+
+        "filesystem" : function handleFilesystem(parameters) {
+
+            var objectIndex = parseInt(parameters[0]);
+            var name = parameters[1];
+
+            // Create object, if supported
+            if (guac_client.onfilesystem) {
+                var object = objects[objectIndex] = new Guacamole.Object(guac_client, objectIndex);
+                guac_client.onfilesystem(object, name);
+            }
+
+            // If unsupported, simply ignore the availability of the filesystem
+
+        },
+
+        "identity": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+
+            display.setTransform(layer, 1, 0, 0, 1, 0, 0);
+
+        },
+
+        "img": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var channelMask = parseInt(parameters[1]);
+            var layer = getLayer(parseInt(parameters[2]));
+            var mimetype = parameters[3];
+            var x = parseInt(parameters[4]);
+            var y = parseInt(parameters[5]);
+
+            // Create stream
+            var stream = streams[stream_index] = new Guacamole.InputStream(guac_client, stream_index);
+            var reader = new Guacamole.DataURIReader(stream, mimetype);
+
+            // Draw image when stream is complete
+            reader.onend = function drawImageBlob() {
+                display.setChannelMask(layer, channelMask);
+                display.draw(layer, x, y, reader.getURI());
+            };
+
+        },
+
+        "jpeg": function(parameters) {
+
+            var channelMask = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var x = parseInt(parameters[2]);
+            var y = parseInt(parameters[3]);
+            var data = parameters[4];
+
+            display.setChannelMask(layer, channelMask);
+            display.draw(layer, x, y, "data:image/jpeg;base64," + data);
+
+        },
+
+        "lfill": function(parameters) {
+
+            var channelMask = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var srcLayer = getLayer(parseInt(parameters[2]));
+
+            display.setChannelMask(layer, channelMask);
+            display.fillLayer(layer, srcLayer);
+
+        },
+
+        "line": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var x = parseInt(parameters[1]);
+            var y = parseInt(parameters[2]);
+
+            display.lineTo(layer, x, y);
+
+        },
+
+        "lstroke": function(parameters) {
+
+            var channelMask = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var srcLayer = getLayer(parseInt(parameters[2]));
+
+            display.setChannelMask(layer, channelMask);
+            display.strokeLayer(layer, srcLayer);
+
+        },
+
+        "mouse" : function handleMouse(parameters) {
+
+            var x = parseInt(parameters[0]);
+            var y = parseInt(parameters[1]);
+
+            // Display and move software cursor to received coordinates
+            display.showCursor(true);
+            display.moveCursor(x, y);
+
+        },
+
+        "move": function(parameters) {
+            
+            var layer_index = parseInt(parameters[0]);
+            var parent_index = parseInt(parameters[1]);
+            var x = parseInt(parameters[2]);
+            var y = parseInt(parameters[3]);
+            var z = parseInt(parameters[4]);
+
+            // Only valid for non-default layers
+            if (layer_index > 0 &amp;&amp; parent_index >= 0) {
+                var layer = getLayer(layer_index);
+                var parent = getLayer(parent_index);
+                display.move(layer, parent, x, y, z);
+            }
+
+        },
+
+        "name": function(parameters) {
+            if (guac_client.onname) guac_client.onname(parameters[0]);
+        },
+
+        "nest": function(parameters) {
+            var parser = getParser(parseInt(parameters[0]));
+            parser.receive(parameters[1]);
+        },
+
+        "pipe": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var mimetype = parameters[1];
+            var name = parameters[2];
+
+            // Create stream 
+            if (guac_client.onpipe) {
+                var stream = streams[stream_index] = new Guacamole.InputStream(guac_client, stream_index);
+                guac_client.onpipe(stream, mimetype, name);
+            }
+
+            // Otherwise, unsupported
+            else
+                guac_client.sendAck(stream_index, "Named pipes unsupported", 0x0100);
+
+        },
+
+        "png": function(parameters) {
+
+            var channelMask = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var x = parseInt(parameters[2]);
+            var y = parseInt(parameters[3]);
+            var data = parameters[4];
+
+            display.setChannelMask(layer, channelMask);
+            display.draw(layer, x, y, "data:image/png;base64," + data);
+
+        },
+
+        "pop": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+
+            display.pop(layer);
+
+        },
+
+        "push": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+
+            display.push(layer);
+
+        },
+ 
+        "rect": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var x = parseInt(parameters[1]);
+            var y = parseInt(parameters[2]);
+            var w = parseInt(parameters[3]);
+            var h = parseInt(parameters[4]);
+
+            display.rect(layer, x, y, w, h);
+
+        },
+        
+        "reset": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+
+            display.reset(layer);
+
+        },
+        
+        "set": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var name = parameters[1];
+            var value = parameters[2];
+
+            // Call property handler if defined
+            var handler = layerPropertyHandlers[name];
+            if (handler)
+                handler(layer, value);
+
+        },
+
+        "shade": function(parameters) {
+            
+            var layer_index = parseInt(parameters[0]);
+            var a = parseInt(parameters[1]);
+
+            // Only valid for visible layers (not buffers)
+            if (layer_index >= 0) {
+                var layer = getLayer(layer_index);
+                display.shade(layer, a);
+            }
+
+        },
+
+        "size": function(parameters) {
+
+            var layer_index = parseInt(parameters[0]);
+            var layer = getLayer(layer_index);
+            var width = parseInt(parameters[1]);
+            var height = parseInt(parameters[2]);
+
+            display.resize(layer, width, height);
+
+        },
+        
+        "start": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var x = parseInt(parameters[1]);
+            var y = parseInt(parameters[2]);
+
+            display.moveTo(layer, x, y);
+
+        },
+
+        "sync": function(parameters) {
+
+            var timestamp = parseInt(parameters[0]);
+
+            // Flush display, send sync when done
+            display.flush(function displaySyncComplete() {
+
+                // Synchronize all audio players
+                for (var index in audioPlayers) {
+                    var audioPlayer = audioPlayers[index];
+                    if (audioPlayer)
+                        audioPlayer.sync();
+                }
+
+                // Send sync response to server
+                if (timestamp !== currentTimestamp) {
+                    tunnel.sendMessage("sync", timestamp);
+                    currentTimestamp = timestamp;
+                }
+
+            });
+
+            // If received first update, no longer waiting.
+            if (currentState === STATE_WAITING)
+                setState(STATE_CONNECTED);
+
+            // Call sync handler if defined
+            if (guac_client.onsync)
+                guac_client.onsync(timestamp);
+
+        },
+
+        "transfer": function(parameters) {
+
+            var srcL = getLayer(parseInt(parameters[0]));
+            var srcX = parseInt(parameters[1]);
+            var srcY = parseInt(parameters[2]);
+            var srcWidth = parseInt(parameters[3]);
+            var srcHeight = parseInt(parameters[4]);
+            var function_index = parseInt(parameters[5]);
+            var dstL = getLayer(parseInt(parameters[6]));
+            var dstX = parseInt(parameters[7]);
+            var dstY = parseInt(parameters[8]);
+
+            /* SRC */
+            if (function_index === 0x3)
+                display.put(srcL, srcX, srcY, srcWidth, srcHeight, 
+                    dstL, dstX, dstY);
+
+            /* Anything else that isn't a NO-OP */
+            else if (function_index !== 0x5)
+                display.transfer(srcL, srcX, srcY, srcWidth, srcHeight, 
+                    dstL, dstX, dstY, Guacamole.Client.DefaultTransferFunction[function_index]);
+
+        },
+
+        "transform": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var a = parseFloat(parameters[1]);
+            var b = parseFloat(parameters[2]);
+            var c = parseFloat(parameters[3]);
+            var d = parseFloat(parameters[4]);
+            var e = parseFloat(parameters[5]);
+            var f = parseFloat(parameters[6]);
+
+            display.transform(layer, a, b, c, d, e, f);
+
+        },
+
+        "undefine" : function handleUndefine(parameters) {
+
+            // Get object
+            var objectIndex = parseInt(parameters[0]);
+            var object = objects[objectIndex];
+
+            // Signal end of object definition
+            if (object &amp;&amp; object.onundefine)
+                object.onundefine();
+
+        },
+
+        "video": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var mimetype = parameters[2];
+
+            // Create stream
+            var stream = streams[stream_index] =
+                    new Guacamole.InputStream(guac_client, stream_index);
+
+            // Get player instance via callback
+            var videoPlayer = null;
+            if (guac_client.onvideo)
+                videoPlayer = guac_client.onvideo(stream, layer, mimetype);
+
+            // If unsuccessful, try to use a default implementation
+            if (!videoPlayer)
+                videoPlayer = Guacamole.VideoPlayer.getInstance(stream, layer, mimetype);
+
+            // If we have successfully retrieved an video player, send success response
+            if (videoPlayer) {
+                videoPlayers[stream_index] = videoPlayer;
+                guac_client.sendAck(stream_index, "OK", 0x0000);
+            }
+
+            // Otherwise, mimetype must be unsupported
+            else
+                guac_client.sendAck(stream_index, "BAD TYPE", 0x030F);
+
+        }
+
+    };
+
+    tunnel.oninstruction = function(opcode, parameters) {
+
+        var handler = instructionHandlers[opcode];
+        if (handler)
+            handler(parameters);
+
+    };
+
+    /**
+     * Sends a disconnect instruction to the server and closes the tunnel.
+     */
+    this.disconnect = function() {
+
+        // Only attempt disconnection not disconnected.
+        if (currentState != STATE_DISCONNECTED
+                &amp;&amp; currentState != STATE_DISCONNECTING) {
+
+            setState(STATE_DISCONNECTING);
+
+            // Stop ping
+            if (pingInterval)
+                window.clearInterval(pingInterval);
+
+            // Send disconnect message and disconnect
+            tunnel.sendMessage("disconnect");
+            tunnel.disconnect();
+            setState(STATE_DISCONNECTED);
+
+        }
+
+    };
+    
+    /**
+     * Connects the underlying tunnel of this Guacamole.Client, passing the
+     * given arbitrary data to the tunnel during the connection process.
+     *
+     * @param data Arbitrary connection data to be sent to the underlying
+     *             tunnel during the connection process.
+     * @throws {Guacamole.Status} If an error occurs during connection.
+     */
+    this.connect = function(data) {
+
+        setState(STATE_CONNECTING);
+
+        try {
+            tunnel.connect(data);
+        }
+        catch (status) {
+            setState(STATE_IDLE);
+            throw status;
+        }
+
+        // Ping every 5 seconds (ensure connection alive)
+        pingInterval = window.setInterval(function() {
+            tunnel.sendMessage("nop");
+        }, 5000);
+
+        setState(STATE_WAITING);
+    };
+
+};
+
+/**
+ * Map of all Guacamole binary raster operations to transfer functions.
+ * @private
+ */
+Guacamole.Client.DefaultTransferFunction = {
+
+    /* BLACK */
+    0x0: function (src, dst) {
+        dst.red = dst.green = dst.blue = 0x00;
+    },
+
+    /* WHITE */
+    0xF: function (src, dst) {
+        dst.red = dst.green = dst.blue = 0xFF;
+    },
+
+    /* SRC */
+    0x3: function (src, dst) {
+        dst.red   = src.red;
+        dst.green = src.green;
+        dst.blue  = src.blue;
+        dst.alpha = src.alpha;
+    },
+
+    /* DEST (no-op) */
+    0x5: function (src, dst) {
+        // Do nothing
+    },
+
+    /* Invert SRC */
+    0xC: function (src, dst) {
+        dst.red   = 0xFF &amp; ~src.red;
+        dst.green = 0xFF &amp; ~src.green;
+        dst.blue  = 0xFF &amp; ~src.blue;
+        dst.alpha =  src.alpha;
+    },
+    
+    /* Invert DEST */
+    0xA: function (src, dst) {
+        dst.red   = 0xFF &amp; ~dst.red;
+        dst.green = 0xFF &amp; ~dst.green;
+        dst.blue  = 0xFF &amp; ~dst.blue;
+    },
+
+    /* AND */
+    0x1: function (src, dst) {
+        dst.red   =  ( src.red   &amp;  dst.red);
+        dst.green =  ( src.green &amp;  dst.green);
+        dst.blue  =  ( src.blue  &amp;  dst.blue);
+    },
+
+    /* NAND */
+    0xE: function (src, dst) {
+        dst.red   = 0xFF &amp; ~( src.red   &amp;  dst.red);
+        dst.green = 0xFF &amp; ~( src.green &amp;  dst.green);
+        dst.blue  = 0xFF &amp; ~( src.blue  &amp;  dst.blue);
+    },
+
+    /* OR */
+    0x7: function (src, dst) {
+        dst.red   =  ( src.red   |  dst.red);
+        dst.green =  ( src.green |  dst.green);
+        dst.blue  =  ( src.blue  |  dst.blue);
+    },
+
+    /* NOR */
+    0x8: function (src, dst) {
+        dst.red   = 0xFF &amp; ~( src.red   |  dst.red);
+        dst.green = 0xFF &amp; ~( src.green |  dst.green);
+        dst.blue  = 0xFF &amp; ~( src.blue  |  dst.blue);
+    },
+
+    /* XOR */
+    0x6: function (src, dst) {
+        dst.red   =  ( src.red   ^  dst.red);
+        dst.green =  ( src.green ^  dst.green);
+        dst.blue  =  ( src.blue  ^  dst.blue);
+    },
+
+    /* XNOR */
+    0x9: function (src, dst) {
+        dst.red   = 0xFF &amp; ~( src.red   ^  dst.red);
+        dst.green = 0xFF &amp; ~( src.green ^  dst.green);
+        dst.blue  = 0xFF &amp; ~( src.blue  ^  dst.blue);
+    },
+
+    /* AND inverted source */
+    0x4: function (src, dst) {
+        dst.red   =  0xFF &amp; (~src.red   &amp;  dst.red);
+        dst.green =  0xFF &amp; (~src.green &amp;  dst.green);
+        dst.blue  =  0xFF &amp; (~src.blue  &amp;  dst.blue);
+    },
+
+    /* OR inverted source */
+    0xD: function (src, dst) {
+        dst.red   =  0xFF &amp; (~src.red   |  dst.red);
+        dst.green =  0xFF &amp; (~src.green |  dst.green);
+        dst.blue  =  0xFF &amp; (~src.blue  |  dst.blue);
+    },
+
+    /* AND inverted destination */
+    0x2: function (src, dst) {
+        dst.red   =  0xFF &amp; ( src.red   &amp; ~dst.red);
+        dst.green =  0xFF &amp; ( src.green &amp; ~dst.green);
+        dst.blue  =  0xFF &amp; ( src.blue  &amp; ~dst.blue);
+    },
+
+    /* OR inverted destination */
+    0xB: function (src, dst) {
+        dst.red   =  0xFF &amp; ( src.red   | ~dst.red);
+        dst.green =  0xFF &amp; ( src.green | ~dst.green);
+        dst.blue  =  0xFF &amp; ( src.blue  | ~dst.blue);
+    }
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/DataURIReader.js.html b/doc/1.1.0/guacamole-common-js/DataURIReader.js.html
new file mode 100644
index 0000000..eea3917
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/DataURIReader.js.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: DataURIReader.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: DataURIReader.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A reader which automatically handles the given input stream, returning
+ * received blobs as a single data URI built over the course of the stream.
+ * Note that this object will overwrite any installed event handlers on the
+ * given Guacamole.InputStream.
+ * 
+ * @constructor
+ * @param {Guacamole.InputStream} stream
+ *     The stream that data will be read from.
+ */
+Guacamole.DataURIReader = function(stream, mimetype) {
+
+    /**
+     * Reference to this Guacamole.DataURIReader.
+     * @private
+     */
+    var guac_reader = this;
+
+    /**
+     * Current data URI.
+     *
+     * @private
+     * @type {String}
+     */
+    var uri = 'data:' + mimetype + ';base64,';
+
+    // Receive blobs as array buffers
+    stream.onblob = function dataURIReaderBlob(data) {
+
+        // Currently assuming data will ALWAYS be safe to simply append. This
+        // will not be true if the received base64 data encodes a number of
+        // bytes that isn't a multiple of three (as base64 expands in a ratio
+        // of exactly 3:4).
+        uri += data;
+
+    };
+
+    // Simply call onend when end received
+    stream.onend = function dataURIReaderEnd() {
+        if (guac_reader.onend)
+            guac_reader.onend();
+    };
+
+    /**
+     * Returns the data URI of all data received through the underlying stream
+     * thus far.
+     *
+     * @returns {String}
+     *     The data URI of all data received through the underlying stream thus
+     *     far.
+     */
+    this.getURI = function getURI() {
+        return uri;
+    };
+
+    /**
+     * Fired once this stream is finished and no further data will be written.
+     *
+     * @event
+     */
+    this.onend = null;
+
+};</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Display.js.html b/doc/1.1.0/guacamole-common-js/Display.js.html
new file mode 100644
index 0000000..2739db9
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Display.js.html
@@ -0,0 +1,1533 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Display.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Display.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * The Guacamole display. The display does not deal with the Guacamole
+ * protocol, and instead implements a set of graphical operations which
+ * embody the set of operations present in the protocol. The order operations
+ * are executed is guaranteed to be in the same order as their corresponding
+ * functions are called.
+ * 
+ * @constructor
+ */
+Guacamole.Display = function() {
+
+    /**
+     * Reference to this Guacamole.Display.
+     * @private
+     */
+    var guac_display = this;
+
+    var displayWidth = 0;
+    var displayHeight = 0;
+    var displayScale = 1;
+
+    // Create display
+    var display = document.createElement("div");
+    display.style.position = "relative";
+    display.style.width = displayWidth + "px";
+    display.style.height = displayHeight + "px";
+
+    // Ensure transformations on display originate at 0,0
+    display.style.transformOrigin =
+    display.style.webkitTransformOrigin =
+    display.style.MozTransformOrigin =
+    display.style.OTransformOrigin =
+    display.style.msTransformOrigin =
+        "0 0";
+
+    // Create default layer
+    var default_layer = new Guacamole.Display.VisibleLayer(displayWidth, displayHeight);
+
+    // Create cursor layer
+    var cursor = new Guacamole.Display.VisibleLayer(0, 0);
+    cursor.setChannelMask(Guacamole.Layer.SRC);
+
+    // Add default layer and cursor to display
+    display.appendChild(default_layer.getElement());
+    display.appendChild(cursor.getElement());
+
+    // Create bounding div 
+    var bounds = document.createElement("div");
+    bounds.style.position = "relative";
+    bounds.style.width = (displayWidth*displayScale) + "px";
+    bounds.style.height = (displayHeight*displayScale) + "px";
+
+    // Add display to bounds
+    bounds.appendChild(display);
+
+    /**
+     * The X coordinate of the hotspot of the mouse cursor. The hotspot is
+     * the relative location within the image of the mouse cursor at which
+     * each click occurs.
+     * 
+     * @type {Number}
+     */
+    this.cursorHotspotX = 0;
+
+    /**
+     * The Y coordinate of the hotspot of the mouse cursor. The hotspot is
+     * the relative location within the image of the mouse cursor at which
+     * each click occurs.
+     * 
+     * @type {Number}
+     */
+    this.cursorHotspotY = 0;
+
+    /**
+     * The current X coordinate of the local mouse cursor. This is not
+     * necessarily the location of the actual mouse - it refers only to
+     * the location of the cursor image within the Guacamole display, as
+     * last set by moveCursor().
+     * 
+     * @type {Number}
+     */
+    this.cursorX = 0;
+
+    /**
+     * The current X coordinate of the local mouse cursor. This is not
+     * necessarily the location of the actual mouse - it refers only to
+     * the location of the cursor image within the Guacamole display, as
+     * last set by moveCursor().
+     * 
+     * @type {Number}
+     */
+    this.cursorY = 0;
+
+    /**
+     * Fired when the default layer (and thus the entire Guacamole display)
+     * is resized.
+     * 
+     * @event
+     * @param {Number} width The new width of the Guacamole display.
+     * @param {Number} height The new height of the Guacamole display.
+     */
+    this.onresize = null;
+
+    /**
+     * Fired whenever the local cursor image is changed. This can be used to
+     * implement special handling of the client-side cursor, or to override
+     * the default use of a software cursor layer.
+     * 
+     * @event
+     * @param {HTMLCanvasElement} canvas The cursor image.
+     * @param {Number} x The X-coordinate of the cursor hotspot.
+     * @param {Number} y The Y-coordinate of the cursor hotspot.
+     */
+    this.oncursor = null;
+
+    /**
+     * The queue of all pending Tasks. Tasks will be run in order, with new
+     * tasks added at the end of the queue and old tasks removed from the
+     * front of the queue (FIFO). These tasks will eventually be grouped
+     * into a Frame.
+     * @private
+     * @type {Task[]}
+     */
+    var tasks = [];
+
+    /**
+     * The queue of all frames. Each frame is a pairing of an array of tasks
+     * and a callback which must be called when the frame is rendered.
+     * @private
+     * @type {Frame[]}
+     */
+    var frames = [];
+
+    /**
+     * Flushes all pending frames.
+     * @private
+     */
+    function __flush_frames() {
+
+        var rendered_frames = 0;
+
+        // Draw all pending frames, if ready
+        while (rendered_frames &lt; frames.length) {
+
+            var frame = frames[rendered_frames];
+            if (!frame.isReady())
+                break;
+
+            frame.flush();
+            rendered_frames++;
+
+        } 
+
+        // Remove rendered frames from array
+        frames.splice(0, rendered_frames);
+
+    }
+
+    /**
+     * An ordered list of tasks which must be executed atomically. Once
+     * executed, an associated (and optional) callback will be called.
+     *
+     * @private
+     * @constructor
+     * @param {function} callback The function to call when this frame is
+     *                            rendered.
+     * @param {Task[]} tasks The set of tasks which must be executed to render
+     *                       this frame.
+     */
+    function Frame(callback, tasks) {
+
+        /**
+         * Returns whether this frame is ready to be rendered. This function
+         * returns true if and only if ALL underlying tasks are unblocked.
+         * 
+         * @returns {Boolean} true if all underlying tasks are unblocked,
+         *                    false otherwise.
+         */
+        this.isReady = function() {
+
+            // Search for blocked tasks
+            for (var i=0; i &lt; tasks.length; i++) {
+                if (tasks[i].blocked)
+                    return false;
+            }
+
+            // If no blocked tasks, the frame is ready
+            return true;
+
+        };
+
+        /**
+         * Renders this frame, calling the associated callback, if any, after
+         * the frame is complete. This function MUST only be called when no
+         * blocked tasks exist. Calling this function with blocked tasks
+         * will result in undefined behavior.
+         */
+        this.flush = function() {
+
+            // Draw all pending tasks.
+            for (var i=0; i &lt; tasks.length; i++)
+                tasks[i].execute();
+
+            // Call callback
+            if (callback) callback();
+
+        };
+
+    }
+
+    /**
+     * A container for an task handler. Each operation which must be ordered
+     * is associated with a Task that goes into a task queue. Tasks in this
+     * queue are executed in order once their handlers are set, while Tasks 
+     * without handlers block themselves and any following Tasks from running.
+     *
+     * @constructor
+     * @private
+     * @param {function} taskHandler The function to call when this task 
+     *                               runs, if any.
+     * @param {boolean} blocked Whether this task should start blocked.
+     */
+    function Task(taskHandler, blocked) {
+       
+        var task = this;
+       
+        /**
+         * Whether this Task is blocked.
+         * 
+         * @type {boolean}
+         */
+        this.blocked = blocked;
+
+        /**
+         * Unblocks this Task, allowing it to run.
+         */
+        this.unblock = function() {
+            if (task.blocked) {
+                task.blocked = false;
+                __flush_frames();
+            }
+        };
+
+        /**
+         * Calls the handler associated with this task IMMEDIATELY. This
+         * function does not track whether this task is marked as blocked.
+         * Enforcing the blocked status of tasks is up to the caller.
+         */
+        this.execute = function() {
+            if (taskHandler) taskHandler();
+        };
+
+    }
+
+    /**
+     * Schedules a task for future execution. The given handler will execute
+     * immediately after all previous tasks upon frame flush, unless this
+     * task is blocked. If any tasks is blocked, the entire frame will not
+     * render (and no tasks within will execute) until all tasks are unblocked.
+     * 
+     * @private
+     * @param {function} handler The function to call when possible, if any.
+     * @param {boolean} blocked Whether the task should start blocked.
+     * @returns {Task} The Task created and added to the queue for future
+     *                 running.
+     */
+    function scheduleTask(handler, blocked) {
+        var task = new Task(handler, blocked);
+        tasks.push(task);
+        return task;
+    }
+
+    /**
+     * Returns the element which contains the Guacamole display.
+     * 
+     * @return {Element} The element containing the Guacamole display.
+     */
+    this.getElement = function() {
+        return bounds;
+    };
+
+    /**
+     * Returns the width of this display.
+     * 
+     * @return {Number} The width of this display;
+     */
+    this.getWidth = function() {
+        return displayWidth;
+    };
+
+    /**
+     * Returns the height of this display.
+     * 
+     * @return {Number} The height of this display;
+     */
+    this.getHeight = function() {
+        return displayHeight;
+    };
+
+    /**
+     * Returns the default layer of this display. Each Guacamole display always
+     * has at least one layer. Other layers can optionally be created within
+     * this layer, but the default layer cannot be removed and is the absolute
+     * ancestor of all other layers.
+     * 
+     * @return {Guacamole.Display.VisibleLayer} The default layer.
+     */
+    this.getDefaultLayer = function() {
+        return default_layer;
+    };
+
+    /**
+     * Returns the cursor layer of this display. Each Guacamole display contains
+     * a layer for the image of the mouse cursor. This layer is a special case
+     * and exists above all other layers, similar to the hardware mouse cursor.
+     * 
+     * @return {Guacamole.Display.VisibleLayer} The cursor layer.
+     */
+    this.getCursorLayer = function() {
+        return cursor;
+    };
+
+    /**
+     * Creates a new layer. The new layer will be a direct child of the default
+     * layer, but can be moved to be a child of any other layer. Layers returned
+     * by this function are visible.
+     * 
+     * @return {Guacamole.Display.VisibleLayer} The newly-created layer.
+     */
+    this.createLayer = function() {
+        var layer = new Guacamole.Display.VisibleLayer(displayWidth, displayHeight);
+        layer.move(default_layer, 0, 0, 0);
+        return layer;
+    };
+
+    /**
+     * Creates a new buffer. Buffers are invisible, off-screen surfaces. They
+     * are implemented in the same manner as layers, but do not provide the
+     * same nesting semantics.
+     * 
+     * @return {Guacamole.Layer} The newly-created buffer.
+     */
+    this.createBuffer = function() {
+        var buffer = new Guacamole.Layer(0, 0);
+        buffer.autosize = 1;
+        return buffer;
+    };
+
+    /**
+     * Flush all pending draw tasks, if possible, as a new frame. If the entire
+     * frame is not ready, the flush will wait until all required tasks are
+     * unblocked.
+     * 
+     * @param {function} callback The function to call when this frame is
+     *                            flushed. This may happen immediately, or
+     *                            later when blocked tasks become unblocked.
+     */
+    this.flush = function(callback) {
+
+        // Add frame, reset tasks
+        frames.push(new Frame(callback, tasks));
+        tasks = [];
+
+        // Attempt flush
+        __flush_frames();
+
+    };
+
+    /**
+     * Sets the hotspot and image of the mouse cursor displayed within the
+     * Guacamole display.
+     * 
+     * @param {Number} hotspotX The X coordinate of the cursor hotspot.
+     * @param {Number} hotspotY The Y coordinate of the cursor hotspot.
+     * @param {Guacamole.Layer} layer The source layer containing the data which
+     *                                should be used as the mouse cursor image.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      layer's coordinate space to copy data from.
+
+     */
+    this.setCursor = function(hotspotX, hotspotY, layer, srcx, srcy, srcw, srch) {
+        scheduleTask(function __display_set_cursor() {
+
+            // Set hotspot
+            guac_display.cursorHotspotX = hotspotX;
+            guac_display.cursorHotspotY = hotspotY;
+
+            // Reset cursor size
+            cursor.resize(srcw, srch);
+
+            // Draw cursor to cursor layer
+            cursor.copy(layer, srcx, srcy, srcw, srch, 0, 0);
+            guac_display.moveCursor(guac_display.cursorX, guac_display.cursorY);
+
+            // Fire cursor change event
+            if (guac_display.oncursor)
+                guac_display.oncursor(cursor.toCanvas(), hotspotX, hotspotY);
+
+        });
+    };
+
+    /**
+     * Sets whether the software-rendered cursor is shown. This cursor differs
+     * from the hardware cursor in that it is built into the Guacamole.Display,
+     * and relies on its own Guacamole layer to render.
+     *
+     * @param {Boolean} [shown=true] Whether to show the software cursor.
+     */
+    this.showCursor = function(shown) {
+
+        var element = cursor.getElement();
+        var parent = element.parentNode;
+
+        // Remove from DOM if hidden
+        if (shown === false) {
+            if (parent)
+                parent.removeChild(element);
+        }
+
+        // Otherwise, ensure cursor is child of display
+        else if (parent !== display)
+            display.appendChild(element);
+
+    };
+
+    /**
+     * Sets the location of the local cursor to the given coordinates. For the
+     * sake of responsiveness, this function performs its action immediately.
+     * Cursor motion is not maintained within atomic frames.
+     * 
+     * @param {Number} x The X coordinate to move the cursor to.
+     * @param {Number} y The Y coordinate to move the cursor to.
+     */
+    this.moveCursor = function(x, y) {
+
+        // Move cursor layer
+        cursor.translate(x - guac_display.cursorHotspotX,
+                         y - guac_display.cursorHotspotY);
+
+        // Update stored position
+        guac_display.cursorX = x;
+        guac_display.cursorY = y;
+
+    };
+
+    /**
+     * Changes the size of the given Layer to the given width and height.
+     * Resizing is only attempted if the new size provided is actually different
+     * from the current size.
+     * 
+     * @param {Guacamole.Layer} layer The layer to resize.
+     * @param {Number} width The new width.
+     * @param {Number} height The new height.
+     */
+    this.resize = function(layer, width, height) {
+        scheduleTask(function __display_resize() {
+
+            layer.resize(width, height);
+
+            // Resize display if default layer is resized
+            if (layer === default_layer) {
+
+                // Update (set) display size
+                displayWidth = width;
+                displayHeight = height;
+                display.style.width = displayWidth + "px";
+                display.style.height = displayHeight + "px";
+
+                // Update bounds size
+                bounds.style.width = (displayWidth*displayScale) + "px";
+                bounds.style.height = (displayHeight*displayScale) + "px";
+
+                // Notify of resize
+                if (guac_display.onresize)
+                    guac_display.onresize(width, height);
+
+            }
+
+        });
+    };
+
+    /**
+     * Draws the specified image at the given coordinates. The image specified
+     * must already be loaded.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     * @param {Image} image The image to draw. Note that this is an Image
+     *                      object - not a URL.
+     */
+    this.drawImage = function(layer, x, y, image) {
+        scheduleTask(function __display_drawImage() {
+            layer.drawImage(x, y, image);
+        });
+    };
+
+    /**
+     * Draws the image contained within the specified Blob at the given
+     * coordinates. The Blob specified must already be populated with image
+     * data.
+     *
+     * @param {Guacamole.Layer} layer
+     *     The layer to draw upon.
+     *
+     * @param {Number} x
+     *     The destination X coordinate.
+     *
+     * @param {Number} y
+     *     The destination Y coordinate.
+     *
+     * @param {Blob} blob
+     *     The Blob containing the image data to draw.
+     */
+    this.drawBlob = function(layer, x, y, blob) {
+
+        // Create URL for blob
+        var url = URL.createObjectURL(blob);
+
+        // Draw and free blob URL when ready
+        var task = scheduleTask(function __display_drawBlob() {
+
+            // Draw the image only if it loaded without errors
+            if (image.width &amp;&amp; image.height)
+                layer.drawImage(x, y, image);
+
+            // Blob URL no longer needed
+            URL.revokeObjectURL(url);
+
+        }, true);
+
+        // Load image from URL
+        var image = new Image();
+        image.onload = task.unblock;
+        image.onerror = task.unblock;
+        image.src = url;
+
+    };
+
+    /**
+     * Draws the image at the specified URL at the given coordinates. The image
+     * will be loaded automatically, and this and any future operations will
+     * wait for the image to finish loading.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     * @param {String} url The URL of the image to draw.
+     */
+    this.draw = function(layer, x, y, url) {
+
+        var task = scheduleTask(function __display_draw() {
+
+            // Draw the image only if it loaded without errors
+            if (image.width &amp;&amp; image.height)
+                layer.drawImage(x, y, image);
+
+        }, true);
+
+        var image = new Image();
+        image.onload = task.unblock;
+        image.onerror = task.unblock;
+        image.src = url;
+
+    };
+
+    /**
+     * Plays the video at the specified URL within this layer. The video
+     * will be loaded automatically, and this and any future operations will
+     * wait for the video to finish loading. Future operations will not be
+     * executed until the video finishes playing.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {String} mimetype The mimetype of the video to play.
+     * @param {Number} duration The duration of the video in milliseconds.
+     * @param {String} url The URL of the video to play.
+     */
+    this.play = function(layer, mimetype, duration, url) {
+
+        // Start loading the video
+        var video = document.createElement("video");
+        video.type = mimetype;
+        video.src = url;
+
+        // Start copying frames when playing
+        video.addEventListener("play", function() {
+            
+            function render_callback() {
+                layer.drawImage(0, 0, video);
+                if (!video.ended)
+                    window.setTimeout(render_callback, 20);
+            }
+            
+            render_callback();
+            
+        }, false);
+
+        scheduleTask(video.play);
+
+    };
+
+    /**
+     * Transfer a rectangle of image data from one Layer to this Layer using the
+     * specified transfer function.
+     * 
+     * @param {Guacamole.Layer} srcLayer The Layer to copy image data from.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source Layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      Layer's coordinate space to copy data from.
+     * @param {Guacamole.Layer} dstLayer The layer to draw upon.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     * @param {Function} transferFunction The transfer function to use to
+     *                                    transfer data from source to
+     *                                    destination.
+     */
+    this.transfer = function(srcLayer, srcx, srcy, srcw, srch, dstLayer, x, y, transferFunction) {
+        scheduleTask(function __display_transfer() {
+            dstLayer.transfer(srcLayer, srcx, srcy, srcw, srch, x, y, transferFunction);
+        });
+    };
+
+    /**
+     * Put a rectangle of image data from one Layer to this Layer directly
+     * without performing any alpha blending. Simply copy the data.
+     * 
+     * @param {Guacamole.Layer} srcLayer The Layer to copy image data from.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source Layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      Layer's coordinate space to copy data from.
+     * @param {Guacamole.Layer} dstLayer The layer to draw upon.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     */
+    this.put = function(srcLayer, srcx, srcy, srcw, srch, dstLayer, x, y) {
+        scheduleTask(function __display_put() {
+            dstLayer.put(srcLayer, srcx, srcy, srcw, srch, x, y);
+        });
+    };
+
+    /**
+     * Copy a rectangle of image data from one Layer to this Layer. This
+     * operation will copy exactly the image data that will be drawn once all
+     * operations of the source Layer that were pending at the time this
+     * function was called are complete. This operation will not alter the
+     * size of the source Layer even if its autosize property is set to true.
+     * 
+     * @param {Guacamole.Layer} srcLayer The Layer to copy image data from.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source Layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      Layer's coordinate space to copy data from.
+     * @param {Guacamole.Layer} dstLayer The layer to draw upon.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     */
+    this.copy = function(srcLayer, srcx, srcy, srcw, srch, dstLayer, x, y) {
+        scheduleTask(function __display_copy() {
+            dstLayer.copy(srcLayer, srcx, srcy, srcw, srch, x, y);
+        });
+    };
+
+    /**
+     * Starts a new path at the specified point.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} x The X coordinate of the point to draw.
+     * @param {Number} y The Y coordinate of the point to draw.
+     */
+    this.moveTo = function(layer, x, y) {
+        scheduleTask(function __display_moveTo() {
+            layer.moveTo(x, y);
+        });
+    };
+
+    /**
+     * Add the specified line to the current path.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} x The X coordinate of the endpoint of the line to draw.
+     * @param {Number} y The Y coordinate of the endpoint of the line to draw.
+     */
+    this.lineTo = function(layer, x, y) {
+        scheduleTask(function __display_lineTo() {
+            layer.lineTo(x, y);
+        });
+    };
+
+    /**
+     * Add the specified arc to the current path.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} x The X coordinate of the center of the circle which
+     *                   will contain the arc.
+     * @param {Number} y The Y coordinate of the center of the circle which
+     *                   will contain the arc.
+     * @param {Number} radius The radius of the circle.
+     * @param {Number} startAngle The starting angle of the arc, in radians.
+     * @param {Number} endAngle The ending angle of the arc, in radians.
+     * @param {Boolean} negative Whether the arc should be drawn in order of
+     *                           decreasing angle.
+     */
+    this.arc = function(layer, x, y, radius, startAngle, endAngle, negative) {
+        scheduleTask(function __display_arc() {
+            layer.arc(x, y, radius, startAngle, endAngle, negative);
+        });
+    };
+
+    /**
+     * Starts a new path at the specified point.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} cp1x The X coordinate of the first control point.
+     * @param {Number} cp1y The Y coordinate of the first control point.
+     * @param {Number} cp2x The X coordinate of the second control point.
+     * @param {Number} cp2y The Y coordinate of the second control point.
+     * @param {Number} x The X coordinate of the endpoint of the curve.
+     * @param {Number} y The Y coordinate of the endpoint of the curve.
+     */
+    this.curveTo = function(layer, cp1x, cp1y, cp2x, cp2y, x, y) {
+        scheduleTask(function __display_curveTo() {
+            layer.curveTo(cp1x, cp1y, cp2x, cp2y, x, y);
+        });
+    };
+
+    /**
+     * Closes the current path by connecting the end point with the start
+     * point (if any) with a straight line.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     */
+    this.close = function(layer) {
+        scheduleTask(function __display_close() {
+            layer.close();
+        });
+    };
+
+    /**
+     * Add the specified rectangle to the current path.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} x The X coordinate of the upper-left corner of the
+     *                   rectangle to draw.
+     * @param {Number} y The Y coordinate of the upper-left corner of the
+     *                   rectangle to draw.
+     * @param {Number} w The width of the rectangle to draw.
+     * @param {Number} h The height of the rectangle to draw.
+     */
+    this.rect = function(layer, x, y, w, h) {
+        scheduleTask(function __display_rect() {
+            layer.rect(x, y, w, h);
+        });
+    };
+
+    /**
+     * Clip all future drawing operations by the current path. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as fillColor()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Guacamole.Layer} layer The layer to affect.
+     */
+    this.clip = function(layer) {
+        scheduleTask(function __display_clip() {
+            layer.clip();
+        });
+    };
+
+    /**
+     * Stroke the current path with the specified color. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {String} cap The line cap style. Can be "round", "square",
+     *                     or "butt".
+     * @param {String} join The line join style. Can be "round", "bevel",
+     *                      or "miter".
+     * @param {Number} thickness The line thickness in pixels.
+     * @param {Number} r The red component of the color to fill.
+     * @param {Number} g The green component of the color to fill.
+     * @param {Number} b The blue component of the color to fill.
+     * @param {Number} a The alpha component of the color to fill.
+     */
+    this.strokeColor = function(layer, cap, join, thickness, r, g, b, a) {
+        scheduleTask(function __display_strokeColor() {
+            layer.strokeColor(cap, join, thickness, r, g, b, a);
+        });
+    };
+
+    /**
+     * Fills the current path with the specified color. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} r The red component of the color to fill.
+     * @param {Number} g The green component of the color to fill.
+     * @param {Number} b The blue component of the color to fill.
+     * @param {Number} a The alpha component of the color to fill.
+     */
+    this.fillColor = function(layer, r, g, b, a) {
+        scheduleTask(function __display_fillColor() {
+            layer.fillColor(r, g, b, a);
+        });
+    };
+
+    /**
+     * Stroke the current path with the image within the specified layer. The
+     * image data will be tiled infinitely within the stroke. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {String} cap The line cap style. Can be "round", "square",
+     *                     or "butt".
+     * @param {String} join The line join style. Can be "round", "bevel",
+     *                      or "miter".
+     * @param {Number} thickness The line thickness in pixels.
+     * @param {Guacamole.Layer} srcLayer The layer to use as a repeating pattern
+     *                                   within the stroke.
+     */
+    this.strokeLayer = function(layer, cap, join, thickness, srcLayer) {
+        scheduleTask(function __display_strokeLayer() {
+            layer.strokeLayer(cap, join, thickness, srcLayer);
+        });
+    };
+
+    /**
+     * Fills the current path with the image within the specified layer. The
+     * image data will be tiled infinitely within the stroke. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Guacamole.Layer} srcLayer The layer to use as a repeating pattern
+     *                                   within the fill.
+     */
+    this.fillLayer = function(layer, srcLayer) {
+        scheduleTask(function __display_fillLayer() {
+            layer.fillLayer(srcLayer);
+        });
+    };
+
+    /**
+     * Push current layer state onto stack.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     */
+    this.push = function(layer) {
+        scheduleTask(function __display_push() {
+            layer.push();
+        });
+    };
+
+    /**
+     * Pop layer state off stack.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     */
+    this.pop = function(layer) {
+        scheduleTask(function __display_pop() {
+            layer.pop();
+        });
+    };
+
+    /**
+     * Reset the layer, clearing the stack, the current path, and any transform
+     * matrix.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     */
+    this.reset = function(layer) {
+        scheduleTask(function __display_reset() {
+            layer.reset();
+        });
+    };
+
+    /**
+     * Sets the given affine transform (defined with six values from the
+     * transform's matrix).
+     * 
+     * @param {Guacamole.Layer} layer The layer to modify.
+     * @param {Number} a The first value in the affine transform's matrix.
+     * @param {Number} b The second value in the affine transform's matrix.
+     * @param {Number} c The third value in the affine transform's matrix.
+     * @param {Number} d The fourth value in the affine transform's matrix.
+     * @param {Number} e The fifth value in the affine transform's matrix.
+     * @param {Number} f The sixth value in the affine transform's matrix.
+     */
+    this.setTransform = function(layer, a, b, c, d, e, f) {
+        scheduleTask(function __display_setTransform() {
+            layer.setTransform(a, b, c, d, e, f);
+        });
+    };
+
+    /**
+     * Applies the given affine transform (defined with six values from the
+     * transform's matrix).
+     * 
+     * @param {Guacamole.Layer} layer The layer to modify.
+     * @param {Number} a The first value in the affine transform's matrix.
+     * @param {Number} b The second value in the affine transform's matrix.
+     * @param {Number} c The third value in the affine transform's matrix.
+     * @param {Number} d The fourth value in the affine transform's matrix.
+     * @param {Number} e The fifth value in the affine transform's matrix.
+     * @param {Number} f The sixth value in the affine transform's matrix.
+     */
+    this.transform = function(layer, a, b, c, d, e, f) {
+        scheduleTask(function __display_transform() {
+            layer.transform(a, b, c, d, e, f);
+        });
+    };
+
+    /**
+     * Sets the channel mask for future operations on this Layer.
+     * 
+     * The channel mask is a Guacamole-specific compositing operation identifier
+     * with a single bit representing each of four channels (in order): source
+     * image where destination transparent, source where destination opaque,
+     * destination where source transparent, and destination where source
+     * opaque.
+     * 
+     * @param {Guacamole.Layer} layer The layer to modify.
+     * @param {Number} mask The channel mask for future operations on this
+     *                      Layer.
+     */
+    this.setChannelMask = function(layer, mask) {
+        scheduleTask(function __display_setChannelMask() {
+            layer.setChannelMask(mask);
+        });
+    };
+
+    /**
+     * Sets the miter limit for stroke operations using the miter join. This
+     * limit is the maximum ratio of the size of the miter join to the stroke
+     * width. If this ratio is exceeded, the miter will not be drawn for that
+     * joint of the path.
+     * 
+     * @param {Guacamole.Layer} layer The layer to modify.
+     * @param {Number} limit The miter limit for stroke operations using the
+     *                       miter join.
+     */
+    this.setMiterLimit = function(layer, limit) {
+        scheduleTask(function __display_setMiterLimit() {
+            layer.setMiterLimit(limit);
+        });
+    };
+
+    /**
+     * Removes the given layer container entirely, such that it is no longer
+     * contained within its parent layer, if any.
+     *
+     * @param {Guacamole.Display.VisibleLayer} layer
+     *     The layer being removed from its parent.
+     */
+    this.dispose = function dispose(layer) {
+        scheduleTask(function disposeLayer() {
+            layer.dispose();
+        });
+    };
+
+    /**
+     * Applies the given affine transform (defined with six values from the
+     * transform's matrix) to the given layer.
+     *
+     * @param {Guacamole.Display.VisibleLayer} layer
+     *     The layer being distorted.
+     *
+     * @param {Number} a
+     *     The first value in the affine transform's matrix.
+     *
+     * @param {Number} b
+     *     The second value in the affine transform's matrix.
+     *
+     * @param {Number} c
+     *     The third value in the affine transform's matrix.
+     *
+     * @param {Number} d
+     *     The fourth value in the affine transform's matrix.
+     *
+     * @param {Number} e
+     *     The fifth value in the affine transform's matrix.
+     *
+     * @param {Number} f
+     *     The sixth value in the affine transform's matrix.
+     */
+    this.distort = function distort(layer, a, b, c, d, e, f) {
+        scheduleTask(function distortLayer() {
+            layer.distort(a, b, c, d, e, f);
+        });
+    };
+
+    /**
+     * Moves the upper-left corner of the given layer to the given X and Y
+     * coordinate, sets the Z stacking order, and reparents the layer
+     * to the given parent layer.
+     *
+     * @param {Guacamole.Display.VisibleLayer} layer
+     *     The layer being moved.
+     *
+     * @param {Guacamole.Display.VisibleLayer} parent
+     *     The parent to set.
+     *
+     * @param {Number} x
+     *     The X coordinate to move to.
+     *
+     * @param {Number} y
+     *     The Y coordinate to move to.
+     *
+     * @param {Number} z
+     *     The Z coordinate to move to.
+     */
+    this.move = function move(layer, parent, x, y, z) {
+        scheduleTask(function moveLayer() {
+            layer.move(parent, x, y, z);
+        });
+    };
+
+    /**
+     * Sets the opacity of the given layer to the given value, where 255 is
+     * fully opaque and 0 is fully transparent.
+     *
+     * @param {Guacamole.Display.VisibleLayer} layer
+     *     The layer whose opacity should be set.
+     *
+     * @param {Number} alpha
+     *     The opacity to set.
+     */
+    this.shade = function shade(layer, alpha) {
+        scheduleTask(function shadeLayer() {
+            layer.shade(alpha);
+        });
+    };
+
+    /**
+     * Sets the scale of the client display element such that it renders at
+     * a relatively smaller or larger size, without affecting the true
+     * resolution of the display.
+     *
+     * @param {Number} scale The scale to resize to, where 1.0 is normal
+     *                       size (1:1 scale).
+     */
+    this.scale = function(scale) {
+
+        display.style.transform =
+        display.style.WebkitTransform =
+        display.style.MozTransform =
+        display.style.OTransform =
+        display.style.msTransform =
+
+            "scale(" + scale + "," + scale + ")";
+
+        displayScale = scale;
+
+        // Update bounds size
+        bounds.style.width = (displayWidth*displayScale) + "px";
+        bounds.style.height = (displayHeight*displayScale) + "px";
+
+    };
+
+    /**
+     * Returns the scale of the display.
+     *
+     * @return {Number} The scale of the display.
+     */
+    this.getScale = function() {
+        return displayScale;
+    };
+
+    /**
+     * Returns a canvas element containing the entire display, with all child
+     * layers composited within.
+     *
+     * @return {HTMLCanvasElement} A new canvas element containing a copy of
+     *                             the display.
+     */
+    this.flatten = function() {
+       
+        // Get destination canvas
+        var canvas = document.createElement("canvas");
+        canvas.width = default_layer.width;
+        canvas.height = default_layer.height;
+
+        var context = canvas.getContext("2d");
+
+        // Returns sorted array of children
+        function get_children(layer) {
+
+            // Build array of children
+            var children = [];
+            for (var index in layer.children)
+                children.push(layer.children[index]);
+
+            // Sort
+            children.sort(function children_comparator(a, b) {
+
+                // Compare based on Z order
+                var diff = a.z - b.z;
+                if (diff !== 0)
+                    return diff;
+
+                // If Z order identical, use document order
+                var a_element = a.getElement();
+                var b_element = b.getElement();
+                var position = b_element.compareDocumentPosition(a_element);
+
+                if (position &amp; Node.DOCUMENT_POSITION_PRECEDING) return -1;
+                if (position &amp; Node.DOCUMENT_POSITION_FOLLOWING) return  1;
+
+                // Otherwise, assume same
+                return 0;
+
+            });
+
+            // Done
+            return children;
+
+        }
+
+        // Draws the contents of the given layer at the given coordinates
+        function draw_layer(layer, x, y) {
+
+            // Draw layer
+            if (layer.width > 0 &amp;&amp; layer.height > 0) {
+
+                // Save and update alpha
+                var initial_alpha = context.globalAlpha;
+                context.globalAlpha *= layer.alpha / 255.0;
+
+                // Copy data
+                context.drawImage(layer.getCanvas(), x, y);
+
+                // Draw all children
+                var children = get_children(layer);
+                for (var i=0; i&lt;children.length; i++) {
+                    var child = children[i];
+                    draw_layer(child, x + child.x, y + child.y);
+                }
+
+                // Restore alpha
+                context.globalAlpha = initial_alpha;
+
+            }
+
+        }
+
+        // Draw default layer and all children
+        draw_layer(default_layer, 0, 0);
+
+        // Return new canvas copy
+        return canvas;
+        
+    };
+
+};
+
+/**
+ * Simple container for Guacamole.Layer, allowing layers to be easily
+ * repositioned and nested. This allows certain operations to be accelerated
+ * through DOM manipulation, rather than raster operations.
+ * 
+ * @constructor
+ * @augments Guacamole.Layer
+ * @param {Number} width The width of the Layer, in pixels. The canvas element
+ *                       backing this Layer will be given this width.
+ * @param {Number} height The height of the Layer, in pixels. The canvas element
+ *                        backing this Layer will be given this height.
+ */
+Guacamole.Display.VisibleLayer = function(width, height) {
+
+    Guacamole.Layer.apply(this, [width, height]);
+
+    /**
+     * Reference to this layer.
+     * @private
+     */
+    var layer = this;
+
+    /**
+     * Identifier which uniquely identifies this layer. This is COMPLETELY
+     * UNRELATED to the index of the underlying layer, which is specific
+     * to the Guacamole protocol, and not relevant at this level.
+     * 
+     * @private
+     * @type {Number}
+     */
+    this.__unique_id = Guacamole.Display.VisibleLayer.__next_id++;
+
+    /**
+     * The opacity of the layer container, where 255 is fully opaque and 0 is
+     * fully transparent.
+     */
+    this.alpha = 0xFF;
+
+    /**
+     * X coordinate of the upper-left corner of this layer container within
+     * its parent, in pixels.
+     * @type {Number}
+     */
+    this.x = 0;
+
+    /**
+     * Y coordinate of the upper-left corner of this layer container within
+     * its parent, in pixels.
+     * @type {Number}
+     */
+    this.y = 0;
+
+    /**
+     * Z stacking order of this layer relative to other sibling layers.
+     * @type {Number}
+     */
+    this.z = 0;
+
+    /**
+     * The affine transformation applied to this layer container. Each element
+     * corresponds to a value from the transformation matrix, with the first
+     * three values being the first row, and the last three values being the
+     * second row. There are six values total.
+     * 
+     * @type {Number[]}
+     */
+    this.matrix = [1, 0, 0, 1, 0, 0];
+
+    /**
+     * The parent layer container of this layer, if any.
+     * @type {Guacamole.Display.VisibleLayer}
+     */
+    this.parent = null;
+
+    /**
+     * Set of all children of this layer, indexed by layer index. This object
+     * will have one property per child.
+     */
+    this.children = {};
+
+    // Set layer position
+    var canvas = layer.getCanvas();
+    canvas.style.position = "absolute";
+    canvas.style.left = "0px";
+    canvas.style.top = "0px";
+
+    // Create div with given size
+    var div = document.createElement("div");
+    div.appendChild(canvas);
+    div.style.width = width + "px";
+    div.style.height = height + "px";
+    div.style.position = "absolute";
+    div.style.left = "0px";
+    div.style.top = "0px";
+    div.style.overflow = "hidden";
+
+    /**
+     * Superclass resize() function.
+     * @private
+     */
+    var __super_resize = this.resize;
+
+    this.resize = function(width, height) {
+
+        // Resize containing div
+        div.style.width = width + "px";
+        div.style.height = height + "px";
+
+        __super_resize(width, height);
+
+    };
+  
+    /**
+     * Returns the element containing the canvas and any other elements
+     * associated with this layer.
+     * @returns {Element} The element containing this layer's canvas.
+     */
+    this.getElement = function() {
+        return div;
+    };
+
+    /**
+     * The translation component of this layer's transform.
+     * @private
+     */
+    var translate = "translate(0px, 0px)"; // (0, 0)
+
+    /**
+     * The arbitrary matrix component of this layer's transform.
+     * @private
+     */
+    var matrix = "matrix(1, 0, 0, 1, 0, 0)"; // Identity
+
+    /**
+     * Moves the upper-left corner of this layer to the given X and Y
+     * coordinate.
+     * 
+     * @param {Number} x The X coordinate to move to.
+     * @param {Number} y The Y coordinate to move to.
+     */
+    this.translate = function(x, y) {
+
+        layer.x = x;
+        layer.y = y;
+
+        // Generate translation
+        translate = "translate("
+                        + x + "px,"
+                        + y + "px)";
+
+        // Set layer transform 
+        div.style.transform =
+        div.style.WebkitTransform =
+        div.style.MozTransform =
+        div.style.OTransform =
+        div.style.msTransform =
+
+            translate + " " + matrix;
+
+    };
+
+    /**
+     * Moves the upper-left corner of this VisibleLayer to the given X and Y
+     * coordinate, sets the Z stacking order, and reparents this VisibleLayer
+     * to the given VisibleLayer.
+     * 
+     * @param {Guacamole.Display.VisibleLayer} parent The parent to set.
+     * @param {Number} x The X coordinate to move to.
+     * @param {Number} y The Y coordinate to move to.
+     * @param {Number} z The Z coordinate to move to.
+     */
+    this.move = function(parent, x, y, z) {
+
+        // Set parent if necessary
+        if (layer.parent !== parent) {
+
+            // Maintain relationship
+            if (layer.parent)
+                delete layer.parent.children[layer.__unique_id];
+            layer.parent = parent;
+            parent.children[layer.__unique_id] = layer;
+
+            // Reparent element
+            var parent_element = parent.getElement();
+            parent_element.appendChild(div);
+
+        }
+
+        // Set location
+        layer.translate(x, y);
+        layer.z = z;
+        div.style.zIndex = z;
+
+    };
+
+    /**
+     * Sets the opacity of this layer to the given value, where 255 is fully
+     * opaque and 0 is fully transparent.
+     * 
+     * @param {Number} a The opacity to set.
+     */
+    this.shade = function(a) {
+        layer.alpha = a;
+        div.style.opacity = a/255.0;
+    };
+
+    /**
+     * Removes this layer container entirely, such that it is no longer
+     * contained within its parent layer, if any.
+     */
+    this.dispose = function() {
+
+        // Remove from parent container
+        if (layer.parent) {
+            delete layer.parent.children[layer.__unique_id];
+            layer.parent = null;
+        }
+
+        // Remove from parent element
+        if (div.parentNode)
+            div.parentNode.removeChild(div);
+        
+    };
+
+    /**
+     * Applies the given affine transform (defined with six values from the
+     * transform's matrix).
+     * 
+     * @param {Number} a The first value in the affine transform's matrix.
+     * @param {Number} b The second value in the affine transform's matrix.
+     * @param {Number} c The third value in the affine transform's matrix.
+     * @param {Number} d The fourth value in the affine transform's matrix.
+     * @param {Number} e The fifth value in the affine transform's matrix.
+     * @param {Number} f The sixth value in the affine transform's matrix.
+     */
+    this.distort = function(a, b, c, d, e, f) {
+
+        // Store matrix
+        layer.matrix = [a, b, c, d, e, f];
+
+        // Generate matrix transformation
+        matrix =
+
+            /* a c e
+             * b d f
+             * 0 0 1
+             */
+    
+            "matrix(" + a + "," + b + "," + c + "," + d + "," + e + "," + f + ")";
+
+        // Set layer transform 
+        div.style.transform =
+        div.style.WebkitTransform =
+        div.style.MozTransform =
+        div.style.OTransform =
+        div.style.msTransform =
+
+            translate + " " + matrix;
+
+    };
+
+};
+
+/**
+ * The next identifier to be assigned to the layer container. This identifier
+ * uniquely identifies each VisibleLayer, but is unrelated to the index of
+ * the layer, which exists at the protocol/client level only.
+ * 
+ * @private
+ * @type {Number}
+ */
+Guacamole.Display.VisibleLayer.__next_id = 0;
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.ArrayBufferReader.html b/doc/1.1.0/guacamole-common-js/Guacamole.ArrayBufferReader.html
new file mode 100644
index 0000000..792558e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.ArrayBufferReader.html
@@ -0,0 +1,446 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: ArrayBufferReader</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: ArrayBufferReader</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>ArrayBufferReader<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="ArrayBufferReader"><span class="type-signature"></span>new ArrayBufferReader<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A reader which automatically handles the given input stream, returning
+strictly received packets as array buffers. Note that this object will
+overwrite any installed event handlers on the given Guacamole.InputStream.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be read
+                                      from.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferReader.js.html">ArrayBufferReader.js</a>, <a href="ArrayBufferReader.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:ondata">ondata</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every blob of data received.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>buffer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">ArrayBuffer</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data packet received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferReader.js.html">ArrayBufferReader.js</a>, <a href="ArrayBufferReader.js.html#line68">line 68</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onend">onend</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once this stream is finished and no further data will be written.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferReader.js.html">ArrayBufferReader.js</a>, <a href="ArrayBufferReader.js.html#line74">line 74</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.ArrayBufferWriter.html b/doc/1.1.0/guacamole-common-js/Guacamole.ArrayBufferWriter.html
new file mode 100644
index 0000000..815c431
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.ArrayBufferWriter.html
@@ -0,0 +1,748 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: ArrayBufferWriter</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: ArrayBufferWriter</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>ArrayBufferWriter<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="ArrayBufferWriter"><span class="type-signature"></span>new ArrayBufferWriter<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A writer which automatically writes to the given output stream with arbitrary
+binary data, supplied as ArrayBuffers.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be written
+                                       to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferWriter.js.html">ArrayBufferWriter.js</a>, <a href="ArrayBufferWriter.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".DEFAULT_BLOB_LENGTH"><span class="type-signature">(static, constant) </span>DEFAULT_BLOB_LENGTH<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The default maximum blob length for new Guacamole.ArrayBufferWriter
+instances.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferWriter.js.html">ArrayBufferWriter.js</a>, <a href="ArrayBufferWriter.js.html#line123">line 123</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="blobLength"><span class="type-signature"></span>blobLength<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The maximum length of any blob sent by this Guacamole.ArrayBufferWriter,
+in bytes. Data sent via
+<a href="Guacamole.ArrayBufferWriter.html#sendData">sendData()</a> which exceeds
+this length will be split into multiple blobs. As the Guacamole protocol
+limits the maximum size of any instruction or instruction element to
+8192 bytes, and the contents of blobs will be base64-encoded, this value
+should only be increased with extreme caution.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-default">Default Value:</dt>
+    <dd class="tag-default"><ul class="dummy">
+            <li><a href="Guacamole.ArrayBufferWriter.html#.DEFAULT_BLOB_LENGTH">Guacamole.ArrayBufferWriter.DEFAULT_BLOB_LENGTH</a></li>
+        </ul></dd>
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferWriter.js.html">ArrayBufferWriter.js</a>, <a href="ArrayBufferWriter.js.html#line76">line 76</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendData"><span class="type-signature"></span>sendData<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends the given data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">ArrayBuffer</span>
+|
+
+<span class="param-type">TypedArray</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferWriter.js.html">ArrayBufferWriter.js</a>, <a href="ArrayBufferWriter.js.html#line83">line 83</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendEnd"><span class="type-signature"></span>sendEnd<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Signals that no further text will be sent, effectively closing the
+stream.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferWriter.js.html">ArrayBufferWriter.js</a>, <a href="ArrayBufferWriter.js.html#line103">line 103</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onack">onack</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired for received data, if acknowledged by the server.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The status of the operation.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferWriter.js.html">ArrayBufferWriter.js</a>, <a href="ArrayBufferWriter.js.html#line112">line 112</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.AudioContextFactory.html b/doc/1.1.0/guacamole-common-js/Guacamole.AudioContextFactory.html
new file mode 100644
index 0000000..1cf6c70
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.AudioContextFactory.html
@@ -0,0 +1,331 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Namespace: AudioContextFactory</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Namespace: AudioContextFactory</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>AudioContextFactory</h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+            <div class="description">Maintains a singleton instance of the Web Audio API AudioContext class,
+instantiating the AudioContext only in response to the first call to
+getAudioContext(), and only if no existing AudioContext instance has been
+provided via the singleton property. Subsequent calls to getAudioContext()
+will return the same instance.</div>
+        
+
+        
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioContextFactory.js.html">AudioContextFactory.js</a>, <a href="AudioContextFactory.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+        
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".singleton"><span class="type-signature">(static) </span>singleton<span class="type-signature"> :AudioContext</span></h4>
+
+
+
+
+<div class="description">
+    A singleton instance of a Web Audio API AudioContext object, or null if
+no instance has yes been created. This property may be manually set if
+you wish to supply your own AudioContext instance, but care must be
+taken to do so as early as possible. Assignments to this property will
+not retroactively affect the value returned by previous calls to
+getAudioContext().
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">AudioContext</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioContextFactory.js.html">AudioContextFactory.js</a>, <a href="AudioContextFactory.js.html#line43">line 43</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getAudioContext"><span class="type-signature">(static) </span>getAudioContext<span class="signature">()</span><span class="type-signature"> &rarr; {AudioContext}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a singleton instance of a Web Audio API AudioContext object.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioContextFactory.js.html">AudioContextFactory.js</a>, <a href="AudioContextFactory.js.html#line52">line 52</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A singleton instance of a Web Audio API AudioContext object, or null
+    if the Web Audio API is not supported.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">AudioContext</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.AudioPlayer.html b/doc/1.1.0/guacamole-common-js/Guacamole.AudioPlayer.html
new file mode 100644
index 0000000..f9fe205
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.AudioPlayer.html
@@ -0,0 +1,724 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: AudioPlayer</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: AudioPlayer</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>AudioPlayer<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="AudioPlayer"><span class="type-signature"></span>new AudioPlayer<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Abstract audio player which accepts, queues and plays back arbitrary audio
+data. It is up to implementations of this class to provide some means of
+handling a provided Guacamole.InputStream. Data received along the provided
+stream is to be played back immediately.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getInstance"><span class="type-signature">(static) </span>getInstance<span class="signature">(stream, mimetype)</span><span class="type-signature"> &rarr; {<a href="Guacamole.AudioPlayer.html">Guacamole.AudioPlayer</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns an instance of Guacamole.AudioPlayer providing support for the given
+audio format. If support for the given audio format is not available, null
+is returned.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole.InputStream to read audio data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the audio data in the provided stream.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line97">line 97</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A Guacamole.AudioPlayer instance supporting the given mimetype and
+    reading from the given stream, or null if support for the given mimetype
+    is absent.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.AudioPlayer.html">Guacamole.AudioPlayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getSupportedTypes"><span class="type-signature">(static) </span>getSupportedTypes<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;String>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a list of all mimetypes supported by any built-in
+Guacamole.AudioPlayer, in rough order of priority. Beware that only the core
+mimetypes themselves will be listed. Any mimetype parameters, even required
+ones, will not be included in the list. For example, "audio/L8" is a
+supported raw audio mimetype that is supported, but it is invalid without
+additional parameters. Something like "audio/L8;rate=44100" would be valid,
+however (see https://tools.ietf.org/html/rfc4856).
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line75">line 75</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A list of all mimetypes supported by any built-in Guacamole.AudioPlayer,
+    excluding any parameters.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;String></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".isSupportedType"><span class="type-signature">(static) </span>isSupportedType<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Determines whether the given mimetype is supported by any built-in
+implementation of Guacamole.AudioPlayer, and thus will be properly handled
+by Guacamole.AudioPlayer.getInstance().
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype to check.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line56">line 56</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given mimetype is supported by any built-in
+    Guacamole.AudioPlayer, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sync"><span class="type-signature"></span>sync<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Notifies this Guacamole.AudioPlayer that all audio up to the current
+point in time has been given via the underlying stream, and that any
+difference in time between queued audio data and the current time can be
+considered latency.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line38">line 38</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.AudioRecorder.html b/doc/1.1.0/guacamole-common-js/Guacamole.AudioRecorder.html
new file mode 100644
index 0000000..585de23
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.AudioRecorder.html
@@ -0,0 +1,818 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: AudioRecorder</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: AudioRecorder</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>AudioRecorder<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="AudioRecorder"><span class="type-signature"></span>new AudioRecorder<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Abstract audio recorder which streams arbitrary audio data to an underlying
+Guacamole.OutputStream. It is up to implementations of this class to provide
+some means of handling this Guacamole.OutputStream. Data produced by the
+recorder is to be sent along the provided stream immediately.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getInstance"><span class="type-signature">(static) </span>getInstance<span class="signature">(stream, mimetype)</span><span class="type-signature"> &rarr; {<a href="Guacamole.AudioRecorder.html">Guacamole.AudioRecorder</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns an instance of Guacamole.AudioRecorder providing support for the
+given audio format. If support for the given audio format is not available,
+null is returned.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole.OutputStream to send audio data through.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the audio data to be sent along the provided stream.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line108">line 108</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A Guacamole.AudioRecorder instance supporting the given mimetype and
+    writing to the given stream, or null if support for the given mimetype
+    is absent.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.AudioRecorder.html">Guacamole.AudioRecorder</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getSupportedTypes"><span class="type-signature">(static) </span>getSupportedTypes<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;String>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a list of all mimetypes supported by any built-in
+Guacamole.AudioRecorder, in rough order of priority. Beware that only the
+core mimetypes themselves will be listed. Any mimetype parameters, even
+required ones, will not be included in the list. For example, "audio/L8" is
+a supported raw audio mimetype that is supported, but it is invalid without
+additional parameters. Something like "audio/L8;rate=44100" would be valid,
+however (see https://tools.ietf.org/html/rfc4856).
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line86">line 86</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A list of all mimetypes supported by any built-in
+    Guacamole.AudioRecorder, excluding any parameters.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;String></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".isSupportedType"><span class="type-signature">(static) </span>isSupportedType<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Determines whether the given mimetype is supported by any built-in
+implementation of Guacamole.AudioRecorder, and thus will be properly handled
+by Guacamole.AudioRecorder.getInstance().
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype to check.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line67">line 67</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given mimetype is supported by any built-in
+    Guacamole.AudioRecorder, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onclose">onclose</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Callback which is invoked when the audio recording process has stopped
+and the underlying Guacamole stream has been closed normally. Audio will
+only resume recording if a new Guacamole.AudioRecorder is started. This
+Guacamole.AudioRecorder instance MAY NOT be reused.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Callback which is invoked when the audio recording process cannot
+continue due to an error, if it has started at all. The underlying
+Guacamole stream is automatically closed. Future attempts to record
+audio should not be made, and this Guacamole.AudioRecorder instance
+MAY NOT be reused.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line51">line 51</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.BlobReader.html b/doc/1.1.0/guacamole-common-js/Guacamole.BlobReader.html
new file mode 100644
index 0000000..96cfa6f
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.BlobReader.html
@@ -0,0 +1,690 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: BlobReader</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: BlobReader</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>BlobReader<span class="signature">(stream, mimetype)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="BlobReader"><span class="type-signature"></span>new BlobReader<span class="signature">(stream, mimetype)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A reader which automatically handles the given input stream, assembling all
+received blobs into a single blob by appending them to each other in order.
+Note that this object will overwrite any installed event handlers on the
+given Guacamole.InputStream.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be read
+                                      from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the blob being built.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobReader.js.html">BlobReader.js</a>, <a href="BlobReader.js.html#line33">line 33</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getBlob"><span class="type-signature"></span>getBlob<span class="signature">()</span><span class="type-signature"> &rarr; {Blob}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the contents of this Guacamole.BlobReader as a Blob.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobReader.js.html">BlobReader.js</a>, <a href="BlobReader.js.html#line110">line 110</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The contents of this Guacamole.BlobReader.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Blob</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getLength"><span class="type-signature"></span>getLength<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the current length of this Guacamole.InputStream, in bytes.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobReader.js.html">BlobReader.js</a>, <a href="BlobReader.js.html#line102">line 102</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The current length of this Guacamole.InputStream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onend">onend</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once this stream is finished and no further data will be written.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobReader.js.html">BlobReader.js</a>, <a href="BlobReader.js.html#line126">line 126</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onprogress">onprogress</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every blob of data received.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>length</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The number of bytes received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobReader.js.html">BlobReader.js</a>, <a href="BlobReader.js.html#line120">line 120</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.BlobWriter.html b/doc/1.1.0/guacamole-common-js/Guacamole.BlobWriter.html
new file mode 100644
index 0000000..5510318
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.BlobWriter.html
@@ -0,0 +1,1063 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: BlobWriter</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: BlobWriter</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>BlobWriter<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="BlobWriter"><span class="type-signature"></span>new BlobWriter<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A writer which automatically writes to the given output stream with the
+contents of provided Blob objects.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be written to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendBlob"><span class="type-signature"></span>sendBlob<span class="signature">(blob)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends the contents of the given blob over the underlying stream.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>blob</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Blob</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blob to send.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line108">line 108</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendEnd"><span class="type-signature"></span>sendEnd<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Signals that no further text will be sent, effectively closing the
+stream.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line191">line 191</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onack">onack</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired for received data, if acknowledged by the server.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The status of the operation.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line202">line 202</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oncomplete">oncomplete</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when a blob passed to
+<a href="Guacamole.BlobWriter.html#sendBlob">sendBlob()</a> has finished being
+sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>blob</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Blob</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blob that was sent.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line243">line 243</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when an error occurs reading a blob passed to
+<a href="Guacamole.BlobWriter.html#sendBlob">sendBlob()</a>. The transfer for the
+the given blob will cease, but the stream will remain open.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>blob</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Blob</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blob that was being read when the error occurred.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>offset</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The offset of the failed read attempt within the blob, in bytes.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>error</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">DOMError</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The error that occurred.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line219">line 219</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onprogress">onprogress</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired for each successfully-read chunk of data as a blob is being sent
+via <a href="Guacamole.BlobWriter.html#sendBlob">sendBlob()</a>.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>blob</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Blob</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blob that is being read.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>offset</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The offset of the read that just succeeded.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line232">line 232</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.ChainedTunnel.html b/doc/1.1.0/guacamole-common-js/Guacamole.ChainedTunnel.html
new file mode 100644
index 0000000..2b57576
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.ChainedTunnel.html
@@ -0,0 +1,1517 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: ChainedTunnel</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: ChainedTunnel</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>ChainedTunnel<span class="signature">(&hellip;tunnelChain)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="ChainedTunnel"><span class="type-signature"></span>new ChainedTunnel<span class="signature">(&hellip;tunnelChain)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Guacamole Tunnel which cycles between all specified tunnels until
+no tunnels are left. Another tunnel is used if an error occurs but
+no instructions have been received. If an instruction has been
+received, or no tunnels remain, the error is passed directly out
+through the onerror handler (if defined).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>tunnelChain</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                    &lt;repeatable><br>
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The tunnels to use, in order of priority.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line1068">line 1068</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="receiveTimeout"><span class="type-signature"></span>receiveTimeout<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The maximum amount of time to wait for data to be received, in
+milliseconds. If data is not received within this amount of time,
+the tunnel is closed with an error. The default value is 15000.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#receiveTimeout">Guacamole.Tunnel#receiveTimeout</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line101">line 101</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="state"><span class="type-signature"></span>state<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current state of this tunnel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#state">Guacamole.Tunnel#state</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line92">line 92</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="unstableThreshold"><span class="type-signature"></span>unstableThreshold<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The amount of time to wait for data to be received before considering
+the connection to be unstable, in milliseconds. If data is not received
+within this amount of time, the tunnel status is updated to warn that
+the connection appears unresponsive and may close. The default value is
+1500.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#unstableThreshold">Guacamole.Tunnel#unstableThreshold</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line112">line 112</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="uuid"><span class="type-signature"></span>uuid<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The UUID uniquely identifying this tunnel. If not yet known, this will
+be null.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#uuid">Guacamole.Tunnel#uuid</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line120">line 120</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connect to the tunnel with the given optional data. This data is
+typically used for authentication. The format of data accepted is
+up to the tunnel implementation.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send to the tunnel when connecting.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#connect">Guacamole.Tunnel#connect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Disconnect from the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#disconnect">Guacamole.Tunnel#disconnect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line45">line 45</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isConnected"><span class="type-signature"></span>isConnected<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether this tunnel is currently connected.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#isConnected">Guacamole.Tunnel#isConnected</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line82">line 82</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if this tunnel is currently connected, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendMessage"><span class="type-signature"></span>sendMessage<span class="signature">(&hellip;elements)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Send the given message through the tunnel to the service on the other
+side. All messages are guaranteed to be received in the order sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>elements</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                    &lt;repeatable><br>
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The elements of the message to send to the service on the other side
+    of the tunnel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#sendMessage">Guacamole.Tunnel#sendMessage</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line55">line 55</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever an error is encountered by the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A status object which describes the
+                                 error.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onerror">Guacamole.Tunnel#event:onerror</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line129">line 129</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oninstruction">oninstruction</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every complete Guacamole instruction received, in order.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>opcode</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole instruction opcode.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parameters</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parameters provided for the instruction,
+                          if any.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:oninstruction">Guacamole.Tunnel#event:oninstruction</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line147">line 147</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onstatechange">onstatechange</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the state of the tunnel changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new state of the client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onstatechange">Guacamole.Tunnel#event:onstatechange</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line137">line 137</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Client.html b/doc/1.1.0/guacamole-common-js/Guacamole.Client.html
new file mode 100644
index 0000000..f7d0b75
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Client.html
@@ -0,0 +1,5185 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Client</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Client</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Client<span class="signature">(tunnel)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Client"><span class="type-signature"></span>new Client<span class="signature">(tunnel)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Guacamole protocol client. Given a <a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a>,
+automatically handles incoming and outgoing Guacamole instructions via the
+provided tunnel, updating its display using one or more canvas elements.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>tunnel</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The tunnel to use to send and receive
+                                 Guacamole instructions.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connects the underlying tunnel of this Guacamole.Client, passing the
+given arbitrary data to the tunnel during the connection process.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Arbitrary connection data to be sent to the underlying
+            tunnel during the connection process.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line1554">line 1554</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+<h5>Throws:</h5>
+
+        
+
+<dl>
+    <dt>
+        <div class="param-desc">
+        If an error occurs during connection.
+        </div>
+    </dt>
+    <dd></dd>
+    <dt>
+        <dl>
+            <dt>
+                Type
+            </dt>
+            <dd>
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            </dd>
+        </dl>
+    </dt>
+    <dd></dd>
+</dl>
+
+
+    
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createArgumentValueStream"><span class="type-signature"></span>createArgumentValueStream<span class="signature">(mimetype, name)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Opens a new argument value stream for writing, having the given
+parameter name and mimetype, requesting that the connection parameter
+with the given name be updated to the value described by the contents
+of the following stream. The instruction necessary to create this stream
+will automatically be sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data being sent.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the connection parameter to attempt to update.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line466">line 466</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The created argument value stream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createAudioStream"><span class="type-signature"></span>createAudioStream<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Opens a new audio stream for writing, where audio data having the give
+mimetype will be sent along the returned stream. The instruction
+necessary to create this stream will automatically be sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the audio data that will be sent along the returned
+    stream.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line389">line 389</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The created audio stream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createClipboardStream"><span class="type-signature"></span>createClipboardStream<span class="signature">(mimetype, name)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Opens a new clipboard object for writing, having the given mimetype. The
+instruction necessary to create this stream will automatically be sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data being sent.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the pipe.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line441">line 441</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The created file stream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createFileStream"><span class="type-signature"></span>createFileStream<span class="signature">(mimetype, filename)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Opens a new file for writing, having the given index, mimetype and
+filename. The instruction necessary to create this stream will
+automatically be sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the file being sent.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>filename</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The filename of the file being sent.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line407">line 407</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The created file stream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createObjectOutputStream"><span class="type-signature"></span>createObjectOutputStream<span class="signature">(index, mimetype, name)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Creates a new output stream associated with the given object and having
+the given mimetype and name. The legality of a mimetype and name is
+dictated by the object itself. The instruction necessary to create this
+stream will automatically be sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of the object for which the output stream is being
+    created.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data which will be sent to the output stream.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The defined name of an output stream within the given object.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line495">line 495</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    An output stream which will write blobs to the named output stream
+    of the given object.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createOutputStream"><span class="type-signature"></span>createOutputStream<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Allocates an available stream index and creates a new
+Guacamole.OutputStream using that index, associating the resulting
+stream with this Guacamole.Client. Note that this stream will not yet
+exist as far as the other end of the Guacamole connection is concerned.
+Streams exist within the Guacamole protocol only when referenced by an
+instruction which creates the stream, such as a "clipboard", "file", or
+"pipe" instruction.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line366">line 366</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A new Guacamole.OutputStream with a newly-allocated index and
+    associated with this Guacamole.Client.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createPipeStream"><span class="type-signature"></span>createPipeStream<span class="signature">(mimetype, name)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Opens a new pipe for writing, having the given name and mimetype. The
+instruction necessary to create this stream will automatically be sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data being sent.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the pipe.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line424">line 424</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The created file stream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends a disconnect instruction to the server and closes the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line1525">line 1525</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="endStream"><span class="type-signature"></span>endStream<span class="signature">(index)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Marks a currently-open stream as complete. The other end of the
+Guacamole connection will be notified via an "end" instruction that the
+stream is closed, and the index will be made available for reuse in
+future streams.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of the stream to end.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line566">line 566</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="exportState"><span class="type-signature"></span>exportState<span class="signature">(callback)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Produces an opaque representation of Guacamole.Client state which can be
+later imported through a call to importState(). This object is
+effectively an independent, compressed snapshot of protocol and display
+state. Invoking this function implicitly flushes the display.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>callback</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Callback which should be invoked once the state object is ready. The
+    state object will be passed to the callback as the sole parameter.
+    This callback may be invoked immediately, or later as the display
+    finishes rendering and becomes ready.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line147">line 147</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getDisplay"><span class="type-signature"></span>getDisplay<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.Display.html">Guacamole.Display</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the underlying display of this Guacamole.Client. The display
+contains an Element which can be added to the DOM, causing the
+display to become visible.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line286">line 286</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The underlying display of this
+                            Guacamole.Client.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Display.html">Guacamole.Display</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="importState"><span class="type-signature"></span>importState<span class="signature">(state, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Restores Guacamole.Client protocol and display state based on an opaque
+object from a prior call to exportState(). The Guacamole.Client instance
+used to export that state need not be the same as this instance.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">An opaque representation of Guacamole.Client state from a prior call
+    to exportState().</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>callback</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The function to invoke when state has finished being imported. This
+    may happen immediately, or later as images within the provided state
+    object are loaded.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line219">line 219</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="requestObjectInputStream"><span class="type-signature"></span>requestObjectInputStream<span class="signature">(index, name)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Requests read access to the input stream having the given name. If
+successful, a new input stream will be created.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of the object from which the input stream is being
+    requested.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the input stream to request.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line515">line 515</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendAck"><span class="type-signature"></span>sendAck<span class="signature">(index, message, code)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Acknowledge receipt of a blob on the stream with the given index.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of the stream associated with the
+                      received blob.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>message</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A human-readable message describing the error
+                        or status.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>code</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The error code, if any, or 0 for success.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line533">line 533</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendBlob"><span class="type-signature"></span>sendBlob<span class="signature">(index, data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Given the index of a file, writes a blob of data to that file.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of the file to write to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Base64-encoded data to write to the file.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line548">line 548</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendKeyEvent"><span class="type-signature"></span>sendKeyEvent<span class="signature">(pressed, keysym)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends a key event having the given properties as if the user
+pressed or released a key.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>pressed</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the key is pressed (true) or released
+                         (false).</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key being pressed or released.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line314">line 314</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendMouseState"><span class="type-signature"></span>sendMouseState<span class="signature">(mouseState)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends a mouse event having the properties provided by the given mouse
+state.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mouseState</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The state of the mouse to send
+                                          in the mouse event.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line329">line 329</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendSize"><span class="type-signature"></span>sendSize<span class="signature">(width, height)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends the current size of the screen.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>width</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the screen.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>height</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the screen.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line296">line 296</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~getLayerIndex"><span class="type-signature">(inner) </span>getLayerIndex<span class="signature">(layer)</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the index passed to getLayer() when the given layer was created.
+Positive indices refer to visible layers, an index of zero refers to the
+default layer, and negative indices refer to buffers.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+|
+
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer whose index should be determined.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line775">line 775</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The index of the given layer, or null if no such layer is associated
+    with this client.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onargv">onargv</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when the current value of a connection parameter is being exposed
+by the server.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that will receive connection parameter data from the
+    server.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data which will be received.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the connection parameter whose value is being exposed.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line667">line 667</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onaudio">onaudio</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when a audio stream is created. The stream provided to this event
+handler will contain its own event handlers for received data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that will receive audio data from the server.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the audio data which will be received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line626">line 626</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    An object which implements the Guacamole.AudioPlayer interface and
+    has been initialied to play the data in the provided stream, or null
+    if the built-in audio players of the Guacamole client should be
+    used.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.AudioPlayer.html">Guacamole.AudioPlayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onclipboard">onclipboard</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when the clipboard of the remote client is changing.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that will receive
+                                      clipboard data from the server.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data which will be received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line677">line 677</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when an error is reported by the remote client, and the connection
+is being closed.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A status object which describes the
+                                 error.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line607">line 607</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onfile">onfile</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when a file stream is created. The stream provided to this event
+handler will contain its own event handlers for received data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that will receive data
+                                      from the server.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the file received.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>filename</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the file received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line689">line 689</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onfilesystem">onfilesystem</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when a filesystem object is created. The object provided to this
+event handler will contain its own event handlers and functions for
+requesting and handling data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>object</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Object.html">Guacamole.Object</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The created filesystem object.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the filesystem.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line703">line 703</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onname">onname</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when the remote client sends a name update.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new name of this client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line597">line 597</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onpipe">onpipe</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when a pipe stream is created. The stream provided to this event
+handler will contain its own event handlers for received data;
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that will receive data
+                                      from the server.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data which will be received.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the pipe.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line715">line 715</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onstatechange">onstatechange</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the state of this Guacamole.Client changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new state of the client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line589">line 589</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onsync">onsync</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever a sync instruction is received from the server, indicating
+that the server is finished processing any input from the client and
+has sent any results.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>timestamp</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The timestamp associated with the sync
+                          instruction.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line726">line 726</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onvideo">onvideo</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when a video stream is created. The stream provided to this event
+handler will contain its own event handlers for received data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that will receive video data from the server.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination layer on which the received video data should be
+    played. It is the responsibility of the Guacamole.VideoPlayer
+    implementation to play the received data within this layer.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the video data which will be received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line650">line 650</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    An object which implements the Guacamole.VideoPlayer interface and
+    has been initialied to play the data in the provided stream, or null
+    if the built-in video players of the Guacamole client should be
+    used.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.VideoPlayer.html">Guacamole.VideoPlayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.DataURIReader.html b/doc/1.1.0/guacamole-common-js/Guacamole.DataURIReader.html
new file mode 100644
index 0000000..c6ec4d0
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.DataURIReader.html
@@ -0,0 +1,425 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: DataURIReader</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: DataURIReader</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>DataURIReader<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="DataURIReader"><span class="type-signature"></span>new DataURIReader<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A reader which automatically handles the given input stream, returning
+received blobs as a single data URI built over the course of the stream.
+Note that this object will overwrite any installed event handlers on the
+given Guacamole.InputStream.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be read from.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="DataURIReader.js.html">DataURIReader.js</a>, <a href="DataURIReader.js.html#line32">line 32</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getURI"><span class="type-signature"></span>getURI<span class="signature">()</span><span class="type-signature"> &rarr; {String}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the data URI of all data received through the underlying stream
+thus far.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="DataURIReader.js.html">DataURIReader.js</a>, <a href="DataURIReader.js.html#line73">line 73</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The data URI of all data received through the underlying stream thus
+    far.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">String</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onend">onend</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once this stream is finished and no further data will be written.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="DataURIReader.js.html">DataURIReader.js</a>, <a href="DataURIReader.js.html#line82">line 82</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Display.VisibleLayer.html b/doc/1.1.0/guacamole-common-js/Guacamole.Display.VisibleLayer.html
new file mode 100644
index 0000000..fef2278
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Display.VisibleLayer.html
@@ -0,0 +1,6590 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: VisibleLayer</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: VisibleLayer</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.Display.html">.Display</a>.</span>VisibleLayer<span class="signature">(width, height)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="VisibleLayer"><span class="type-signature"></span>new VisibleLayer<span class="signature">(width, height)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Simple container for Guacamole.Layer, allowing layers to be easily
+repositioned and nested. This allows certain operations to be accelerated
+through DOM manipulation, rather than raster operations.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>width</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the Layer, in pixels. The canvas element
+                      backing this Layer will be given this width.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>height</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the Layer, in pixels. The canvas element
+                       backing this Layer will be given this height.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1223">line 1223</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.Layer.html">Guacamole.Layer</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="alpha"><span class="type-signature"></span>alpha<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The opacity of the layer container, where 255 is fully opaque and 0 is
+fully transparent.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1247">line 1247</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="autosize"><span class="type-signature"></span>autosize<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Set to true if this Layer should resize itself to accomodate the
+dimensions of any drawing operation, and false (the default) otherwise.
+
+Note that setting this property takes effect immediately, and thus may
+take effect on operations that were started in the past but have not
+yet completed. If you wish the setting of this flag to only modify
+future operations, you will need to make the setting of this flag an
+operation with sync().
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#autosize">Guacamole.Layer#autosize</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-default">Default Value:</dt>
+    <dd class="tag-default"><ul class="dummy">
+            <li>false</li>
+        </ul></dd>
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line255">line 255</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+    <h5>Example</h5>
+    
+    <pre class="prettyprint"><code>// Set autosize to true for all future operations
+layer.sync(function() {
+    layer.autosize = true;
+});</code></pre>
+
+
+
+        
+            
+<h4 class="name" id="children"><span class="type-signature"></span>children<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Set of all children of this layer, indexed by layer index. This object
+will have one property per child.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1289">line 1289</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="height"><span class="type-signature"></span>height<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current height of this layer.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#height">Guacamole.Layer#height</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line267">line 267</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="matrix"><span class="type-signature"></span>matrix<span class="type-signature"> :Array.&lt;Number></span></h4>
+
+
+
+
+<div class="description">
+    The affine transformation applied to this layer container. Each element
+corresponds to a value from the transformation matrix, with the first
+three values being the first row, and the last three values being the
+second row. There are six values total.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Array.&lt;Number></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1277">line 1277</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="parent"><span class="type-signature"></span>parent<span class="type-signature"> :<a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span></h4>
+
+
+
+
+<div class="description">
+    The parent layer container of this layer, if any.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1283">line 1283</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="width"><span class="type-signature"></span>width<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current width of this layer.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#width">Guacamole.Layer#width</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line261">line 261</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="x"><span class="type-signature"></span>x<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    X coordinate of the upper-left corner of this layer container within
+its parent, in pixels.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1254">line 1254</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="y"><span class="type-signature"></span>y<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    Y coordinate of the upper-left corner of this layer container within
+its parent, in pixels.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1261">line 1261</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="z"><span class="type-signature"></span>z<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    Z stacking order of this layer relative to other sibling layers.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1267">line 1267</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="arc"><span class="type-signature"></span>arc<span class="signature">(x, y, radius, startAngle, endAngle, negative)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified arc to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the center of the circle which
+                  will contain the arc.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the center of the circle which
+                  will contain the arc.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>radius</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The radius of the circle.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>startAngle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The starting angle of the arc, in radians.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>endAngle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The ending angle of the arc, in radians.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>negative</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the arc should be drawn in order of
+                          decreasing angle.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#arc">Guacamole.Layer#arc</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line552">line 552</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="clip"><span class="type-signature"></span>clip<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Clip all future drawing operations by the current path. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as fillColor()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#clip">Guacamole.Layer#clip</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line626">line 626</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="close"><span class="type-signature"></span>close<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Closes the current path by connecting the end point with the start
+point (if any) with a straight line.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#close">Guacamole.Layer#close</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line592">line 592</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="copy"><span class="type-signature"></span>copy<span class="signature">(srcLayer, srcx, srcy, srcw, srch, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Copy a rectangle of image data from one Layer to this Layer. This
+operation will copy exactly the image data that will be drawn once all
+operations of the source Layer that were pending at the time this
+function was called are complete. This operation will not alter the
+size of the source Layer even if its autosize property is set to true.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#copy">Guacamole.Layer#copy</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line478">line 478</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="curveTo"><span class="type-signature"></span>curveTo<span class="signature">(cp1x, cp1y, cp2x, cp2y, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Starts a new path at the specified point.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>cp1x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the first control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp1y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the first control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp2x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the second control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp2y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the second control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the endpoint of the curve.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the endpoint of the curve.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#curveTo">Guacamole.Layer#curveTo</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line575">line 575</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="dispose"><span class="type-signature"></span>dispose<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Removes this layer container entirely, such that it is no longer
+contained within its parent layer, if any.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1421">line 1421</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="distort"><span class="type-signature"></span>distort<span class="signature">(a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Applies the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1446">line 1446</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="drawImage"><span class="type-signature"></span>drawImage<span class="signature">(x, y, image)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Draws the specified image at the given coordinates. The image specified
+must already be loaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>image</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Image</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The image to draw. Note that this is an Image
+                     object - not a URL.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#drawImage">Guacamole.Layer#drawImage</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line327">line 327</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fillColor"><span class="type-signature"></span>fillColor<span class="signature">(r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fills the current path with the specified color. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of the color to fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#fillColor">Guacamole.Layer#fillColor</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line678">line 678</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fillLayer"><span class="type-signature"></span>fillLayer<span class="signature">(srcLayer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fills the current path with the image within the specified layer. The
+image data will be tiled infinitely within the stroke. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to use as a repeating pattern
+                                  within the fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#fillLayer">Guacamole.Layer#fillLayer</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line733">line 733</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getCanvas"><span class="type-signature"></span>getCanvas<span class="signature">()</span><span class="type-signature"> &rarr; {HTMLCanvasElement}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the canvas element backing this Layer. Note that the dimensions
+of the canvas may not exactly match those of the Layer, as resizing a
+canvas while maintaining its state is an expensive operation.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#getCanvas">Guacamole.Layer#getCanvas</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line277">line 277</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The canvas element backing this Layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">HTMLCanvasElement</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getElement"><span class="type-signature"></span>getElement<span class="signature">()</span><span class="type-signature"> &rarr; {Element}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the element containing the canvas and any other elements
+associated with this layer.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1328">line 1328</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The element containing this layer's canvas.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Element</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="lineTo"><span class="type-signature"></span>lineTo<span class="signature">(x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified line to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the endpoint of the line to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the endpoint of the line to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#lineTo">Guacamole.Layer#lineTo</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line526">line 526</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="move"><span class="type-signature"></span>move<span class="signature">(parent, x, y, z)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Moves the upper-left corner of this VisibleLayer to the given X and Y
+coordinate, sets the Z stacking order, and reparents this VisibleLayer
+to the given VisibleLayer.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>parent</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parent to set.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate to move to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate to move to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>z</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Z coordinate to move to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1382">line 1382</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="moveTo"><span class="type-signature"></span>moveTo<span class="signature">(x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Starts a new path at the specified point.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the point to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the point to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#moveTo">Guacamole.Layer#moveTo</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line507">line 507</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="pop"><span class="type-signature"></span>pop<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Pop layer state off stack.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#pop">Guacamole.Layer#pop</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line762">line 762</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="push"><span class="type-signature"></span>push<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Push current layer state onto stack.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#push">Guacamole.Layer#push</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line751">line 751</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="put"><span class="type-signature"></span>put<span class="signature">(srcLayer, srcx, srcy, srcw, srch, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Put a rectangle of image data from one Layer to this Layer directly
+without performing any alpha blending. Simply copy the data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#put">Guacamole.Layer#put</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line431">line 431</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="rect"><span class="type-signature"></span>rect<span class="signature">(x, y, w, h)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified rectangle to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                  rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                  rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>w</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>h</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#rect">Guacamole.Layer#rect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line607">line 607</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="reset"><span class="type-signature"></span>reset<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Reset the layer, clearing the stack, the current path, and any transform
+matrix.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#reset">Guacamole.Layer#reset</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line776">line 776</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="resize"><span class="type-signature"></span>resize<span class="signature">(newWidth, newHeight)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Changes the size of this Layer to the given width and height. Resizing
+is only attempted if the new size provided is actually different from
+the current size.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>newWidth</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new width to assign to this Layer.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>newHeight</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new height to assign to this Layer.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#resize">Guacamole.Layer#resize</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line313">line 313</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setChannelMask"><span class="type-signature"></span>setChannelMask<span class="signature">(mask)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the channel mask for future operations on this Layer.
+
+The channel mask is a Guacamole-specific compositing operation identifier
+with a single bit representing each of four channels (in order): source
+image where destination transparent, source where destination opaque,
+destination where source transparent, and destination where source
+opaque.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mask</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The channel mask for future operations on this
+                     Layer.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#setChannelMask">Guacamole.Layer#setChannelMask</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line844">line 844</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setMiterLimit"><span class="type-signature"></span>setMiterLimit<span class="signature">(limit)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the miter limit for stroke operations using the miter join. This
+limit is the maximum ratio of the size of the miter join to the stroke
+width. If this ratio is exceeded, the miter will not be drawn for that
+joint of the path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>limit</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The miter limit for stroke operations using the
+                      miter join.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#setMiterLimit">Guacamole.Layer#setMiterLimit</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line857">line 857</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setTransform"><span class="type-signature"></span>setTransform<span class="signature">(a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#setTransform">Guacamole.Layer#setTransform</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line805">line 805</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="shade"><span class="type-signature"></span>shade<span class="signature">(a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the opacity of this layer to the given value, where 255 is fully
+opaque and 0 is fully transparent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The opacity to set.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1412">line 1412</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="strokeColor"><span class="type-signature"></span>strokeColor<span class="signature">(cap, join, thickness, r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Stroke the current path with the specified color. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>cap</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line cap style. Can be "round", "square",
+                    or "butt".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>join</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line join style. Can be "round", "bevel",
+                     or "miter".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>thickness</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line thickness in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of the color to fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#strokeColor">Guacamole.Layer#strokeColor</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line652">line 652</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="strokeLayer"><span class="type-signature"></span>strokeLayer<span class="signature">(cap, join, thickness, srcLayer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Stroke the current path with the image within the specified layer. The
+image data will be tiled infinitely within the stroke. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>cap</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line cap style. Can be "round", "square",
+                    or "butt".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>join</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line join style. Can be "round", "bevel",
+                     or "miter".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>thickness</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line thickness in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to use as a repeating pattern
+                                  within the stroke.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#strokeLayer">Guacamole.Layer#strokeLayer</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line705">line 705</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="toCanvas"><span class="type-signature"></span>toCanvas<span class="signature">()</span><span class="type-signature"> &rarr; {HTMLCanvasElement}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a new canvas element containing the same image as this Layer.
+Unlike getCanvas(), the canvas element returned is guaranteed to have
+the exact same dimensions as the Layer.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#toCanvas">Guacamole.Layer#toCanvas</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line290">line 290</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A new canvas element containing a copy of the image content this
+    Layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">HTMLCanvasElement</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="transfer"><span class="type-signature"></span>transfer<span class="signature">(srcLayer, srcx, srcy, srcw, srch, x, y, transferFunction)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Transfer a rectangle of image data from one Layer to this Layer using the
+specified transfer function.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>transferFunction</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The transfer function to use to
+                                   transfer data from source to
+                                   destination.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#transfer">Guacamole.Layer#transfer</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line354">line 354</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="transform"><span class="type-signature"></span>transform<span class="signature">(a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Applies the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#transform">Guacamole.Layer#transform</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line824">line 824</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="translate"><span class="type-signature"></span>translate<span class="signature">(x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Moves the upper-left corner of this layer to the given X and Y
+coordinate.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate to move to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate to move to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1351">line 1351</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Display.html b/doc/1.1.0/guacamole-common-js/Guacamole.Display.html
new file mode 100644
index 0000000..014a239
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Display.html
@@ -0,0 +1,9056 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Display</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Display</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Display<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Display"><span class="type-signature"></span>new Display<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    The Guacamole display. The display does not deal with the Guacamole
+protocol, and instead implements a set of graphical operations which
+embody the set of operations present in the protocol. The order operations
+are executed is guaranteed to be in the same order as their corresponding
+functions are called.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Classes</h3>
+
+        <dl>
+            <dt><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="cursorHotspotX"><span class="type-signature"></span>cursorHotspotX<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The X coordinate of the hotspot of the mouse cursor. The hotspot is
+the relative location within the image of the mouse cursor at which
+each click occurs.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line84">line 84</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="cursorHotspotY"><span class="type-signature"></span>cursorHotspotY<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The Y coordinate of the hotspot of the mouse cursor. The hotspot is
+the relative location within the image of the mouse cursor at which
+each click occurs.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line93">line 93</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="cursorX"><span class="type-signature"></span>cursorX<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current X coordinate of the local mouse cursor. This is not
+necessarily the location of the actual mouse - it refers only to
+the location of the cursor image within the Guacamole display, as
+last set by moveCursor().
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line103">line 103</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="cursorY"><span class="type-signature"></span>cursorY<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current X coordinate of the local mouse cursor. This is not
+necessarily the location of the actual mouse - it refers only to
+the location of the cursor image within the Guacamole display, as
+last set by moveCursor().
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line113">line 113</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="arc"><span class="type-signature"></span>arc<span class="signature">(layer, x, y, radius, startAngle, endAngle, negative)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified arc to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the center of the circle which
+                  will contain the arc.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the center of the circle which
+                  will contain the arc.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>radius</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The radius of the circle.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>startAngle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The starting angle of the arc, in radians.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>endAngle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The ending angle of the arc, in radians.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>negative</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the arc should be drawn in order of
+                          decreasing angle.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line752">line 752</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="clip"><span class="type-signature"></span>clip<span class="signature">(layer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Clip all future drawing operations by the current path. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as fillColor()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to affect.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line812">line 812</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="close"><span class="type-signature"></span>close<span class="signature">(layer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Closes the current path by connecting the end point with the start
+point (if any) with a straight line.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line781">line 781</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="copy"><span class="type-signature"></span>copy<span class="signature">(srcLayer, srcx, srcy, srcw, srch, dstLayer, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Copy a rectangle of image data from one Layer to this Layer. This
+operation will copy exactly the image data that will be drawn once all
+operations of the source Layer that were pending at the time this
+function was called are complete. This operation will not alter the
+size of the source Layer even if its autosize property is set to true.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>dstLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line706">line 706</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createBuffer"><span class="type-signature"></span>createBuffer<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.Layer.html">Guacamole.Layer</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Creates a new buffer. Buffers are invisible, off-screen surfaces. They
+are implemented in the same manner as layers, but do not provide the
+same nesting semantics.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line364">line 364</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The newly-created buffer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createLayer"><span class="type-signature"></span>createLayer<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Creates a new layer. The new layer will be a direct child of the default
+layer, but can be moved to be a child of any other layer. Layers returned
+by this function are visible.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line351">line 351</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The newly-created layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="curveTo"><span class="type-signature"></span>curveTo<span class="signature">(layer, cp1x, cp1y, cp2x, cp2y, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Starts a new path at the specified point.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp1x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the first control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp1y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the first control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp2x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the second control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp2y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the second control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the endpoint of the curve.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the endpoint of the curve.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line769">line 769</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="dispose"><span class="type-signature"></span>dispose<span class="signature">(layer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Removes the given layer container entirely, such that it is no longer
+contained within its parent layer, if any.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer being removed from its parent.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1010">line 1010</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="distort"><span class="type-signature"></span>distort<span class="signature">(layer, a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Applies the given affine transform (defined with six values from the
+transform's matrix) to the given layer.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer being distorted.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1041">line 1041</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="draw"><span class="type-signature"></span>draw<span class="signature">(layer, x, y, url)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Draws the image at the specified URL at the given coordinates. The image
+will be loaded automatically, and this and any future operations will
+wait for the image to finish loading.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>url</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The URL of the image to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line579">line 579</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="drawBlob"><span class="type-signature"></span>drawBlob<span class="signature">(layer, x, y, blob)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Draws the image contained within the specified Blob at the given
+coordinates. The Blob specified must already be populated with image
+data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>blob</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Blob</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Blob containing the image data to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line544">line 544</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="drawImage"><span class="type-signature"></span>drawImage<span class="signature">(layer, x, y, image)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Draws the specified image at the given coordinates. The image specified
+must already be loaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>image</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Image</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The image to draw. Note that this is an Image
+                     object - not a URL.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line521">line 521</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fillColor"><span class="type-signature"></span>fillColor<span class="signature">(layer, r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fills the current path with the specified color. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of the color to fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line853">line 853</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fillLayer"><span class="type-signature"></span>fillLayer<span class="signature">(layer, srcLayer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fills the current path with the image within the specified layer. The
+image data will be tiled infinitely within the stroke. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to use as a repeating pattern
+                                  within the fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line892">line 892</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="flatten"><span class="type-signature"></span>flatten<span class="signature">()</span><span class="type-signature"> &rarr; {HTMLCanvasElement}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a canvas element containing the entire display, with all child
+layers composited within.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1131">line 1131</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A new canvas element containing a copy of
+                            the display.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">HTMLCanvasElement</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="flush"><span class="type-signature"></span>flush<span class="signature">(callback)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Flush all pending draw tasks, if possible, as a new frame. If the entire
+frame is not ready, the flush will wait until all required tasks are
+unblocked.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>callback</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The function to call when this frame is
+                           flushed. This may happen immediately, or
+                           later when blocked tasks become unblocked.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line379">line 379</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getCursorLayer"><span class="type-signature"></span>getCursorLayer<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the cursor layer of this display. Each Guacamole display contains
+a layer for the image of the mouse cursor. This layer is a special case
+and exists above all other layers, similar to the hardware mouse cursor.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line340">line 340</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The cursor layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getDefaultLayer"><span class="type-signature"></span>getDefaultLayer<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the default layer of this display. Each Guacamole display always
+has at least one layer. Other layers can optionally be created within
+this layer, but the default layer cannot be removed and is the absolute
+ancestor of all other layers.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line329">line 329</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The default layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getElement"><span class="type-signature"></span>getElement<span class="signature">()</span><span class="type-signature"> &rarr; {Element}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the element which contains the Guacamole display.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line299">line 299</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The element containing the Guacamole display.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Element</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getHeight"><span class="type-signature"></span>getHeight<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the height of this display.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line317">line 317</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The height of this display;
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getScale"><span class="type-signature"></span>getScale<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the scale of the display.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1120">line 1120</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The scale of the display.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getWidth"><span class="type-signature"></span>getWidth<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the width of this display.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line308">line 308</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The width of this display;
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="lineTo"><span class="type-signature"></span>lineTo<span class="signature">(layer, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified line to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the endpoint of the line to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the endpoint of the line to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line732">line 732</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="move"><span class="type-signature"></span>move<span class="signature">(layer, parent, x, y, z)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Moves the upper-left corner of the given layer to the given X and Y
+coordinate, sets the Z stacking order, and reparents the layer
+to the given parent layer.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer being moved.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parent</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parent to set.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate to move to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate to move to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>z</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Z coordinate to move to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1067">line 1067</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="moveCursor"><span class="type-signature"></span>moveCursor<span class="signature">(x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the location of the local cursor to the given coordinates. For the
+sake of responsiveness, this function performs its action immediately.
+Cursor motion is not maintained within atomic frames.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate to move the cursor to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate to move the cursor to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line463">line 463</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="moveTo"><span class="type-signature"></span>moveTo<span class="signature">(layer, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Starts a new path at the specified point.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the point to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the point to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line719">line 719</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="play"><span class="type-signature"></span>play<span class="signature">(layer, mimetype, duration, url)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Plays the video at the specified URL within this layer. The video
+will be loaded automatically, and this and any future operations will
+wait for the video to finish loading. Future operations will not be
+executed until the video finishes playing.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the video to play.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>duration</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The duration of the video in milliseconds.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>url</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The URL of the video to play.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line607">line 607</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="pop"><span class="type-signature"></span>pop<span class="signature">(layer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Pop layer state off stack.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line914">line 914</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="push"><span class="type-signature"></span>push<span class="signature">(layer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Push current layer state onto stack.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line903">line 903</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="put"><span class="type-signature"></span>put<span class="signature">(srcLayer, srcx, srcy, srcw, srch, dstLayer, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Put a rectangle of image data from one Layer to this Layer directly
+without performing any alpha blending. Simply copy the data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>dstLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line678">line 678</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="rect"><span class="type-signature"></span>rect<span class="signature">(layer, x, y, w, h)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified rectangle to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                  rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                  rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>w</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>h</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line798">line 798</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="reset"><span class="type-signature"></span>reset<span class="signature">(layer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Reset the layer, clearing the stack, the current path, and any transform
+matrix.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line926">line 926</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="resize"><span class="type-signature"></span>resize<span class="signature">(layer, width, height)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Changes the size of the given Layer to the given width and height.
+Resizing is only attempted if the new size provided is actually different
+from the current size.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to resize.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>width</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new width.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>height</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new height.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line484">line 484</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="scale"><span class="type-signature"></span>scale<span class="signature">(scale)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the scale of the client display element such that it renders at
+a relatively smaller or larger size, without affecting the true
+resolution of the display.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>scale</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The scale to resize to, where 1.0 is normal
+                      size (1:1 scale).</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1097">line 1097</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setChannelMask"><span class="type-signature"></span>setChannelMask<span class="signature">(layer, mask)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the channel mask for future operations on this Layer.
+
+The channel mask is a Guacamole-specific compositing operation identifier
+with a single bit representing each of four channels (in order): source
+image where destination transparent, source where destination opaque,
+destination where source transparent, and destination where source
+opaque.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to modify.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mask</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The channel mask for future operations on this
+                     Layer.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line981">line 981</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setCursor"><span class="type-signature"></span>setCursor<span class="signature">(hotspotX, hotspotY, layer, srcx, srcy, srcw, srch)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the hotspot and image of the mouse cursor displayed within the
+Guacamole display.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>hotspotX</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the cursor hotspot.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>hotspotY</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the cursor hotspot.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The source layer containing the data which
+                               should be used as the mouse cursor image.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line410">line 410</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setMiterLimit"><span class="type-signature"></span>setMiterLimit<span class="signature">(layer, limit)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the miter limit for stroke operations using the miter join. This
+limit is the maximum ratio of the size of the miter join to the stroke
+width. If this ratio is exceeded, the miter will not be drawn for that
+joint of the path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to modify.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>limit</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The miter limit for stroke operations using the
+                      miter join.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line997">line 997</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setTransform"><span class="type-signature"></span>setTransform<span class="signature">(layer, a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to modify.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line944">line 944</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="shade"><span class="type-signature"></span>shade<span class="signature">(layer, alpha)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the opacity of the given layer to the given value, where 255 is
+fully opaque and 0 is fully transparent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer whose opacity should be set.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>alpha</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The opacity to set.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1083">line 1083</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="showCursor"><span class="type-signature"></span>showCursor<span class="signature">(shown<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets whether the software-rendered cursor is shown. This cursor differs
+from the hardware cursor in that it is built into the Guacamole.Display,
+and relies on its own Guacamole layer to render.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+        <th>Default</th>
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>shown</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                    true
+                
+                </td>
+            
+
+            <td class="description last">Whether to show the software cursor.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line438">line 438</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="strokeColor"><span class="type-signature"></span>strokeColor<span class="signature">(layer, cap, join, thickness, r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Stroke the current path with the specified color. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cap</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line cap style. Can be "round", "square",
+                    or "butt".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>join</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line join style. Can be "round", "bevel",
+                     or "miter".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>thickness</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line thickness in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of the color to fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line835">line 835</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="strokeLayer"><span class="type-signature"></span>strokeLayer<span class="signature">(layer, cap, join, thickness, srcLayer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Stroke the current path with the image within the specified layer. The
+image data will be tiled infinitely within the stroke. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cap</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line cap style. Can be "round", "square",
+                    or "butt".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>join</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line join style. Can be "round", "bevel",
+                     or "miter".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>thickness</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line thickness in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to use as a repeating pattern
+                                  within the stroke.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line875">line 875</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="transfer"><span class="type-signature"></span>transfer<span class="signature">(srcLayer, srcx, srcy, srcw, srch, dstLayer, x, y, transferFunction)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Transfer a rectangle of image data from one Layer to this Layer using the
+specified transfer function.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>dstLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>transferFunction</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The transfer function to use to
+                                   transfer data from source to
+                                   destination.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line653">line 653</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="transform"><span class="type-signature"></span>transform<span class="signature">(layer, a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Applies the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to modify.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line962">line 962</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oncursor">oncursor</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the local cursor image is changed. This can be used to
+implement special handling of the client-side cursor, or to override
+the default use of a software cursor layer.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>canvas</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">HTMLCanvasElement</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The cursor image.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X-coordinate of the cursor hotspot.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y-coordinate of the cursor hotspot.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line135">line 135</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onresize">onresize</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when the default layer (and thus the entire Guacamole display)
+is resized.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>width</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new width of the Guacamole display.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>height</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new height of the Guacamole display.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line123">line 123</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.HTTPTunnel.html b/doc/1.1.0/guacamole-common-js/Guacamole.HTTPTunnel.html
new file mode 100644
index 0000000..820419e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.HTTPTunnel.html
@@ -0,0 +1,1599 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: HTTPTunnel</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: HTTPTunnel</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>HTTPTunnel<span class="signature">(tunnelURL, crossDomain<span class="signature-attributes">opt</span>, extraTunnelHeaders<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="HTTPTunnel"><span class="type-signature"></span>new HTTPTunnel<span class="signature">(tunnelURL, crossDomain<span class="signature-attributes">opt</span>, extraTunnelHeaders<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Guacamole Tunnel implemented over HTTP via XMLHttpRequest.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+        <th>Default</th>
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>tunnelURL</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                </td>
+            
+
+            <td class="description last">The URL of the HTTP tunneling service.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>crossDomain</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                    false
+                
+                </td>
+            
+
+            <td class="description last">Whether tunnel requests will be cross-domain, and thus must use CORS
+    mechanisms and headers. By default, it is assumed that tunnel requests
+    will be made to the same domain.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>extraTunnelHeaders</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                    {}
+                
+                </td>
+            
+
+            <td class="description last">Key value pairs containing the header names and values of any additional
+    headers to be sent in tunnel requests. By default, no extra headers will
+    be added.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line222">line 222</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="receiveTimeout"><span class="type-signature"></span>receiveTimeout<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The maximum amount of time to wait for data to be received, in
+milliseconds. If data is not received within this amount of time,
+the tunnel is closed with an error. The default value is 15000.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#receiveTimeout">Guacamole.Tunnel#receiveTimeout</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line101">line 101</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="state"><span class="type-signature"></span>state<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current state of this tunnel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#state">Guacamole.Tunnel#state</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line92">line 92</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="unstableThreshold"><span class="type-signature"></span>unstableThreshold<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The amount of time to wait for data to be received before considering
+the connection to be unstable, in milliseconds. If data is not received
+within this amount of time, the tunnel status is updated to warn that
+the connection appears unresponsive and may close. The default value is
+1500.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#unstableThreshold">Guacamole.Tunnel#unstableThreshold</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line112">line 112</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="uuid"><span class="type-signature"></span>uuid<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The UUID uniquely identifying this tunnel. If not yet known, this will
+be null.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#uuid">Guacamole.Tunnel#uuid</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line120">line 120</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connect to the tunnel with the given optional data. This data is
+typically used for authentication. The format of data accepted is
+up to the tunnel implementation.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send to the tunnel when connecting.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#connect">Guacamole.Tunnel#connect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Disconnect from the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#disconnect">Guacamole.Tunnel#disconnect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line45">line 45</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isConnected"><span class="type-signature"></span>isConnected<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether this tunnel is currently connected.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#isConnected">Guacamole.Tunnel#isConnected</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line82">line 82</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if this tunnel is currently connected, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendMessage"><span class="type-signature"></span>sendMessage<span class="signature">(&hellip;elements)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Send the given message through the tunnel to the service on the other
+side. All messages are guaranteed to be received in the order sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>elements</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                    &lt;repeatable><br>
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The elements of the message to send to the service on the other side
+    of the tunnel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#sendMessage">Guacamole.Tunnel#sendMessage</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line55">line 55</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever an error is encountered by the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A status object which describes the
+                                 error.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onerror">Guacamole.Tunnel#event:onerror</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line129">line 129</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oninstruction">oninstruction</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every complete Guacamole instruction received, in order.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>opcode</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole instruction opcode.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parameters</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parameters provided for the instruction,
+                          if any.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:oninstruction">Guacamole.Tunnel#event:oninstruction</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line147">line 147</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onstatechange">onstatechange</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the state of the tunnel changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new state of the client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onstatechange">Guacamole.Tunnel#event:onstatechange</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line137">line 137</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.InputSink.html b/doc/1.1.0/guacamole-common-js/Guacamole.InputSink.html
new file mode 100644
index 0000000..2fb1cf4
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.InputSink.html
@@ -0,0 +1,370 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: InputSink</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: InputSink</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>InputSink<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="InputSink"><span class="type-signature"></span>new InputSink<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A hidden input field which attempts to keep itself focused at all times,
+except when another input field has been intentionally focused, whether
+programatically or by the user. The actual underlying input field, returned
+by getElement(), may be used as a reliable source of keyboard-related events,
+particularly composition and input events which may require a focused input
+field to be dispatched at all.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputSink.js.html">InputSink.js</a>, <a href="InputSink.js.html#line32">line 32</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="focus"><span class="type-signature"></span>focus<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Attempts to focus the underlying input field. The focus attempt occurs
+asynchronously, and may silently fail depending on browser restrictions.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputSink.js.html">InputSink.js</a>, <a href="InputSink.js.html#line93">line 93</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getElement"><span class="type-signature"></span>getElement<span class="signature">()</span><span class="type-signature"> &rarr; {Element}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the underlying input field. This input field MUST be manually
+added to the DOM for the Guacamole.InputSink to have any effect.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputSink.js.html">InputSink.js</a>, <a href="InputSink.js.html#line105">line 105</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Element</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.InputStream.html b/doc/1.1.0/guacamole-common-js/Guacamole.InputStream.html
new file mode 100644
index 0000000..417a40f
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.InputStream.html
@@ -0,0 +1,706 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: InputStream</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: InputStream</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>InputStream<span class="signature">(client, index)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="InputStream"><span class="type-signature"></span>new InputStream<span class="signature">(client, index)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    An input stream abstraction used by the Guacamole client to facilitate
+transfer of files or other binary data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>client</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Client.html">Guacamole.Client</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The client owning this stream.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of this stream.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputStream.js.html">InputStream.js</a>, <a href="InputStream.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="index"><span class="type-signature"></span>index<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The index of this stream.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputStream.js.html">InputStream.js</a>, <a href="InputStream.js.html#line42">line 42</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendAck"><span class="type-signature"></span>sendAck<span class="signature">(message, code)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Acknowledges the receipt of a blob.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>message</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A human-readable message describing the error
+                        or status.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>code</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The error code, if any, or 0 for success.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputStream.js.html">InputStream.js</a>, <a href="InputStream.js.html#line66">line 66</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onblob">onblob</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Called when a blob of data is received.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The received base64 data.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputStream.js.html">InputStream.js</a>, <a href="InputStream.js.html#line50">line 50</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onend">onend</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Called when this stream is closed.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputStream.js.html">InputStream.js</a>, <a href="InputStream.js.html#line57">line 57</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.IntegerPool.html b/doc/1.1.0/guacamole-common-js/Guacamole.IntegerPool.html
new file mode 100644
index 0000000..1b47810
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.IntegerPool.html
@@ -0,0 +1,494 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: IntegerPool</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: IntegerPool</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>IntegerPool<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="IntegerPool"><span class="type-signature"></span>new IntegerPool<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Integer pool which returns consistently increasing integers while integers
+are in use, and previously-used integers when possible.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="IntegerPool.js.html">IntegerPool.js</a>, <a href="IntegerPool.js.html#line27">line 27</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="next_int"><span class="type-signature"></span>next_int<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The next integer to return if no more integers remain.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="IntegerPool.js.html">IntegerPool.js</a>, <a href="IntegerPool.js.html#line48">line 48</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="free"><span class="type-signature"></span>free<span class="signature">(integer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Frees the given integer, allowing it to be reused.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>integer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The integer to free.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="IntegerPool.js.html">IntegerPool.js</a>, <a href="IntegerPool.js.html#line72">line 72</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="next"><span class="type-signature"></span>next<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the next available integer in the pool. If possible, a previously
+used integer will be returned.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="IntegerPool.js.html">IntegerPool.js</a>, <a href="IntegerPool.js.html#line56">line 56</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The next available integer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.JSONReader.html b/doc/1.1.0/guacamole-common-js/Guacamole.JSONReader.html
new file mode 100644
index 0000000..28edb46
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.JSONReader.html
@@ -0,0 +1,668 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: JSONReader</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: JSONReader</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>JSONReader<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="JSONReader"><span class="type-signature"></span>new JSONReader<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A reader which automatically handles the given input stream, assembling all
+received blobs into a JavaScript object by appending them to each other, in
+order, and decoding the result as JSON. Note that this object will overwrite
+any installed event handlers on the given Guacamole.InputStream.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that JSON will be read from.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="JSONReader.js.html">JSONReader.js</a>, <a href="JSONReader.js.html#line32">line 32</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getJSON"><span class="type-signature"></span>getJSON<span class="signature">()</span><span class="type-signature"> &rarr; {Object}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the contents of this Guacamole.JSONReader as a JavaScript
+object.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="JSONReader.js.html">JSONReader.js</a>, <a href="JSONReader.js.html#line76">line 76</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The contents of this Guacamole.JSONReader, as parsed from the JSON
+    contents of the input stream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Object</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getLength"><span class="type-signature"></span>getLength<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the current length of this Guacamole.JSONReader, in characters.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="JSONReader.js.html">JSONReader.js</a>, <a href="JSONReader.js.html#line64">line 64</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The current length of this Guacamole.JSONReader.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onend">onend</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once this stream is finished and no further data will be written.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="JSONReader.js.html">JSONReader.js</a>, <a href="JSONReader.js.html#line112">line 112</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onprogress">onprogress</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every blob of data received.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>length</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The number of characters received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="JSONReader.js.html">JSONReader.js</a>, <a href="JSONReader.js.html#line105">line 105</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Keyboard.ModifierState.html b/doc/1.1.0/guacamole-common-js/Guacamole.Keyboard.ModifierState.html
new file mode 100644
index 0000000..9511690
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Keyboard.ModifierState.html
@@ -0,0 +1,695 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: ModifierState</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: ModifierState</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.Keyboard.html">.Keyboard</a>.</span>ModifierState<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="ModifierState"><span class="type-signature"></span>new ModifierState<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    The state of all supported keyboard modifiers.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1452">line 1452</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="alt"><span class="type-signature"></span>alt<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether alt is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1470">line 1470</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="ctrl"><span class="type-signature"></span>ctrl<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether ctrl is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1464">line 1464</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="hyper"><span class="type-signature"></span>hyper<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether hyper (windows key) is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1482">line 1482</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="meta"><span class="type-signature"></span>meta<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether meta (apple key) is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1476">line 1476</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="shift"><span class="type-signature"></span>shift<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether shift is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1458">line 1458</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".fromKeyboardEvent"><span class="type-signature">(static) </span>fromKeyboardEvent<span class="signature">(e)</span><span class="type-signature"> &rarr; {<a href="Guacamole.Keyboard.ModifierState.html">Guacamole.Keyboard.ModifierState</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the modifier state applicable to the keyboard event given.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">KeyboardEvent</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keyboard event to read.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1493">line 1493</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The current state of keyboard
+                                            modifiers.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Keyboard.ModifierState.html">Guacamole.Keyboard.ModifierState</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Keyboard.html b/doc/1.1.0/guacamole-common-js/Guacamole.Keyboard.html
new file mode 100644
index 0000000..eb4bef3
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Keyboard.html
@@ -0,0 +1,1656 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Keyboard</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Keyboard</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Keyboard<span class="signature">(element<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Keyboard"><span class="type-signature"></span>new Keyboard<span class="signature">(element<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Provides cross-browser and cross-keyboard keyboard for a specific element.
+Browser and keyboard layout variation is abstracted away, providing events
+which represent keys as their corresponding X11 keysym.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>element</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Element</span>
+|
+
+<span class="param-type">Document</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The Element to use to provide keyboard events. If omitted, at least one
+   Element must be manually provided through the listenTo() function for
+   the Guacamole.Keyboard instance to have any effect.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line33">line 33</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Classes</h3>
+
+        <dl>
+            <dt><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="modifiers"><span class="type-signature"></span>modifiers<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    All modifiers and their states.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line613">line 613</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="pressed"><span class="type-signature"></span>pressed<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The state of every key, indexed by keysym. If a particular key is
+pressed, the value of pressed for that keysym will be true. If a key
+is not currently pressed, it will not be defined.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line620">line 620</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="listenTo"><span class="type-signature"></span>listenTo<span class="signature">(element)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Attaches event listeners to the given Element, automatically translating
+received key, input, and composition events into simple keydown/keyup
+events signalled through this Guacamole.Keyboard's onkeydown and
+onkeyup handlers.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>element</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Element</span>
+|
+
+<span class="param-type">Document</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Element to attach event listeners to for the sake of handling
+    key or input events.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1292">line 1292</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="press"><span class="type-signature"></span>press<span class="signature">(keysym)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Marks a key as pressed, firing the keydown event if registered. Key
+repeat for the pressed key will start after a delay if that key is
+not a modifier. The return value of this function depends on the
+return value of the keydown event handler, if any.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key to press.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line821">line 821</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if event should NOT be canceled, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="release"><span class="type-signature"></span>release<span class="signature">(keysym)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Marks a key as released, firing the keyup event if registered.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key to release.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line864">line 864</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="reset"><span class="type-signature"></span>reset<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Resets the state of this keyboard, releasing all keys, and firing keyup
+events for each released key.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line913">line 913</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="type"><span class="type-signature"></span>type<span class="signature">(str)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Presses and releases the keys necessary to type the given string of
+text.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>str</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The string to type.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line892">line 892</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~isPrintable"><span class="type-signature">(inner) </span>isPrintable<span class="signature">(keysym)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns true if the given keysym corresponds to a printable character,
+false otherwise.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym to check.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line700">line 700</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given keysym corresponds to a printable character,
+    false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~markEvent"><span class="type-signature">(inner) </span>markEvent<span class="signature">(e)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Attempts to mark the given Event as having been handled by this
+Guacamole.Keyboard. If the Event has already been marked as handled,
+false is returned.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Event</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Event to mark.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1270">line 1270</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given Event was successfully marked, false if the given
+    Event was already marked.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onkeydown">onkeydown</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user presses a key with the element associated
+with this Guacamole.Keyboard in focus.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key being pressed.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line69">line 69</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the key event should be allowed through to the
+                  browser, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onkeyup">onkeyup</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user releases a key with the element associated
+with this Guacamole.Keyboard in focus.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key being released.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line78">line 78</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Layer.Pixel.html b/doc/1.1.0/guacamole-common-js/Guacamole.Layer.Pixel.html
new file mode 100644
index 0000000..44e526a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Layer.Pixel.html
@@ -0,0 +1,544 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Pixel</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Pixel</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.Layer.html">.Layer</a>.</span>Pixel<span class="signature">(r, g, b, a)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Pixel"><span class="type-signature"></span>new Pixel<span class="signature">(r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Represents a single pixel of image data. All components have a minimum value
+of 0 and a maximum value of 255.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of this pixel.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of this pixel.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of this pixel.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of this pixel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line952">line 952</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="alpha"><span class="type-signature"></span>alpha<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The alpha component of this pixel, where 0 is the minimum value,
+and 255 is the maximum.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line976">line 976</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="blue"><span class="type-signature"></span>blue<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The blue component of this pixel, where 0 is the minimum value,
+and 255 is the maximum.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line970">line 970</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="green"><span class="type-signature"></span>green<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The green component of this pixel, where 0 is the minimum value,
+and 255 is the maximum.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line964">line 964</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="red"><span class="type-signature"></span>red<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The red component of this pixel, where 0 is the minimum value,
+and 255 is the maximum.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line958">line 958</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Layer.html b/doc/1.1.0/guacamole-common-js/Guacamole.Layer.html
new file mode 100644
index 0000000..f7ba8d0
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Layer.html
@@ -0,0 +1,5706 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Layer</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Layer</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Layer<span class="signature">(width, height)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Layer"><span class="type-signature"></span>new Layer<span class="signature">(width, height)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Abstract ordered drawing surface. Each Layer contains a canvas element and
+provides simple drawing instructions for drawing to that canvas element,
+however unlike the canvas element itself, drawing operations on a Layer are
+guaranteed to run in order, even if such an operation must wait for an image
+to load before completing.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>width</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the Layer, in pixels. The canvas element
+                      backing this Layer will be given this width.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>height</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the Layer, in pixels. The canvas element
+                       backing this Layer will be given this height.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line37">line 37</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Classes</h3>
+
+        <dl>
+            <dt><a href="Guacamole.Layer.Pixel.html">Pixel</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".ATOP"><span class="type-signature">(static) </span>ATOP<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "atop".
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line879">line 879</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".IN"><span class="type-signature">(static) </span>IN<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "in".
+Beware that WebKit-based browsers may leave the contents of the destionation
+layer where the source layer is transparent, despite the definition of this
+operation.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line915">line 915</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".OUT"><span class="type-signature">(static) </span>OUT<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "out".
+Beware that WebKit-based browsers may leave the contents of the destionation
+layer where the source layer is transparent, despite the definition of this
+operation.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line923">line 923</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".OVER"><span class="type-signature">(static) </span>OVER<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "over".
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line894">line 894</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".PLUS"><span class="type-signature">(static) </span>PLUS<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "plus".
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line899">line 899</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".RATOP"><span class="type-signature">(static) </span>RATOP<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "ratop".
+Beware that WebKit-based browsers may leave the contents of the destionation
+layer where the source layer is transparent, despite the definition of this
+operation.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line931">line 931</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".RIN"><span class="type-signature">(static) </span>RIN<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "rin".
+Beware that WebKit-based browsers may leave the contents of the destionation
+layer where the source layer is transparent, despite the definition of this
+operation.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line907">line 907</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".ROUT"><span class="type-signature">(static) </span>ROUT<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "rout".
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line874">line 874</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".ROVER"><span class="type-signature">(static) </span>ROVER<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "rover".
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line889">line 889</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".SRC"><span class="type-signature">(static) </span>SRC<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "src".
+Beware that WebKit-based browsers may leave the contents of the destionation
+layer where the source layer is transparent, despite the definition of this
+operation.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line939">line 939</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".XOR"><span class="type-signature">(static) </span>XOR<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "xor".
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line884">line 884</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="autosize"><span class="type-signature"></span>autosize<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Set to true if this Layer should resize itself to accomodate the
+dimensions of any drawing operation, and false (the default) otherwise.
+
+Note that setting this property takes effect immediately, and thus may
+take effect on operations that were started in the past but have not
+yet completed. If you wish the setting of this flag to only modify
+future operations, you will need to make the setting of this flag an
+operation with sync().
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-default">Default Value:</dt>
+    <dd class="tag-default"><ul class="dummy">
+            <li>false</li>
+        </ul></dd>
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line255">line 255</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+    <h5>Example</h5>
+    
+    <pre class="prettyprint"><code>// Set autosize to true for all future operations
+layer.sync(function() {
+    layer.autosize = true;
+});</code></pre>
+
+
+
+        
+            
+<h4 class="name" id="height"><span class="type-signature"></span>height<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current height of this layer.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line267">line 267</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="width"><span class="type-signature"></span>width<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current width of this layer.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line261">line 261</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="arc"><span class="type-signature"></span>arc<span class="signature">(x, y, radius, startAngle, endAngle, negative)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified arc to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the center of the circle which
+                  will contain the arc.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the center of the circle which
+                  will contain the arc.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>radius</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The radius of the circle.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>startAngle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The starting angle of the arc, in radians.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>endAngle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The ending angle of the arc, in radians.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>negative</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the arc should be drawn in order of
+                          decreasing angle.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line552">line 552</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="clip"><span class="type-signature"></span>clip<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Clip all future drawing operations by the current path. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as fillColor()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line626">line 626</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="close"><span class="type-signature"></span>close<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Closes the current path by connecting the end point with the start
+point (if any) with a straight line.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line592">line 592</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="copy"><span class="type-signature"></span>copy<span class="signature">(srcLayer, srcx, srcy, srcw, srch, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Copy a rectangle of image data from one Layer to this Layer. This
+operation will copy exactly the image data that will be drawn once all
+operations of the source Layer that were pending at the time this
+function was called are complete. This operation will not alter the
+size of the source Layer even if its autosize property is set to true.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line478">line 478</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="curveTo"><span class="type-signature"></span>curveTo<span class="signature">(cp1x, cp1y, cp2x, cp2y, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Starts a new path at the specified point.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>cp1x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the first control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp1y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the first control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp2x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the second control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp2y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the second control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the endpoint of the curve.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the endpoint of the curve.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line575">line 575</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="drawImage"><span class="type-signature"></span>drawImage<span class="signature">(x, y, image)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Draws the specified image at the given coordinates. The image specified
+must already be loaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>image</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Image</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The image to draw. Note that this is an Image
+                     object - not a URL.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line327">line 327</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fillColor"><span class="type-signature"></span>fillColor<span class="signature">(r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fills the current path with the specified color. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of the color to fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line678">line 678</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fillLayer"><span class="type-signature"></span>fillLayer<span class="signature">(srcLayer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fills the current path with the image within the specified layer. The
+image data will be tiled infinitely within the stroke. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to use as a repeating pattern
+                                  within the fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line733">line 733</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getCanvas"><span class="type-signature"></span>getCanvas<span class="signature">()</span><span class="type-signature"> &rarr; {HTMLCanvasElement}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the canvas element backing this Layer. Note that the dimensions
+of the canvas may not exactly match those of the Layer, as resizing a
+canvas while maintaining its state is an expensive operation.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line277">line 277</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The canvas element backing this Layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">HTMLCanvasElement</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="lineTo"><span class="type-signature"></span>lineTo<span class="signature">(x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified line to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the endpoint of the line to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the endpoint of the line to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line526">line 526</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="moveTo"><span class="type-signature"></span>moveTo<span class="signature">(x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Starts a new path at the specified point.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the point to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the point to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line507">line 507</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="pop"><span class="type-signature"></span>pop<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Pop layer state off stack.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line762">line 762</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="push"><span class="type-signature"></span>push<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Push current layer state onto stack.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line751">line 751</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="put"><span class="type-signature"></span>put<span class="signature">(srcLayer, srcx, srcy, srcw, srch, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Put a rectangle of image data from one Layer to this Layer directly
+without performing any alpha blending. Simply copy the data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line431">line 431</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="rect"><span class="type-signature"></span>rect<span class="signature">(x, y, w, h)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified rectangle to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                  rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                  rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>w</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>h</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line607">line 607</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="reset"><span class="type-signature"></span>reset<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Reset the layer, clearing the stack, the current path, and any transform
+matrix.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line776">line 776</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="resize"><span class="type-signature"></span>resize<span class="signature">(newWidth, newHeight)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Changes the size of this Layer to the given width and height. Resizing
+is only attempted if the new size provided is actually different from
+the current size.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>newWidth</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new width to assign to this Layer.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>newHeight</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new height to assign to this Layer.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line313">line 313</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setChannelMask"><span class="type-signature"></span>setChannelMask<span class="signature">(mask)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the channel mask for future operations on this Layer.
+
+The channel mask is a Guacamole-specific compositing operation identifier
+with a single bit representing each of four channels (in order): source
+image where destination transparent, source where destination opaque,
+destination where source transparent, and destination where source
+opaque.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mask</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The channel mask for future operations on this
+                     Layer.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line844">line 844</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setMiterLimit"><span class="type-signature"></span>setMiterLimit<span class="signature">(limit)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the miter limit for stroke operations using the miter join. This
+limit is the maximum ratio of the size of the miter join to the stroke
+width. If this ratio is exceeded, the miter will not be drawn for that
+joint of the path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>limit</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The miter limit for stroke operations using the
+                      miter join.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line857">line 857</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setTransform"><span class="type-signature"></span>setTransform<span class="signature">(a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line805">line 805</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="strokeColor"><span class="type-signature"></span>strokeColor<span class="signature">(cap, join, thickness, r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Stroke the current path with the specified color. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>cap</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line cap style. Can be "round", "square",
+                    or "butt".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>join</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line join style. Can be "round", "bevel",
+                     or "miter".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>thickness</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line thickness in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of the color to fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line652">line 652</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="strokeLayer"><span class="type-signature"></span>strokeLayer<span class="signature">(cap, join, thickness, srcLayer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Stroke the current path with the image within the specified layer. The
+image data will be tiled infinitely within the stroke. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>cap</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line cap style. Can be "round", "square",
+                    or "butt".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>join</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line join style. Can be "round", "bevel",
+                     or "miter".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>thickness</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line thickness in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to use as a repeating pattern
+                                  within the stroke.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line705">line 705</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="toCanvas"><span class="type-signature"></span>toCanvas<span class="signature">()</span><span class="type-signature"> &rarr; {HTMLCanvasElement}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a new canvas element containing the same image as this Layer.
+Unlike getCanvas(), the canvas element returned is guaranteed to have
+the exact same dimensions as the Layer.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line290">line 290</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A new canvas element containing a copy of the image content this
+    Layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">HTMLCanvasElement</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="transfer"><span class="type-signature"></span>transfer<span class="signature">(srcLayer, srcx, srcy, srcw, srch, x, y, transferFunction)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Transfer a rectangle of image data from one Layer to this Layer using the
+specified transfer function.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>transferFunction</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The transfer function to use to
+                                   transfer data from source to
+                                   destination.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line354">line 354</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="transform"><span class="type-signature"></span>transform<span class="signature">(a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Applies the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line824">line 824</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.State.html b/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.State.html
new file mode 100644
index 0000000..1a79bc4
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.State.html
@@ -0,0 +1,1059 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: State</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: State</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.Mouse.html">.Mouse</a>.</span>State<span class="signature">(x, y, left, middle, right, up, down)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="State"><span class="type-signature"></span>new State<span class="signature">(x, y, left, middle, right, up, down)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Simple container for properties describing the state of a mouse.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X position of the mouse pointer in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y position of the mouse pointer in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>left</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the left mouse button is pressed.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>middle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the middle mouse button is pressed.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>right</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the right mouse button is pressed.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>up</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the up mouse button is pressed (the fourth
+                    button, usually part of a scroll wheel).</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>down</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the down mouse button is pressed (the fifth
+                      button, usually part of a scroll wheel).</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line411">line 411</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="down"><span class="type-signature"></span>down<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether the down mouse button is currently pressed. This is the fifth 
+mouse button, associated with downward scrolling of the mouse scroll
+wheel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line463">line 463</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="left"><span class="type-signature"></span>left<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether the left mouse button is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line435">line 435</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="middle"><span class="type-signature"></span>middle<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether the middle mouse button is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line441">line 441</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="right"><span class="type-signature"></span>right<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether the right mouse button is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line447">line 447</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="up"><span class="type-signature"></span>up<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether the up mouse button is currently pressed. This is the fourth
+mouse button, associated with upward scrolling of the mouse scroll
+wheel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line455">line 455</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="x"><span class="type-signature"></span>x<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current X position of the mouse pointer.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line423">line 423</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="y"><span class="type-signature"></span>y<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current Y position of the mouse pointer.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line429">line 429</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fromClientPosition"><span class="type-signature"></span>fromClientPosition<span class="signature">(element, clientX, clientY)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Updates the position represented within this state object by the given
+element and clientX/clientY coordinates (commonly available within event
+objects). Position is translated from clientX/clientY (relative to
+viewport) to element-relative coordinates.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>element</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Element</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The element the coordinates should be relative
+                         to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>clientX</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate to translate, viewport-relative.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>clientY</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate to translate, viewport-relative.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line476">line 476</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.Touchpad.html b/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.Touchpad.html
new file mode 100644
index 0000000..fc6f9b6
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.Touchpad.html
@@ -0,0 +1,904 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Touchpad</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Touchpad</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.Mouse.html">.Mouse</a>.</span>Touchpad<span class="signature">(element)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Touchpad"><span class="type-signature"></span>new Touchpad<span class="signature">(element)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Provides cross-browser relative touch event translation for a given element.
+
+Touch events are translated into mouse events as if the touches occurred
+on a touchpad (drag to push the mouse pointer, tap to click).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>element</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Element</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Element to use to provide touch events.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line513">line 513</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="clickMoveThreshold"><span class="type-signature"></span>clickMoveThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The maximum number of pixels to allow a touch to move for the gesture to
+be considered a click.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line537">line 537</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="clickTimingThreshold"><span class="type-signature"></span>clickTimingThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The maximum number of milliseconds to wait for a touch to end for the
+gesture to be considered a click.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line531">line 531</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="currentState"><span class="type-signature"></span>currentState<span class="type-signature"> :<a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span></h4>
+
+
+
+
+<div class="description">
+    The current mouse state. The properties of this state are updated when
+mouse events fire. This state object is also passed in as a parameter to
+the handler of any mouse events.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line546">line 546</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="scrollThreshold"><span class="type-signature"></span>scrollThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The distance a two-finger touch must move per scrollwheel event, in
+pixels.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line525">line 525</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmousedown">onmousedown</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever a mouse button is effectively pressed. This can happen
+as part of a "click" gesture initiated by the user by tapping one
+or more fingers over the touchpad element, as part of a "scroll"
+gesture initiated by dragging two fingers up or down, etc.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line560">line 560</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmousemove">onmousemove</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user moves the mouse by dragging their finger over
+the touchpad element.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line580">line 580</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmouseup">onmouseup</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever a mouse button is effectively released. This can happen
+as part of a "click" gesture initiated by the user by tapping one
+or more fingers over the touchpad element, as part of a "scroll"
+gesture initiated by dragging two fingers up or down, etc.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line571">line 571</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.Touchscreen.html b/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.Touchscreen.html
new file mode 100644
index 0000000..00157b9
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.Touchscreen.html
@@ -0,0 +1,970 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Touchscreen</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Touchscreen</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.Mouse.html">.Mouse</a>.</span>Touchscreen<span class="signature">(element)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Touchscreen"><span class="type-signature"></span>new Touchscreen<span class="signature">(element)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Provides cross-browser absolute touch event translation for a given element.
+
+Touch events are translated into mouse events as if the touches occurred
+on a touchscreen (tapping anywhere on the screen clicks at that point,
+long-press to right-click).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>element</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Element</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Element to use to provide touch events.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line780">line 780</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="clickMoveThreshold"><span class="type-signature"></span>clickMoveThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The maximum number of pixels to allow a touch to move for the gesture to
+be considered a click.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line838">line 838</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="clickTimingThreshold"><span class="type-signature"></span>clickTimingThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The maximum number of milliseconds to wait for a touch to end for the
+gesture to be considered a click.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line832">line 832</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="currentState"><span class="type-signature"></span>currentState<span class="type-signature"> :<a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span></h4>
+
+
+
+
+<div class="description">
+    The current mouse state. The properties of this state are updated when
+mouse events fire. This state object is also passed in as a parameter to
+the handler of any mouse events.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line853">line 853</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="longPressThreshold"><span class="type-signature"></span>longPressThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The amount of time a press must be held for long press to be
+detected.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line844">line 844</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="scrollThreshold"><span class="type-signature"></span>scrollThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The distance a two-finger touch must move per scrollwheel event, in
+pixels.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line826">line 826</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmousedown">onmousedown</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever a mouse button is effectively pressed. This can happen
+as part of a "mousedown" gesture initiated by the user by pressing one
+finger over the touchscreen element, as part of a "scroll" gesture
+initiated by dragging two fingers up or down, etc.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line867">line 867</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmousemove">onmousemove</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user moves the mouse by dragging their finger over
+the touchscreen element. Note that unlike Guacamole.Mouse.Touchpad,
+dragging a finger over the touchscreen element will always cause
+the mouse button to be effectively down, as if clicking-and-dragging.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line889">line 889</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmouseup">onmouseup</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever a mouse button is effectively released. This can happen
+as part of a "mouseup" gesture initiated by the user by removing the
+finger pressed against the touchscreen element, or as part of a "scroll"
+gesture initiated by dragging two fingers up or down, etc.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line878">line 878</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.html b/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.html
new file mode 100644
index 0000000..cd1e04f
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.html
@@ -0,0 +1,1276 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Mouse</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Mouse</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Mouse<span class="signature">(element)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Mouse"><span class="type-signature"></span>new Mouse<span class="signature">(element)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Provides cross-browser mouse events for a given element. The events of
+the given element are automatically populated with handlers that translate
+mouse events into a non-browser-specific event provided by the
+Guacamole.Mouse instance.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>element</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Element</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Element to use to provide mouse events.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Classes</h3>
+
+        <dl>
+            <dt><a href="Guacamole.Mouse.State.html">State</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="currentState"><span class="type-signature"></span>currentState<span class="type-signature"> :<a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span></h4>
+
+
+
+
+<div class="description">
+    The current mouse state. The properties of this state are updated when
+mouse events fire. This state object is also passed in as a parameter to
+the handler of any mouse events.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line68">line 68</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="PIXELS_PER_LINE"><span class="type-signature"></span>PIXELS_PER_LINE<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The number of pixels to scroll per line.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line54">line 54</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="PIXELS_PER_PAGE"><span class="type-signature"></span>PIXELS_PER_PAGE<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The number of pixels to scroll per page.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line59">line 59</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="scrollThreshold"><span class="type-signature"></span>scrollThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The minimum amount of pixels scrolled required for a single scroll button
+click.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line49">line 49</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="touchMouseThreshold"><span class="type-signature"></span>touchMouseThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The number of mousemove events to require before re-enabling mouse
+event handling after receiving a touch event.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line43">line 43</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setCursor"><span class="type-signature"></span>setCursor<span class="signature">(canvas, x, y)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Changes the local mouse cursor to the given canvas, having the given
+hotspot coordinates. This affects styling of the element backing this
+Guacamole.Mouse only, and may fail depending on browser support for
+setting the mouse cursor.
+
+If setting the local cursor is desired, it is up to the implementation
+to do something else, such as use the software cursor built into
+Guacamole.Display, if the local cursor cannot be set.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>canvas</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">HTMLCanvasElement</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The cursor image.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X-coordinate of the cursor hotspot.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y-coordinate of the cursor hotspot.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line381">line 381</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the cursor was successfully set, false if the
+                  cursor could not be set for any reason.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmousedown">onmousedown</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user presses a mouse button down over the element
+associated with this Guacamole.Mouse.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line80">line 80</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmousemove">onmousemove</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user moves the mouse over the element associated with
+this Guacamole.Mouse.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line98">line 98</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmouseout">onmouseout</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the mouse leaves the boundaries of the element associated
+with this Guacamole.Mouse.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line106">line 106</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmouseup">onmouseup</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user releases a mouse button down over the element
+associated with this Guacamole.Mouse.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line89">line 89</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Object.html b/doc/1.1.0/guacamole-common-js/Guacamole.Object.html
new file mode 100644
index 0000000..3016c9a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Object.html
@@ -0,0 +1,1110 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Object</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Object</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Object<span class="signature">(client, index)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Object"><span class="type-signature"></span>new Object<span class="signature">(client, index)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    An object used by the Guacamole client to house arbitrarily-many named
+input and output streams.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>client</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Client.html">Guacamole.Client</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The client owning this object.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of this object.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line33">line 33</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".ROOT_STREAM"><span class="type-signature">(static, constant) </span>ROOT_STREAM<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The reserved name denoting the root stream of any object. The contents of
+the root stream MUST be a JSON map of stream name to mimetype.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line200">line 200</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".STREAM_INDEX_MIMETYPE"><span class="type-signature">(static, constant) </span>STREAM_INDEX_MIMETYPE<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The mimetype of a stream containing JSON which maps available stream names
+to their corresponding mimetype. The root stream of a Guacamole.Object MUST
+have this mimetype.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="index"><span class="type-signature"></span>index<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The index of this object.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line112">line 112</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createOutputStream"><span class="type-signature"></span>createOutputStream<span class="signature">(mimetype, name)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Creates a new output stream associated with this object and having the
+given mimetype and name. The legality of a mimetype and name is dictated
+by the object itself.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data which will be sent to the output stream.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The defined name of an output stream within this object.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line187">line 187</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    An output stream which will write blobs to the named output stream
+    of this object.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="requestInputStream"><span class="type-signature"></span>requestInputStream<span class="signature">(name, bodyCallback<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Requests read access to the input stream having the given name. If
+successful, a new input stream will be created.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The name of the input stream to request.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>bodyCallback</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The callback to invoke when the body of the requested input stream
+    is received. This callback will be provided a Guacamole.InputStream
+    and its mimetype as its two only arguments. If the onbody handler of
+    this object is overridden, this callback will not be invoked.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line161">line 161</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onbody">onbody</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Called when this object receives the body of a requested input stream.
+By default, all objects will invoke the callbacks provided to their
+requestInputStream() functions based on the name of the stream
+requested. This behavior can be overridden by specifying a different
+handler here.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>inputStream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The input stream of the received body.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data being received.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the stream whose body has been received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line131">line 131</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onundefine">onundefine</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Called when this object is being undefined. Once undefined, no further
+communication involving this object may occur.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line146">line 146</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.OnScreenKeyboard.Key.html b/doc/1.1.0/guacamole-common-js/Guacamole.OnScreenKeyboard.Key.html
new file mode 100644
index 0000000..c9c4fbe
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.OnScreenKeyboard.Key.html
@@ -0,0 +1,646 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Key</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Key</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.OnScreenKeyboard.html">.OnScreenKeyboard</a>.</span>Key<span class="signature">(template, name<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Key"><span class="type-signature"></span>new Key<span class="signature">(template, name<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Represents a single key, or a single possible behavior of a key. Each key
+on the on-screen keyboard must have at least one associated
+Guacamole.OnScreenKeyboard.Key, whether that key is explicitly defined or
+implied, and may have multiple Guacamole.OnScreenKeyboard.Key if behavior
+depends on modifier states.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>template</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a></span>
+|
+
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The object whose identically-named properties will be used to initialize
+    the properties of this key.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The name to use instead of any name provided within the template, if
+    any. If omitted, the name within the template will be used, assuming the
+    template contains a name.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line877">line 877</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="keysym"><span class="type-signature"></span>keysym<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The keysym to be pressed/released when this key is pressed/released. If
+not provided, this will be derived from the title if the title is a
+single character.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line901">line 901</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="modifier"><span class="type-signature"></span>modifier<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The name of the modifier set when the key is pressed and cleared when
+this key is released, if any. The names of modifiers are distinct from
+the names of keys; both the "RightShift" and "LeftShift" keys may set
+the "shift" modifier, for example. By default, the key will affect no
+modifiers.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line930">line 930</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="name"><span class="type-signature"></span>name<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The unique name identifying this key within the keyboard layout.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line884">line 884</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="requires"><span class="type-signature"></span>requires<span class="type-signature"> :Array.&lt;String></span></h4>
+
+
+
+
+<div class="description">
+    An array containing the names of each modifier required for this key to
+have an effect. For example, a lowercase letter may require nothing,
+while an uppercase letter would require "shift", assuming the Shift key
+is named "shift" within the layout. By default, the key will require
+no modifiers.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Array.&lt;String></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line941">line 941</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="title"><span class="type-signature"></span>title<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The human-readable title that will be displayed to the user within the
+key. If not provided, this will be derived from the key name.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line892">line 892</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.OnScreenKeyboard.Layout.html b/doc/1.1.0/guacamole-common-js/Guacamole.OnScreenKeyboard.Layout.html
new file mode 100644
index 0000000..6f6a2cf
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.OnScreenKeyboard.Layout.html
@@ -0,0 +1,677 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Layout</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Layout</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.OnScreenKeyboard.html">.OnScreenKeyboard</a>.</span>Layout<span class="signature">(template)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Layout"><span class="type-signature"></span>new Layout<span class="signature">(template)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Represents an entire on-screen keyboard layout, including all available
+keys, their behaviors, and their relative position and sizing.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>template</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OnScreenKeyboard.Layout.html">Guacamole.OnScreenKeyboard.Layout</a></span>
+|
+
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The object whose identically-named properties will be used to initialize
+    the properties of this layout.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line796">line 796</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="keys"><span class="type-signature"></span>keys<span class="type-signature"> :Object.&lt;String, (Number|String|<a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a>|Array.&lt;<a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a>>)></span></h4>
+
+
+
+
+<div class="description">
+    Map of key name to corresponding keysym, title, or key object. If only
+the keysym or title is provided, the key object will be created
+implicitly. In all cases, the name property of the key object will be
+taken from the name given in the mapping.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Object.&lt;String, (Number|String|<a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a>|Array.&lt;<a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a>>)></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line823">line 823</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="keyWidths"><span class="type-signature"></span>keyWidths<span class="type-signature"> :Object.&lt;String, Number></span></h4>
+
+
+
+
+<div class="description">
+    The width of each key, in arbitrary units, relative to other keys in
+this layout. The true pixel size of each key will be determined by the
+overall size of the keyboard. If not defined here, the width of each
+key will default to 1.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Object.&lt;String, Number></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line856">line 856</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="language"><span class="type-signature"></span>language<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The language of keyboard layout, such as "en_US". This property is for
+informational purposes only, but it is recommend to conform to the
+[language code]_[country code] format.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line805">line 805</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="layout"><span class="type-signature"></span>layout<span class="type-signature"> :Object</span></h4>
+
+
+
+
+<div class="description">
+    Arbitrarily nested, arbitrarily grouped key names. The contents of the
+layout will be traversed to produce an identically-nested grouping of
+keys in the DOM tree. All strings will be transformed into their
+corresponding sets of keys, while all objects and arrays will be
+transformed into named groups and anonymous groups respectively. Any
+numbers present will be transformed into gaps of that size, scaled
+according to the same units as each key.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Object</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line836">line 836</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="type"><span class="type-signature"></span>type<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The type of keyboard layout, such as "qwerty". This property is for
+informational purposes only, and does not conform to any standard.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line813">line 813</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="width"><span class="type-signature"></span>width<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The width of the entire keyboard, in arbitrary units. The width of each
+key is relative to this width, as both width values are assumed to be in
+the same units. The conversion factor between these units and pixels is
+derived later via a call to resize() on the Guacamole.OnScreenKeyboard.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line846">line 846</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.OnScreenKeyboard.html b/doc/1.1.0/guacamole-common-js/Guacamole.OnScreenKeyboard.html
new file mode 100644
index 0000000..143dded
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.OnScreenKeyboard.html
@@ -0,0 +1,976 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: OnScreenKeyboard</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: OnScreenKeyboard</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>OnScreenKeyboard<span class="signature">(layout)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="OnScreenKeyboard"><span class="type-signature"></span>new OnScreenKeyboard<span class="signature">(layout)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Dynamic on-screen keyboard. Given the layout object for an on-screen
+keyboard, this object will construct a clickable on-screen keyboard with its
+own key events.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layout</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OnScreenKeyboard.Layout.html">Guacamole.OnScreenKeyboard.Layout</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layout of the on-screen keyboard to display.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Classes</h3>
+
+        <dl>
+            <dt><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="keys"><span class="type-signature"></span>keys<span class="type-signature"> :Object.&lt;String, Array.&lt;<a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a>>></span></h4>
+
+
+
+
+<div class="description">
+    Map of all key names to their corresponding set of keys. Each key name
+may correspond to multiple keys due to the effect of modifiers.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Object.&lt;String, Array.&lt;<a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a>>></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line543">line 543</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="layout"><span class="type-signature"></span>layout<span class="type-signature"> :<a href="Guacamole.OnScreenKeyboard.Layout.html">Guacamole.OnScreenKeyboard.Layout</a></span></h4>
+
+
+
+
+<div class="description">
+    The keyboard layout provided at time of construction.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type"><a href="Guacamole.OnScreenKeyboard.Layout.html">Guacamole.OnScreenKeyboard.Layout</a></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line427">line 427</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="touchMouseThreshold"><span class="type-signature"></span>touchMouseThreshold<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The number of mousemove events to require before re-enabling mouse
+event handling after receiving a touch event.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line404">line 404</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getElement"><span class="type-signature"></span>getElement<span class="signature">()</span><span class="type-signature"> &rarr; {Element}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the element containing the entire on-screen keyboard.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line433">line 433</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The element containing the entire on-screen keyboard.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Element</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="resize"><span class="type-signature"></span>resize<span class="signature">(width)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Resizes all elements within this Guacamole.OnScreenKeyboard such that
+the width is close to but does not exceed the specified width. The
+height of the keyboard is determined based on the width.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>width</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width to resize this Guacamole.OnScreenKeyboard
+                      to, in pixels.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line445">line 445</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onkeydown">onkeydown</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user presses a key on this Guacamole.OnScreenKeyboard.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key being pressed.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line412">line 412</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onkeyup">onkeyup</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user releases a key on this Guacamole.OnScreenKeyboard.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key being released.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line420">line 420</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.OutputStream.html b/doc/1.1.0/guacamole-common-js/Guacamole.OutputStream.html
new file mode 100644
index 0000000..c79b857
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.OutputStream.html
@@ -0,0 +1,682 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: OutputStream</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: OutputStream</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>OutputStream<span class="signature">(client, index)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="OutputStream"><span class="type-signature"></span>new OutputStream<span class="signature">(client, index)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Abstract stream which can receive data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>client</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Client.html">Guacamole.Client</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The client owning this stream.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of this stream.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OutputStream.js.html">OutputStream.js</a>, <a href="OutputStream.js.html#line29">line 29</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="index"><span class="type-signature"></span>index<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The index of this stream.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OutputStream.js.html">OutputStream.js</a>, <a href="OutputStream.js.html#line41">line 41</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendBlob"><span class="type-signature"></span>sendBlob<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Writes the given base64-encoded data to this stream as a blob.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The base64-encoded data to send.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OutputStream.js.html">OutputStream.js</a>, <a href="OutputStream.js.html#line57">line 57</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendEnd"><span class="type-signature"></span>sendEnd<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Closes this stream.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OutputStream.js.html">OutputStream.js</a>, <a href="OutputStream.js.html#line64">line 64</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onack">onack</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever an acknowledgement is received from the server, indicating
+that a stream operation has completed, or an error has occurred.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The status of the operation.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OutputStream.js.html">OutputStream.js</a>, <a href="OutputStream.js.html#line50">line 50</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Parser.html b/doc/1.1.0/guacamole-common-js/Guacamole.Parser.html
new file mode 100644
index 0000000..f04fb8e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Parser.html
@@ -0,0 +1,474 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Parser</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Parser</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Parser<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Parser"><span class="type-signature"></span>new Parser<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Simple Guacamole protocol parser that invokes an oninstruction event when
+full instructions are available from data received via receive().
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Parser.js.html">Parser.js</a>, <a href="Parser.js.html#line28">line 28</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="receive"><span class="type-signature"></span>receive<span class="signature">(packet)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Appends the given instruction data packet to the internal buffer of
+this Guacamole.Parser, executing all completed instructions at
+the beginning of this buffer, if any.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>packet</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The instruction data to receive.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Parser.js.html">Parser.js</a>, <a href="Parser.js.html#line66">line 66</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oninstruction">oninstruction</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every complete Guacamole instruction received, in order.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>opcode</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole instruction opcode.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parameters</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parameters provided for the instruction,
+                          if any.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Parser.js.html">Parser.js</a>, <a href="Parser.js.html#line154">line 154</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.RawAudioFormat.html b/doc/1.1.0/guacamole-common-js/Guacamole.RawAudioFormat.html
new file mode 100644
index 0000000..4b6d0f5
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.RawAudioFormat.html
@@ -0,0 +1,611 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: RawAudioFormat</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: RawAudioFormat</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>RawAudioFormat<span class="signature">(template)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="RawAudioFormat"><span class="type-signature"></span>new RawAudioFormat<span class="signature">(template)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A description of the format of raw PCM audio, such as that used by
+Guacamole.RawAudioPlayer and Guacamole.RawAudioRecorder. This object
+describes the number of bytes per sample, the number of channels, and the
+overall sample rate.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>template</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.RawAudioFormat.html">Guacamole.RawAudioFormat</a></span>
+|
+
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The object whose properties should be copied into the corresponding
+    properties of the new Guacamole.RawAudioFormat.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="RawAudioFormat.js.html">RawAudioFormat.js</a>, <a href="RawAudioFormat.js.html#line33">line 33</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="bytesPerSample"><span class="type-signature"></span>bytesPerSample<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The number of bytes in each sample of audio data. This value is
+independent of the number of channels.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="RawAudioFormat.js.html">RawAudioFormat.js</a>, <a href="RawAudioFormat.js.html#line41">line 41</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="channels"><span class="type-signature"></span>channels<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The number of audio channels (ie: 1 for mono, 2 for stereo).
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="RawAudioFormat.js.html">RawAudioFormat.js</a>, <a href="RawAudioFormat.js.html#line48">line 48</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="rate"><span class="type-signature"></span>rate<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The number of samples per second, per channel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="RawAudioFormat.js.html">RawAudioFormat.js</a>, <a href="RawAudioFormat.js.html#line55">line 55</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".parse"><span class="type-signature">(static) </span>parse<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {<a href="Guacamole.RawAudioFormat.html">Guacamole.RawAudioFormat</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Parses the given mimetype, returning a new Guacamole.RawAudioFormat
+which describes the type of raw audio data represented by that mimetype. If
+the mimetype is not a supported raw audio data mimetype, null is returned.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The audio mimetype to parse.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="RawAudioFormat.js.html">RawAudioFormat.js</a>, <a href="RawAudioFormat.js.html#line72">line 72</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A new Guacamole.RawAudioFormat which describes the type of raw
+    audio data represented by the given mimetype, or null if the given
+    mimetype is not supported.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.RawAudioFormat.html">Guacamole.RawAudioFormat</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.RawAudioPlayer.html b/doc/1.1.0/guacamole-common-js/Guacamole.RawAudioPlayer.html
new file mode 100644
index 0000000..4947ce9
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.RawAudioPlayer.html
@@ -0,0 +1,628 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: RawAudioPlayer</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: RawAudioPlayer</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>RawAudioPlayer<span class="signature">(stream, mimetype)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="RawAudioPlayer"><span class="type-signature"></span>new RawAudioPlayer<span class="signature">(stream, mimetype)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Implementation of Guacamole.AudioPlayer providing support for raw PCM format
+audio. This player relies only on the Web Audio API and does not require any
+browser-level support for its audio formats.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole.InputStream to read audio data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the audio data in the provided stream, which must be a
+    "audio/L8" or "audio/L16" mimetype with necessary parameters, such as:
+    "audio/L16;rate=44100,channels=2".</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line123">line 123</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.AudioPlayer.html">Guacamole.AudioPlayer</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getSupportedTypes"><span class="type-signature">(static) </span>getSupportedTypes<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;String>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a list of all mimetypes supported by Guacamole.RawAudioPlayer. Only
+the core mimetypes themselves will be listed. Any mimetype parameters, even
+required ones, will not be included in the list. For example, "audio/L8" is
+a raw audio mimetype that may be supported, but it is invalid without
+additional parameters. Something like "audio/L8;rate=44100" would be valid,
+however (see https://tools.ietf.org/html/rfc4856).
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line493">line 493</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A list of all mimetypes supported by Guacamole.RawAudioPlayer, excluding
+    any parameters. If the necessary JavaScript APIs for playing raw audio
+    are absent, this list will be empty.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;String></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".isSupportedType"><span class="type-signature">(static) </span>isSupportedType<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Determines whether the given mimetype is supported by
+Guacamole.RawAudioPlayer.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype to check.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line470">line 470</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given mimetype is supported by Guacamole.RawAudioPlayer,
+    false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sync"><span class="type-signature"></span>sync<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Notifies this Guacamole.AudioPlayer that all audio up to the current
+point in time has been given via the underlying stream, and that any
+difference in time between queued audio data and the current time can be
+considered latency.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.AudioPlayer.html#sync">Guacamole.AudioPlayer#sync</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line38">line 38</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.RawAudioRecorder.html b/doc/1.1.0/guacamole-common-js/Guacamole.RawAudioRecorder.html
new file mode 100644
index 0000000..7e6c256
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.RawAudioRecorder.html
@@ -0,0 +1,804 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: RawAudioRecorder</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: RawAudioRecorder</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>RawAudioRecorder<span class="signature">(stream, mimetype)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="RawAudioRecorder"><span class="type-signature"></span>new RawAudioRecorder<span class="signature">(stream, mimetype)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Implementation of Guacamole.AudioRecorder providing support for raw PCM
+format audio. This recorder relies only on the Web Audio API and does not
+require any browser-level support for its audio formats.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole.OutputStream to write audio data to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the audio data to send along the provided stream, which
+    must be a "audio/L8" or "audio/L16" mimetype with necessary parameters,
+    such as: "audio/L16;rate=44100,channels=2".</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line134">line 134</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.AudioRecorder.html">Guacamole.AudioRecorder</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="~mediaStream"><span class="type-signature">(inner) </span>mediaStream<span class="type-signature"> :MediaStream</span></h4>
+
+
+
+
+<div class="description">
+    The audio stream provided by the browser, if allowed. If no stream has
+yet been received, this will be null.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">MediaStream</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line252">line 252</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getSupportedTypes"><span class="type-signature">(static) </span>getSupportedTypes<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;String>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a list of all mimetypes supported by Guacamole.RawAudioRecorder. Only
+the core mimetypes themselves will be listed. Any mimetype parameters, even
+required ones, will not be included in the list. For example, "audio/L8" is
+a raw audio mimetype that may be supported, but it is invalid without
+additional parameters. Something like "audio/L8;rate=44100" would be valid,
+however (see https://tools.ietf.org/html/rfc4856).
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line559">line 559</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A list of all mimetypes supported by Guacamole.RawAudioRecorder,
+    excluding any parameters. If the necessary JavaScript APIs for recording
+    raw audio are absent, this list will be empty.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;String></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".isSupportedType"><span class="type-signature">(static) </span>isSupportedType<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Determines whether the given mimetype is supported by
+Guacamole.RawAudioRecorder.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype to check.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line536">line 536</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given mimetype is supported by Guacamole.RawAudioRecorder,
+    false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onclose">onclose</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Callback which is invoked when the audio recording process has stopped
+and the underlying Guacamole stream has been closed normally. Audio will
+only resume recording if a new Guacamole.AudioRecorder is started. This
+Guacamole.AudioRecorder instance MAY NOT be reused.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.AudioRecorder.html#event:onclose">Guacamole.AudioRecorder#event:onclose</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Callback which is invoked when the audio recording process cannot
+continue due to an error, if it has started at all. The underlying
+Guacamole stream is automatically closed. Future attempts to record
+audio should not be made, and this Guacamole.AudioRecorder instance
+MAY NOT be reused.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.AudioRecorder.html#event:onerror">Guacamole.AudioRecorder#event:onerror</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line51">line 51</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.SessionRecording.html b/doc/1.1.0/guacamole-common-js/Guacamole.SessionRecording.html
new file mode 100644
index 0000000..12c7d7f
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.SessionRecording.html
@@ -0,0 +1,1705 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: SessionRecording</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: SessionRecording</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>SessionRecording<span class="signature">(tunnel)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="SessionRecording"><span class="type-signature"></span>new SessionRecording<span class="signature">(tunnel)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A recording of a Guacamole session. Given a <a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a>, the
+Guacamole.SessionRecording automatically handles incoming Guacamole
+instructions, storing them for playback. Playback of the recording may be
+controlled through function calls to the Guacamole.SessionRecording, even
+while the recording has not yet finished being created or downloaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>tunnel</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole.Tunnel from which the instructions of the recording should
+    be read.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line34">line 34</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connects the underlying tunnel, beginning download of the Guacamole
+session. Playback of the Guacamole session cannot occur until at least
+one frame worth of instructions has been downloaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send to the tunnel when connecting.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line480">line 480</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Disconnects the underlying tunnel, stopping further download of the
+Guacamole session.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line488">line 488</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getDisplay"><span class="type-signature"></span>getDisplay<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.Display.html">Guacamole.Display</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the underlying display of the Guacamole.Client used by this
+Guacamole.SessionRecording for playback. The display contains an Element
+which can be added to the DOM, causing the display (and thus playback of
+the recording) to become visible.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line502">line 502</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The underlying display of the Guacamole.Client used by this
+    Guacamole.SessionRecording for playback.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Display.html">Guacamole.Display</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getDuration"><span class="type-signature"></span>getDuration<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the duration of this recording, in milliseconds. If the
+recording is still being downloaded, this value will gradually increase.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line542">line 542</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The duration of this recording, in milliseconds.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getPosition"><span class="type-signature"></span>getPosition<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the current playback position within the recording, in
+milliseconds, where zero is the start of the recording.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line523">line 523</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The current playback position within the recording, in milliseconds.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isPlaying"><span class="type-signature"></span>isPlaying<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether playback is currently in progress.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line512">line 512</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if playback is currently in progress, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="pause"><span class="type-signature"></span>pause<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Pauses playback of the recording, if playback is currently in progress.
+If playback is not in progress, this function has no effect. If a seek
+operation is in progress, the seek is aborted. Playback is initially
+paused when a Guacamole.SessionRecording is created, and must be
+explicitly started through a call to play().
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line632">line 632</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="play"><span class="type-signature"></span>play<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Begins continuous playback of the recording downloaded thus far.
+Playback of the recording will continue until pause() is invoked or
+until no further frames exist. Playback is initially paused when a
+Guacamole.SessionRecording is created, and must be explicitly started
+through a call to this function. If playback is already in progress,
+this function has no effect. If a seek operation is in progress,
+playback resumes at the current position, and the seek is aborted as if
+completed.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line563">line 563</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="seek"><span class="type-signature"></span>seek<span class="signature">(position, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Seeks to the given position within the recording. If the recording is
+currently being played back, playback will continue after the seek is
+performed. If the recording is currently paused, playback will be
+paused after the seek is performed. If a seek operation is already in
+progress, that seek is first aborted. The seek operation will proceed
+asynchronously.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>position</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The position within the recording to seek to, in milliseconds.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>callback</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The callback to invoke once the seek operation has completed.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line600">line 600</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onpause">onpause</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever playback of the recording has been paused. This may
+happen when playback is explicitly paused with a call to pause(), or
+when playback is implicitly paused due to reaching the end of the
+recording.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line461">line 461</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onplay">onplay</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever playback of the recording has started.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line451">line 451</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onprogress">onprogress</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when new frames have become available while the recording is
+being downloaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>duration</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new duration of the recording, in milliseconds.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line444">line 444</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onseek">onseek</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the playback position within the recording changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>position</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new position within the recording, in milliseconds.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line470">line 470</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.StaticHTTPTunnel.html b/doc/1.1.0/guacamole-common-js/Guacamole.StaticHTTPTunnel.html
new file mode 100644
index 0000000..c42883e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.StaticHTTPTunnel.html
@@ -0,0 +1,1601 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: StaticHTTPTunnel</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: StaticHTTPTunnel</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>StaticHTTPTunnel<span class="signature">(url, crossDomain<span class="signature-attributes">opt</span>, extraTunnelHeaders<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="StaticHTTPTunnel"><span class="type-signature"></span>new StaticHTTPTunnel<span class="signature">(url, crossDomain<span class="signature-attributes">opt</span>, extraTunnelHeaders<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Guacamole Tunnel which replays a Guacamole protocol dump from a static file
+received via HTTP. Instructions within the file are parsed and handled as
+quickly as possible, while the file is being downloaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+        <th>Default</th>
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>url</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                </td>
+            
+
+            <td class="description last">The URL of a Guacamole protocol dump.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>crossDomain</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                    false
+                
+                </td>
+            
+
+            <td class="description last">Whether tunnel requests will be cross-domain, and thus must use CORS
+    mechanisms and headers. By default, it is assumed that tunnel requests
+    will be made to the same domain.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>extraTunnelHeaders</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                    {}
+                
+                </td>
+            
+
+            <td class="description last">Key value pairs containing the header names and values of any additional
+    headers to be sent in tunnel requests. By default, no extra headers will
+    be added.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line1255">line 1255</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="receiveTimeout"><span class="type-signature"></span>receiveTimeout<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The maximum amount of time to wait for data to be received, in
+milliseconds. If data is not received within this amount of time,
+the tunnel is closed with an error. The default value is 15000.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#receiveTimeout">Guacamole.Tunnel#receiveTimeout</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line101">line 101</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="state"><span class="type-signature"></span>state<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current state of this tunnel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#state">Guacamole.Tunnel#state</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line92">line 92</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="unstableThreshold"><span class="type-signature"></span>unstableThreshold<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The amount of time to wait for data to be received before considering
+the connection to be unstable, in milliseconds. If data is not received
+within this amount of time, the tunnel status is updated to warn that
+the connection appears unresponsive and may close. The default value is
+1500.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#unstableThreshold">Guacamole.Tunnel#unstableThreshold</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line112">line 112</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="uuid"><span class="type-signature"></span>uuid<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The UUID uniquely identifying this tunnel. If not yet known, this will
+be null.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#uuid">Guacamole.Tunnel#uuid</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line120">line 120</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connect to the tunnel with the given optional data. This data is
+typically used for authentication. The format of data accepted is
+up to the tunnel implementation.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send to the tunnel when connecting.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#connect">Guacamole.Tunnel#connect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Disconnect from the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#disconnect">Guacamole.Tunnel#disconnect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line45">line 45</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isConnected"><span class="type-signature"></span>isConnected<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether this tunnel is currently connected.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#isConnected">Guacamole.Tunnel#isConnected</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line82">line 82</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if this tunnel is currently connected, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendMessage"><span class="type-signature"></span>sendMessage<span class="signature">(&hellip;elements)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Send the given message through the tunnel to the service on the other
+side. All messages are guaranteed to be received in the order sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>elements</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                    &lt;repeatable><br>
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The elements of the message to send to the service on the other side
+    of the tunnel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#sendMessage">Guacamole.Tunnel#sendMessage</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line55">line 55</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever an error is encountered by the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A status object which describes the
+                                 error.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onerror">Guacamole.Tunnel#event:onerror</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line129">line 129</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oninstruction">oninstruction</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every complete Guacamole instruction received, in order.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>opcode</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole instruction opcode.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parameters</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parameters provided for the instruction,
+                          if any.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:oninstruction">Guacamole.Tunnel#event:oninstruction</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line147">line 147</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onstatechange">onstatechange</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the state of the tunnel changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new state of the client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onstatechange">Guacamole.Tunnel#event:onstatechange</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line137">line 137</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Status.html b/doc/1.1.0/guacamole-common-js/Guacamole.Status.html
new file mode 100644
index 0000000..334cbb3
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Status.html
@@ -0,0 +1,596 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Status</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Status</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Status<span class="signature">(code, message<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Status"><span class="type-signature"></span>new Status<span class="signature">(code, message<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A Guacamole status. Each Guacamole status consists of a status code, defined
+by the protocol, and an optional human-readable message, usually only
+included for debugging convenience.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>code</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The Guacamole status code, as defined by Guacamole.Status.Code.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>message</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">An optional human-readable message.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Status.js.html">Status.js</a>, <a href="Status.js.html#line34">line 34</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".Code"><span class="type-signature">(static) </span>Code<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Enumeration of all Guacamole status codes.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Status.js.html">Status.js</a>, <a href="Status.js.html#line73">line 73</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="code"><span class="type-signature"></span>code<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The Guacamole status code.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Status.js.html">Status.js</a>, <a href="Status.js.html#line47">line 47</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+    <dt class="tag-see">See:</dt>
+    <dd class="tag-see">
+        <ul>
+            <li><a href="Guacamole.Status.html#.Code">Guacamole.Status.Code</a></li>
+        </ul>
+    </dd>
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="message"><span class="type-signature"></span>message<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    An arbitrary human-readable message associated with this status, if any.
+The human-readable message is not required, and is generally provided
+for debugging purposes only. For user feedback, it is better to translate
+the Guacamole status code into a message.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Status.js.html">Status.js</a>, <a href="Status.js.html#line57">line 57</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isError"><span class="type-signature"></span>isError<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether this status represents an error.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Status.js.html">Status.js</a>, <a href="Status.js.html#line64">line 64</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if this status represents an error, false
+                   otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.StringReader.html b/doc/1.1.0/guacamole-common-js/Guacamole.StringReader.html
new file mode 100644
index 0000000..977e62b
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.StringReader.html
@@ -0,0 +1,446 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: StringReader</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: StringReader</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>StringReader<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="StringReader"><span class="type-signature"></span>new StringReader<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A reader which automatically handles the given input stream, returning
+strictly text data. Note that this object will overwrite any installed event
+handlers on the given Guacamole.InputStream.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be read
+                                      from.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringReader.js.html">StringReader.js</a>, <a href="StringReader.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onend">onend</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once this stream is finished and no further data will be written.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringReader.js.html">StringReader.js</a>, <a href="StringReader.js.html#line165">line 165</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:ontext">ontext</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every blob of text data received.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>text</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data packet received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringReader.js.html">StringReader.js</a>, <a href="StringReader.js.html#line159">line 159</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.StringWriter.html b/doc/1.1.0/guacamole-common-js/Guacamole.StringWriter.html
new file mode 100644
index 0000000..6633ae5
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.StringWriter.html
@@ -0,0 +1,585 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: StringWriter</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: StringWriter</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>StringWriter<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="StringWriter"><span class="type-signature"></span>new StringWriter<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A writer which automatically writes to the given output stream with text
+data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be written
+                                       to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringWriter.js.html">StringWriter.js</a>, <a href="StringWriter.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendEnd"><span class="type-signature"></span>sendEnd<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Signals that no further text will be sent, effectively closing the
+stream.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringWriter.js.html">StringWriter.js</a>, <a href="StringWriter.js.html#line181">line 181</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendText"><span class="type-signature"></span>sendText<span class="signature">(text)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends the given text.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>text</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The text to send.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringWriter.js.html">StringWriter.js</a>, <a href="StringWriter.js.html#line172">line 172</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onack">onack</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired for received data, if acknowledged by the server.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The status of the operation.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringWriter.js.html">StringWriter.js</a>, <a href="StringWriter.js.html#line190">line 190</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Tunnel.html b/doc/1.1.0/guacamole-common-js/Guacamole.Tunnel.html
new file mode 100644
index 0000000..8b718cb
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Tunnel.html
@@ -0,0 +1,1535 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Tunnel</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Tunnel</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Tunnel<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Tunnel"><span class="type-signature"></span>new Tunnel<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Core object providing abstract communication for Guacamole. This object
+is a null implementation whose functions do nothing. Guacamole applications
+should use <a href="Guacamole.HTTPTunnel.html">Guacamole.HTTPTunnel</a> instead, or implement their own tunnel based
+on this one.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+    <dt class="tag-see">See:</dt>
+    <dd class="tag-see">
+        <ul>
+            <li><a href="Guacamole.HTTPTunnel.html">Guacamole.HTTPTunnel</a></li>
+        </ul>
+    </dd>
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".INTERNAL_DATA_OPCODE"><span class="type-signature">(static, constant) </span>INTERNAL_DATA_OPCODE<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The Guacamole protocol instruction opcode reserved for arbitrary internal
+use by tunnel implementations. The value of this opcode is guaranteed to be
+the empty string (""). Tunnel implementations may use this opcode for any
+purpose. It is currently used by the HTTP tunnel to mark the end of the HTTP
+response, and by the WebSocket tunnel to transmit the tunnel UUID and send
+connection stability test pings/responses.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line162">line 162</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".State"><span class="type-signature">(static) </span>State<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    All possible tunnel states.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line167">line 167</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="receiveTimeout"><span class="type-signature"></span>receiveTimeout<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The maximum amount of time to wait for data to be received, in
+milliseconds. If data is not received within this amount of time,
+the tunnel is closed with an error. The default value is 15000.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line101">line 101</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="state"><span class="type-signature"></span>state<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current state of this tunnel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line92">line 92</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="unstableThreshold"><span class="type-signature"></span>unstableThreshold<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The amount of time to wait for data to be received before considering
+the connection to be unstable, in milliseconds. If data is not received
+within this amount of time, the tunnel status is updated to warn that
+the connection appears unresponsive and may close. The default value is
+1500.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line112">line 112</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="uuid"><span class="type-signature"></span>uuid<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The UUID uniquely identifying this tunnel. If not yet known, this will
+be null.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line120">line 120</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connect to the tunnel with the given optional data. This data is
+typically used for authentication. The format of data accepted is
+up to the tunnel implementation.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send to the tunnel when connecting.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Disconnect from the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line45">line 45</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isConnected"><span class="type-signature"></span>isConnected<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether this tunnel is currently connected.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line82">line 82</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if this tunnel is currently connected, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendMessage"><span class="type-signature"></span>sendMessage<span class="signature">(&hellip;elements)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Send the given message through the tunnel to the service on the other
+side. All messages are guaranteed to be received in the order sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>elements</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                    &lt;repeatable><br>
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The elements of the message to send to the service on the other side
+    of the tunnel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line55">line 55</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever an error is encountered by the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A status object which describes the
+                                 error.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line129">line 129</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oninstruction">oninstruction</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every complete Guacamole instruction received, in order.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>opcode</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole instruction opcode.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parameters</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parameters provided for the instruction,
+                          if any.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line147">line 147</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onstatechange">onstatechange</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the state of the tunnel changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new state of the client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line137">line 137</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.VideoPlayer.html b/doc/1.1.0/guacamole-common-js/Guacamole.VideoPlayer.html
new file mode 100644
index 0000000..c90c744
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.VideoPlayer.html
@@ -0,0 +1,746 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: VideoPlayer</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: VideoPlayer</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>VideoPlayer<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="VideoPlayer"><span class="type-signature"></span>new VideoPlayer<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Abstract video player which accepts, queues and plays back arbitrary video
+data. It is up to implementations of this class to provide some means of
+handling a provided Guacamole.InputStream and rendering the received data to
+the provided Guacamole.Display.VisibleLayer. Data received along the
+provided stream is to be played back immediately.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="VideoPlayer.js.html">VideoPlayer.js</a>, <a href="VideoPlayer.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getInstance"><span class="type-signature">(static) </span>getInstance<span class="signature">(stream, layer, mimetype)</span><span class="type-signature"> &rarr; {<a href="Guacamole.VideoPlayer.html">Guacamole.VideoPlayer</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns an instance of Guacamole.VideoPlayer providing support for the given
+video format. If support for the given video format is not available, null
+is returned.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole.InputStream to read video data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination layer in which this Guacamole.VideoPlayer should play
+    the received video data.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the video data in the provided stream.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="VideoPlayer.js.html">VideoPlayer.js</a>, <a href="VideoPlayer.js.html#line103">line 103</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A Guacamole.VideoPlayer instance supporting the given mimetype and
+    reading from the given stream, or null if support for the given mimetype
+    is absent.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.VideoPlayer.html">Guacamole.VideoPlayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getSupportedTypes"><span class="type-signature">(static) </span>getSupportedTypes<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;String>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a list of all mimetypes supported by any built-in
+Guacamole.VideoPlayer, in rough order of priority. Beware that only the core
+mimetypes themselves will be listed. Any mimetype parameters, even required
+ones, will not be included in the list.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="VideoPlayer.js.html">VideoPlayer.js</a>, <a href="VideoPlayer.js.html#line75">line 75</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A list of all mimetypes supported by any built-in Guacamole.VideoPlayer,
+    excluding any parameters.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;String></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".isSupportedType"><span class="type-signature">(static) </span>isSupportedType<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Determines whether the given mimetype is supported by any built-in
+implementation of Guacamole.VideoPlayer, and thus will be properly handled
+by Guacamole.VideoPlayer.getInstance().
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype to check.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="VideoPlayer.js.html">VideoPlayer.js</a>, <a href="VideoPlayer.js.html#line57">line 57</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given mimetype is supported by any built-in
+    Guacamole.VideoPlayer, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sync"><span class="type-signature"></span>sync<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Notifies this Guacamole.VideoPlayer that all video up to the current
+point in time has been given via the underlying stream, and that any
+difference in time between queued video data and the current time can be
+considered latency.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="VideoPlayer.js.html">VideoPlayer.js</a>, <a href="VideoPlayer.js.html#line39">line 39</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.WebSocketTunnel.html b/doc/1.1.0/guacamole-common-js/Guacamole.WebSocketTunnel.html
new file mode 100644
index 0000000..6aa6ef6
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.WebSocketTunnel.html
@@ -0,0 +1,1501 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: WebSocketTunnel</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: WebSocketTunnel</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>WebSocketTunnel<span class="signature">(tunnelURL)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="WebSocketTunnel"><span class="type-signature"></span>new WebSocketTunnel<span class="signature">(tunnelURL)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Guacamole Tunnel implemented over WebSocket via XMLHttpRequest.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>tunnelURL</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The URL of the WebSocket tunneling service.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line747">line 747</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="receiveTimeout"><span class="type-signature"></span>receiveTimeout<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The maximum amount of time to wait for data to be received, in
+milliseconds. If data is not received within this amount of time,
+the tunnel is closed with an error. The default value is 15000.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#receiveTimeout">Guacamole.Tunnel#receiveTimeout</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line101">line 101</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="state"><span class="type-signature"></span>state<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current state of this tunnel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#state">Guacamole.Tunnel#state</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line92">line 92</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="unstableThreshold"><span class="type-signature"></span>unstableThreshold<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The amount of time to wait for data to be received before considering
+the connection to be unstable, in milliseconds. If data is not received
+within this amount of time, the tunnel status is updated to warn that
+the connection appears unresponsive and may close. The default value is
+1500.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#unstableThreshold">Guacamole.Tunnel#unstableThreshold</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line112">line 112</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="uuid"><span class="type-signature"></span>uuid<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The UUID uniquely identifying this tunnel. If not yet known, this will
+be null.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#uuid">Guacamole.Tunnel#uuid</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line120">line 120</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connect to the tunnel with the given optional data. This data is
+typically used for authentication. The format of data accepted is
+up to the tunnel implementation.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send to the tunnel when connecting.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#connect">Guacamole.Tunnel#connect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Disconnect from the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#disconnect">Guacamole.Tunnel#disconnect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line45">line 45</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isConnected"><span class="type-signature"></span>isConnected<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether this tunnel is currently connected.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#isConnected">Guacamole.Tunnel#isConnected</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line82">line 82</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if this tunnel is currently connected, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendMessage"><span class="type-signature"></span>sendMessage<span class="signature">(&hellip;elements)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Send the given message through the tunnel to the service on the other
+side. All messages are guaranteed to be received in the order sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>elements</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                    &lt;repeatable><br>
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The elements of the message to send to the service on the other side
+    of the tunnel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#sendMessage">Guacamole.Tunnel#sendMessage</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line55">line 55</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever an error is encountered by the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A status object which describes the
+                                 error.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onerror">Guacamole.Tunnel#event:onerror</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line129">line 129</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oninstruction">oninstruction</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every complete Guacamole instruction received, in order.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>opcode</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole instruction opcode.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parameters</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parameters provided for the instruction,
+                          if any.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:oninstruction">Guacamole.Tunnel#event:oninstruction</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line147">line 147</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onstatechange">onstatechange</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the state of the tunnel changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new state of the client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onstatechange">Guacamole.Tunnel#event:onstatechange</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line137">line 137</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.html b/doc/1.1.0/guacamole-common-js/Guacamole.html
new file mode 100644
index 0000000..a2cd503
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.html
@@ -0,0 +1,322 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Namespace: Guacamole</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Namespace: Guacamole</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2>Guacamole</h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+            <div class="description">The namespace used by the Guacamole JavaScript API. Absolutely all classes
+defined by the Guacamole JavaScript API will be within this namespace.</div>
+        
+
+        
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Namespace.js.html">Namespace.js</a>, <a href="Namespace.js.html#line26">line 26</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+        
+    
+    </div>
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Classes</h3>
+
+        <dl>
+            <dt><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.BlobReader.html">BlobReader</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.BlobWriter.html">BlobWriter</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Client.html">Client</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.DataURIReader.html">DataURIReader</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Display.html">Display</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.InputSink.html">InputSink</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.InputStream.html">InputStream</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.IntegerPool.html">IntegerPool</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.JSONReader.html">JSONReader</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Keyboard.html">Keyboard</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Layer.html">Layer</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Mouse.html">Mouse</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Object.html">Object</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.OutputStream.html">OutputStream</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Parser.html">Parser</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.SessionRecording.html">SessionRecording</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Status.html">Status</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.StringReader.html">StringReader</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.StringWriter.html">StringWriter</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Tunnel.html">Tunnel</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Namespaces</h3>
+
+        <dl>
+            <dt><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".API_VERSION"><span class="type-signature">(static) </span>API_VERSION<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The unique ID of this version of the Guacamole JavaScript API. This ID will
+be the version string of the guacamole-common-js Maven project, and can be
+used in downstream applications as a sanity check that the proper version
+of the APIs is being used (in case an older version is cached, for example).
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Version.js.html">Version.js</a>, <a href="Version.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/InputSink.js.html b/doc/1.1.0/guacamole-common-js/InputSink.js.html
new file mode 100644
index 0000000..f4094e2
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/InputSink.js.html
@@ -0,0 +1,179 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: InputSink.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: InputSink.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A hidden input field which attempts to keep itself focused at all times,
+ * except when another input field has been intentionally focused, whether
+ * programatically or by the user. The actual underlying input field, returned
+ * by getElement(), may be used as a reliable source of keyboard-related events,
+ * particularly composition and input events which may require a focused input
+ * field to be dispatched at all.
+ *
+ * @constructor
+ */
+Guacamole.InputSink = function InputSink() {
+
+    /**
+     * Reference to this instance of Guacamole.InputSink.
+     *
+     * @private
+     * @type {Guacamole.InputSink}
+     */
+    var sink = this;
+
+    /**
+     * The underlying input field, styled to be invisible.
+     *
+     * @private
+     * @type {Element}
+     */
+    var field = document.createElement('textarea');
+    field.style.position   = 'fixed';
+    field.style.outline    = 'none';
+    field.style.border     = 'none';
+    field.style.margin     = '0';
+    field.style.padding    = '0';
+    field.style.height     = '0';
+    field.style.width      = '0';
+    field.style.left       = '0';
+    field.style.bottom     = '0';
+    field.style.resize     = 'none';
+    field.style.background = 'transparent';
+    field.style.color      = 'transparent';
+
+    // Keep field clear when modified via normal keypresses
+    field.addEventListener("keypress", function clearKeypress(e) {
+        field.value = '';
+    }, false);
+
+    // Keep field clear when modofied via composition events
+    field.addEventListener("compositionend", function clearCompletedComposition(e) {
+        if (e.data)
+            field.value = '';
+    }, false);
+
+    // Keep field clear when modofied via input events
+    field.addEventListener("input", function clearCompletedInput(e) {
+        if (e.data &amp;&amp; !e.isComposing)
+            field.value = '';
+    }, false);
+
+    // Whenever focus is gained, automatically click to ensure cursor is
+    // actually placed within the field (the field may simply be highlighted or
+    // outlined otherwise)
+    field.addEventListener("focus", function focusReceived() {
+        window.setTimeout(function deferRefocus() {
+            field.click();
+            field.select();
+        }, 0);
+    }, true);
+
+    /**
+     * Attempts to focus the underlying input field. The focus attempt occurs
+     * asynchronously, and may silently fail depending on browser restrictions.
+     */
+    this.focus = function focus() {
+        window.setTimeout(function deferRefocus() {
+            field.focus(); // Focus must be deferred to work reliably across browsers
+        }, 0);
+    };
+
+    /**
+     * Returns the underlying input field. This input field MUST be manually
+     * added to the DOM for the Guacamole.InputSink to have any effect.
+     *
+     * @returns {Element}
+     */
+    this.getElement = function getElement() {
+        return field;
+    };
+
+    // Automatically refocus input sink if part of DOM
+    document.addEventListener("keydown", function refocusSink(e) {
+
+        // Do not refocus if focus is on an input field
+        var focused = document.activeElement;
+        if (focused &amp;&amp; focused !== document.body) {
+
+            // Only consider focused input fields which are actually visible
+            var rect = focused.getBoundingClientRect();
+            if (rect.left + rect.width > 0 &amp;&amp; rect.top + rect.height > 0)
+                return;
+
+        }
+
+        // Refocus input sink instead of handling click
+        sink.focus();
+
+    }, true);
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/InputStream.js.html b/doc/1.1.0/guacamole-common-js/InputStream.js.html
new file mode 100644
index 0000000..31206c0
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/InputStream.js.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: InputStream.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: InputStream.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * An input stream abstraction used by the Guacamole client to facilitate
+ * transfer of files or other binary data.
+ * 
+ * @constructor
+ * @param {Guacamole.Client} client The client owning this stream.
+ * @param {Number} index The index of this stream.
+ */
+Guacamole.InputStream = function(client, index) {
+
+    /**
+     * Reference to this stream.
+     * @private
+     */
+    var guac_stream = this;
+
+    /**
+     * The index of this stream.
+     * @type {Number}
+     */
+    this.index = index;
+
+    /**
+     * Called when a blob of data is received.
+     * 
+     * @event
+     * @param {String} data The received base64 data.
+     */
+    this.onblob = null;
+
+    /**
+     * Called when this stream is closed.
+     * 
+     * @event
+     */
+    this.onend = null;
+
+    /**
+     * Acknowledges the receipt of a blob.
+     * 
+     * @param {String} message A human-readable message describing the error
+     *                         or status.
+     * @param {Number} code The error code, if any, or 0 for success.
+     */
+    this.sendAck = function(message, code) {
+        client.sendAck(guac_stream.index, message, code);
+    };
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/IntegerPool.js.html b/doc/1.1.0/guacamole-common-js/IntegerPool.js.html
new file mode 100644
index 0000000..c82477a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/IntegerPool.js.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: IntegerPool.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: IntegerPool.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Integer pool which returns consistently increasing integers while integers
+ * are in use, and previously-used integers when possible.
+ * @constructor 
+ */
+Guacamole.IntegerPool = function() {
+
+    /**
+     * Reference to this integer pool.
+     *
+     * @private
+     */
+    var guac_pool = this;
+
+    /**
+     * Array of available integers.
+     *
+     * @private
+     * @type {Number[]}
+     */
+    var pool = [];
+
+    /**
+     * The next integer to return if no more integers remain.
+     * @type {Number}
+     */
+    this.next_int = 0;
+
+    /**
+     * Returns the next available integer in the pool. If possible, a previously
+     * used integer will be returned.
+     * 
+     * @return {Number} The next available integer.
+     */
+    this.next = function() {
+
+        // If free'd integers exist, return one of those
+        if (pool.length > 0)
+            return pool.shift();
+
+        // Otherwise, return a new integer
+        return guac_pool.next_int++;
+
+    };
+
+    /**
+     * Frees the given integer, allowing it to be reused.
+     * 
+     * @param {Number} integer The integer to free.
+     */
+    this.free = function(integer) {
+        pool.push(integer);
+    };
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/JSONReader.js.html b/doc/1.1.0/guacamole-common-js/JSONReader.js.html
new file mode 100644
index 0000000..e23a430
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/JSONReader.js.html
@@ -0,0 +1,165 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: JSONReader.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: JSONReader.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A reader which automatically handles the given input stream, assembling all
+ * received blobs into a JavaScript object by appending them to each other, in
+ * order, and decoding the result as JSON. Note that this object will overwrite
+ * any installed event handlers on the given Guacamole.InputStream.
+ * 
+ * @constructor
+ * @param {Guacamole.InputStream} stream
+ *     The stream that JSON will be read from.
+ */
+Guacamole.JSONReader = function guacamoleJSONReader(stream) {
+
+    /**
+     * Reference to this Guacamole.JSONReader.
+     *
+     * @private
+     * @type {Guacamole.JSONReader}
+     */
+    var guacReader = this;
+
+    /**
+     * Wrapped Guacamole.StringReader.
+     *
+     * @private
+     * @type {Guacamole.StringReader}
+     */
+    var stringReader = new Guacamole.StringReader(stream);
+
+    /**
+     * All JSON read thus far.
+     *
+     * @private
+     * @type {String}
+     */
+    var json = '';
+
+    /**
+     * Returns the current length of this Guacamole.JSONReader, in characters.
+     *
+     * @return {Number}
+     *     The current length of this Guacamole.JSONReader.
+     */
+    this.getLength = function getLength() {
+        return json.length;
+    };
+
+    /**
+     * Returns the contents of this Guacamole.JSONReader as a JavaScript
+     * object.
+     *
+     * @return {Object}
+     *     The contents of this Guacamole.JSONReader, as parsed from the JSON
+     *     contents of the input stream.
+     */
+    this.getJSON = function getJSON() {
+        return JSON.parse(json);
+    };
+
+    // Append all received text
+    stringReader.ontext = function ontext(text) {
+
+        // Append received text
+        json += text;
+
+        // Call handler, if present
+        if (guacReader.onprogress)
+            guacReader.onprogress(text.length);
+
+    };
+
+    // Simply call onend when end received
+    stringReader.onend = function onend() {
+        if (guacReader.onend)
+            guacReader.onend();
+    };
+
+    /**
+     * Fired once for every blob of data received.
+     * 
+     * @event
+     * @param {Number} length
+     *     The number of characters received.
+     */
+    this.onprogress = null;
+
+    /**
+     * Fired once this stream is finished and no further data will be written.
+     *
+     * @event
+     */
+    this.onend = null;
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Keyboard.js.html b/doc/1.1.0/guacamole-common-js/Keyboard.js.html
new file mode 100644
index 0000000..52dc728
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Keyboard.js.html
@@ -0,0 +1,1564 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Keyboard.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Keyboard.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Provides cross-browser and cross-keyboard keyboard for a specific element.
+ * Browser and keyboard layout variation is abstracted away, providing events
+ * which represent keys as their corresponding X11 keysym.
+ * 
+ * @constructor
+ * @param {Element|Document} [element]
+ *    The Element to use to provide keyboard events. If omitted, at least one
+ *    Element must be manually provided through the listenTo() function for
+ *    the Guacamole.Keyboard instance to have any effect.
+ */
+Guacamole.Keyboard = function Keyboard(element) {
+
+    /**
+     * Reference to this Guacamole.Keyboard.
+     * @private
+     */
+    var guac_keyboard = this;
+
+    /**
+     * An integer value which uniquely identifies this Guacamole.Keyboard
+     * instance with respect to other Guacamole.Keyboard instances.
+     *
+     * @private
+     * @type {Number}
+     */
+    var guacKeyboardID = Guacamole.Keyboard._nextID++;
+
+    /**
+     * The name of the property which is added to event objects via markEvent()
+     * to note that they have already been handled by this Guacamole.Keyboard.
+     *
+     * @private
+     * @constant
+     * @type {String}
+     */
+    var EVENT_MARKER = '_GUAC_KEYBOARD_HANDLED_BY_' + guacKeyboardID;
+
+    /**
+     * Fired whenever the user presses a key with the element associated
+     * with this Guacamole.Keyboard in focus.
+     * 
+     * @event
+     * @param {Number} keysym The keysym of the key being pressed.
+     * @return {Boolean} true if the key event should be allowed through to the
+     *                   browser, false otherwise.
+     */
+    this.onkeydown = null;
+
+    /**
+     * Fired whenever the user releases a key with the element associated
+     * with this Guacamole.Keyboard in focus.
+     * 
+     * @event
+     * @param {Number} keysym The keysym of the key being released.
+     */
+    this.onkeyup = null;
+
+    /**
+     * Set of known platform-specific or browser-specific quirks which must be
+     * accounted for to properly interpret key events, even if the only way to
+     * reliably detect that quirk is to platform/browser-sniff.
+     *
+     * @private
+     * @type {Object.&lt;String, Boolean>}
+     */
+    var quirks = {
+
+        /**
+         * Whether keyup events are universally unreliable.
+         *
+         * @type {Boolean}
+         */
+        keyupUnreliable: false,
+
+        /**
+         * Whether the Alt key is actually a modifier for typable keys and is
+         * thus never used for keyboard shortcuts.
+         *
+         * @type {Boolean}
+         */
+        altIsTypableOnly: false,
+
+        /**
+         * Whether we can rely on receiving a keyup event for the Caps Lock
+         * key.
+         *
+         * @type {Boolean}
+         */
+        capsLockKeyupUnreliable: false
+
+    };
+
+    // Set quirk flags depending on platform/browser, if such information is
+    // available
+    if (navigator &amp;&amp; navigator.platform) {
+
+        // All keyup events are unreliable on iOS (sadly)
+        if (navigator.platform.match(/ipad|iphone|ipod/i))
+            quirks.keyupUnreliable = true;
+
+        // The Alt key on Mac is never used for keyboard shortcuts, and the
+        // Caps Lock key never dispatches keyup events
+        else if (navigator.platform.match(/^mac/i)) {
+            quirks.altIsTypableOnly = true;
+            quirks.capsLockKeyupUnreliable = true;
+        }
+
+    }
+
+    /**
+     * A key event having a corresponding timestamp. This event is non-specific.
+     * Its subclasses should be used instead when recording specific key
+     * events.
+     *
+     * @private
+     * @constructor
+     */
+    var KeyEvent = function() {
+
+        /**
+         * Reference to this key event.
+         */
+        var key_event = this;
+
+        /**
+         * An arbitrary timestamp in milliseconds, indicating this event's
+         * position in time relative to other events.
+         *
+         * @type {Number}
+         */
+        this.timestamp = new Date().getTime();
+
+        /**
+         * Whether the default action of this key event should be prevented.
+         *
+         * @type {Boolean}
+         */
+        this.defaultPrevented = false;
+
+        /**
+         * The keysym of the key associated with this key event, as determined
+         * by a best-effort guess using available event properties and keyboard
+         * state.
+         *
+         * @type {Number}
+         */
+        this.keysym = null;
+
+        /**
+         * Whether the keysym value of this key event is known to be reliable.
+         * If false, the keysym may still be valid, but it's only a best guess,
+         * and future key events may be a better source of information.
+         *
+         * @type {Boolean}
+         */
+        this.reliable = false;
+
+        /**
+         * Returns the number of milliseconds elapsed since this event was
+         * received.
+         *
+         * @return {Number} The number of milliseconds elapsed since this
+         *                  event was received.
+         */
+        this.getAge = function() {
+            return new Date().getTime() - key_event.timestamp;
+        };
+
+    };
+
+    /**
+     * Information related to the pressing of a key, which need not be a key
+     * associated with a printable character. The presence or absence of any
+     * information within this object is browser-dependent.
+     *
+     * @private
+     * @constructor
+     * @augments Guacamole.Keyboard.KeyEvent
+     * @param {Number} keyCode The JavaScript key code of the key pressed.
+     * @param {String} keyIdentifier The legacy DOM3 "keyIdentifier" of the key
+     *                               pressed, as defined at:
+     *                               http://www.w3.org/TR/2009/WD-DOM-Level-3-Events-20090908/#events-Events-KeyboardEvent
+     * @param {String} key The standard name of the key pressed, as defined at:
+     *                     http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+     * @param {Number} location The location on the keyboard corresponding to
+     *                          the key pressed, as defined at:
+     *                          http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+     */
+    var KeydownEvent = function(keyCode, keyIdentifier, key, location) {
+
+        // We extend KeyEvent
+        KeyEvent.apply(this);
+
+        /**
+         * The JavaScript key code of the key pressed.
+         *
+         * @type {Number}
+         */
+        this.keyCode = keyCode;
+
+        /**
+         * The legacy DOM3 "keyIdentifier" of the key pressed, as defined at:
+         * http://www.w3.org/TR/2009/WD-DOM-Level-3-Events-20090908/#events-Events-KeyboardEvent
+         *
+         * @type {String}
+         */
+        this.keyIdentifier = keyIdentifier;
+
+        /**
+         * The standard name of the key pressed, as defined at:
+         * http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+         * 
+         * @type {String}
+         */
+        this.key = key;
+
+        /**
+         * The location on the keyboard corresponding to the key pressed, as
+         * defined at:
+         * http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+         * 
+         * @type {Number}
+         */
+        this.location = location;
+
+        // If key is known from keyCode or DOM3 alone, use that
+        this.keysym =  keysym_from_key_identifier(key, location)
+                    || keysym_from_keycode(keyCode, location);
+
+        /**
+         * Whether the keyup following this keydown event is known to be
+         * reliable. If false, we cannot rely on the keyup event to occur.
+         *
+         * @type {Boolean}
+         */
+        this.keyupReliable = !quirks.keyupUnreliable;
+
+        // DOM3 and keyCode are reliable sources if the corresponding key is
+        // not a printable key
+        if (this.keysym &amp;&amp; !isPrintable(this.keysym))
+            this.reliable = true;
+
+        // Use legacy keyIdentifier as a last resort, if it looks sane
+        if (!this.keysym &amp;&amp; key_identifier_sane(keyCode, keyIdentifier))
+            this.keysym = keysym_from_key_identifier(keyIdentifier, location, guac_keyboard.modifiers.shift);
+
+        // If a key is pressed while meta is held down, the keyup will
+        // never be sent in Chrome (bug #108404)
+        if (guac_keyboard.modifiers.meta &amp;&amp; this.keysym !== 0xFFE7 &amp;&amp; this.keysym !== 0xFFE8)
+            this.keyupReliable = false;
+
+        // We cannot rely on receiving keyup for Caps Lock on certain platforms
+        else if (this.keysym === 0xFFE5 &amp;&amp; quirks.capsLockKeyupUnreliable)
+            this.keyupReliable = false;
+
+        // Determine whether default action for Alt+combinations must be prevented
+        var prevent_alt = !guac_keyboard.modifiers.ctrl &amp;&amp; !quirks.altIsTypableOnly;
+
+        // Determine whether default action for Ctrl+combinations must be prevented
+        var prevent_ctrl = !guac_keyboard.modifiers.alt;
+
+        // We must rely on the (potentially buggy) keyIdentifier if preventing
+        // the default action is important
+        if ((prevent_ctrl &amp;&amp; guac_keyboard.modifiers.ctrl)
+         || (prevent_alt  &amp;&amp; guac_keyboard.modifiers.alt)
+         || guac_keyboard.modifiers.meta
+         || guac_keyboard.modifiers.hyper)
+            this.reliable = true;
+
+        // Record most recently known keysym by associated key code
+        recentKeysym[keyCode] = this.keysym;
+
+    };
+
+    KeydownEvent.prototype = new KeyEvent();
+
+    /**
+     * Information related to the pressing of a key, which MUST be
+     * associated with a printable character. The presence or absence of any
+     * information within this object is browser-dependent.
+     *
+     * @private
+     * @constructor
+     * @augments Guacamole.Keyboard.KeyEvent
+     * @param {Number} charCode The Unicode codepoint of the character that
+     *                          would be typed by the key pressed.
+     */
+    var KeypressEvent = function(charCode) {
+
+        // We extend KeyEvent
+        KeyEvent.apply(this);
+
+        /**
+         * The Unicode codepoint of the character that would be typed by the
+         * key pressed.
+         *
+         * @type {Number}
+         */
+        this.charCode = charCode;
+
+        // Pull keysym from char code
+        this.keysym = keysym_from_charcode(charCode);
+
+        // Keypress is always reliable
+        this.reliable = true;
+
+    };
+
+    KeypressEvent.prototype = new KeyEvent();
+
+    /**
+     * Information related to the pressing of a key, which need not be a key
+     * associated with a printable character. The presence or absence of any
+     * information within this object is browser-dependent.
+     *
+     * @private
+     * @constructor
+     * @augments Guacamole.Keyboard.KeyEvent
+     * @param {Number} keyCode The JavaScript key code of the key released.
+     * @param {String} keyIdentifier The legacy DOM3 "keyIdentifier" of the key
+     *                               released, as defined at:
+     *                               http://www.w3.org/TR/2009/WD-DOM-Level-3-Events-20090908/#events-Events-KeyboardEvent
+     * @param {String} key The standard name of the key released, as defined at:
+     *                     http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+     * @param {Number} location The location on the keyboard corresponding to
+     *                          the key released, as defined at:
+     *                          http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+     */
+    var KeyupEvent = function(keyCode, keyIdentifier, key, location) {
+
+        // We extend KeyEvent
+        KeyEvent.apply(this);
+
+        /**
+         * The JavaScript key code of the key released.
+         *
+         * @type {Number}
+         */
+        this.keyCode = keyCode;
+
+        /**
+         * The legacy DOM3 "keyIdentifier" of the key released, as defined at:
+         * http://www.w3.org/TR/2009/WD-DOM-Level-3-Events-20090908/#events-Events-KeyboardEvent
+         *
+         * @type {String}
+         */
+        this.keyIdentifier = keyIdentifier;
+
+        /**
+         * The standard name of the key released, as defined at:
+         * http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+         * 
+         * @type {String}
+         */
+        this.key = key;
+
+        /**
+         * The location on the keyboard corresponding to the key released, as
+         * defined at:
+         * http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+         * 
+         * @type {Number}
+         */
+        this.location = location;
+
+        // If key is known from keyCode or DOM3 alone, use that
+        this.keysym =  keysym_from_keycode(keyCode, location)
+                    || keysym_from_key_identifier(key, location); // keyCode is still more reliable for keyup when dead keys are in use
+
+        // Fall back to the most recently pressed keysym associated with the
+        // keyCode if the inferred key doesn't seem to actually be pressed
+        if (!guac_keyboard.pressed[this.keysym])
+            this.keysym = recentKeysym[keyCode] || this.keysym;
+
+        // Keyup is as reliable as it will ever be
+        this.reliable = true;
+
+    };
+
+    KeyupEvent.prototype = new KeyEvent();
+
+    /**
+     * An array of recorded events, which can be instances of the private
+     * KeydownEvent, KeypressEvent, and KeyupEvent classes.
+     *
+     * @private
+     * @type {KeyEvent[]}
+     */
+    var eventLog = [];
+
+    /**
+     * Map of known JavaScript keycodes which do not map to typable characters
+     * to their X11 keysym equivalents.
+     * @private
+     */
+    var keycodeKeysyms = {
+        8:   [0xFF08], // backspace
+        9:   [0xFF09], // tab
+        12:  [0xFF0B, 0xFF0B, 0xFF0B, 0xFFB5], // clear       / KP 5
+        13:  [0xFF0D], // enter
+        16:  [0xFFE1, 0xFFE1, 0xFFE2], // shift
+        17:  [0xFFE3, 0xFFE3, 0xFFE4], // ctrl
+        18:  [0xFFE9, 0xFFE9, 0xFE03], // alt
+        19:  [0xFF13], // pause/break
+        20:  [0xFFE5], // caps lock
+        27:  [0xFF1B], // escape
+        32:  [0x0020], // space
+        33:  [0xFF55, 0xFF55, 0xFF55, 0xFFB9], // page up     / KP 9
+        34:  [0xFF56, 0xFF56, 0xFF56, 0xFFB3], // page down   / KP 3
+        35:  [0xFF57, 0xFF57, 0xFF57, 0xFFB1], // end         / KP 1
+        36:  [0xFF50, 0xFF50, 0xFF50, 0xFFB7], // home        / KP 7
+        37:  [0xFF51, 0xFF51, 0xFF51, 0xFFB4], // left arrow  / KP 4
+        38:  [0xFF52, 0xFF52, 0xFF52, 0xFFB8], // up arrow    / KP 8
+        39:  [0xFF53, 0xFF53, 0xFF53, 0xFFB6], // right arrow / KP 6
+        40:  [0xFF54, 0xFF54, 0xFF54, 0xFFB2], // down arrow  / KP 2
+        45:  [0xFF63, 0xFF63, 0xFF63, 0xFFB0], // insert      / KP 0
+        46:  [0xFFFF, 0xFFFF, 0xFFFF, 0xFFAE], // delete      / KP decimal
+        91:  [0xFFEB], // left window key (hyper_l)
+        92:  [0xFF67], // right window key (menu key?)
+        93:  null,     // select key
+        96:  [0xFFB0], // KP 0
+        97:  [0xFFB1], // KP 1
+        98:  [0xFFB2], // KP 2
+        99:  [0xFFB3], // KP 3
+        100: [0xFFB4], // KP 4
+        101: [0xFFB5], // KP 5
+        102: [0xFFB6], // KP 6
+        103: [0xFFB7], // KP 7
+        104: [0xFFB8], // KP 8
+        105: [0xFFB9], // KP 9
+        106: [0xFFAA], // KP multiply
+        107: [0xFFAB], // KP add
+        109: [0xFFAD], // KP subtract
+        110: [0xFFAE], // KP decimal
+        111: [0xFFAF], // KP divide
+        112: [0xFFBE], // f1
+        113: [0xFFBF], // f2
+        114: [0xFFC0], // f3
+        115: [0xFFC1], // f4
+        116: [0xFFC2], // f5
+        117: [0xFFC3], // f6
+        118: [0xFFC4], // f7
+        119: [0xFFC5], // f8
+        120: [0xFFC6], // f9
+        121: [0xFFC7], // f10
+        122: [0xFFC8], // f11
+        123: [0xFFC9], // f12
+        144: [0xFF7F], // num lock
+        145: [0xFF14], // scroll lock
+        225: [0xFE03]  // altgraph (iso_level3_shift)
+    };
+
+    /**
+     * Map of known JavaScript keyidentifiers which do not map to typable
+     * characters to their unshifted X11 keysym equivalents.
+     * @private
+     */
+    var keyidentifier_keysym = {
+        "Again": [0xFF66],
+        "AllCandidates": [0xFF3D],
+        "Alphanumeric": [0xFF30],
+        "Alt": [0xFFE9, 0xFFE9, 0xFE03],
+        "Attn": [0xFD0E],
+        "AltGraph": [0xFE03],
+        "ArrowDown": [0xFF54],
+        "ArrowLeft": [0xFF51],
+        "ArrowRight": [0xFF53],
+        "ArrowUp": [0xFF52],
+        "Backspace": [0xFF08],
+        "CapsLock": [0xFFE5],
+        "Cancel": [0xFF69],
+        "Clear": [0xFF0B],
+        "Convert": [0xFF21],
+        "Copy": [0xFD15],
+        "Crsel": [0xFD1C],
+        "CrSel": [0xFD1C],
+        "CodeInput": [0xFF37],
+        "Compose": [0xFF20],
+        "Control": [0xFFE3, 0xFFE3, 0xFFE4],
+        "ContextMenu": [0xFF67],
+        "Delete": [0xFFFF],
+        "Down": [0xFF54],
+        "End": [0xFF57],
+        "Enter": [0xFF0D],
+        "EraseEof": [0xFD06],
+        "Escape": [0xFF1B],
+        "Execute": [0xFF62],
+        "Exsel": [0xFD1D],
+        "ExSel": [0xFD1D],
+        "F1": [0xFFBE],
+        "F2": [0xFFBF],
+        "F3": [0xFFC0],
+        "F4": [0xFFC1],
+        "F5": [0xFFC2],
+        "F6": [0xFFC3],
+        "F7": [0xFFC4],
+        "F8": [0xFFC5],
+        "F9": [0xFFC6],
+        "F10": [0xFFC7],
+        "F11": [0xFFC8],
+        "F12": [0xFFC9],
+        "F13": [0xFFCA],
+        "F14": [0xFFCB],
+        "F15": [0xFFCC],
+        "F16": [0xFFCD],
+        "F17": [0xFFCE],
+        "F18": [0xFFCF],
+        "F19": [0xFFD0],
+        "F20": [0xFFD1],
+        "F21": [0xFFD2],
+        "F22": [0xFFD3],
+        "F23": [0xFFD4],
+        "F24": [0xFFD5],
+        "Find": [0xFF68],
+        "GroupFirst": [0xFE0C],
+        "GroupLast": [0xFE0E],
+        "GroupNext": [0xFE08],
+        "GroupPrevious": [0xFE0A],
+        "FullWidth": null,
+        "HalfWidth": null,
+        "HangulMode": [0xFF31],
+        "Hankaku": [0xFF29],
+        "HanjaMode": [0xFF34],
+        "Help": [0xFF6A],
+        "Hiragana": [0xFF25],
+        "HiraganaKatakana": [0xFF27],
+        "Home": [0xFF50],
+        "Hyper": [0xFFED, 0xFFED, 0xFFEE],
+        "Insert": [0xFF63],
+        "JapaneseHiragana": [0xFF25],
+        "JapaneseKatakana": [0xFF26],
+        "JapaneseRomaji": [0xFF24],
+        "JunjaMode": [0xFF38],
+        "KanaMode": [0xFF2D],
+        "KanjiMode": [0xFF21],
+        "Katakana": [0xFF26],
+        "Left": [0xFF51],
+        "Meta": [0xFFE7, 0xFFE7, 0xFFE8],
+        "ModeChange": [0xFF7E],
+        "NumLock": [0xFF7F],
+        "PageDown": [0xFF56],
+        "PageUp": [0xFF55],
+        "Pause": [0xFF13],
+        "Play": [0xFD16],
+        "PreviousCandidate": [0xFF3E],
+        "PrintScreen": [0xFF61],
+        "Redo": [0xFF66],
+        "Right": [0xFF53],
+        "RomanCharacters": null,
+        "Scroll": [0xFF14],
+        "Select": [0xFF60],
+        "Separator": [0xFFAC],
+        "Shift": [0xFFE1, 0xFFE1, 0xFFE2],
+        "SingleCandidate": [0xFF3C],
+        "Super": [0xFFEB, 0xFFEB, 0xFFEC],
+        "Tab": [0xFF09],
+        "UIKeyInputDownArrow": [0xFF54],
+        "UIKeyInputEscape": [0xFF1B],
+        "UIKeyInputLeftArrow": [0xFF51],
+        "UIKeyInputRightArrow": [0xFF53],
+        "UIKeyInputUpArrow": [0xFF52],
+        "Up": [0xFF52],
+        "Undo": [0xFF65],
+        "Win": [0xFFEB],
+        "Zenkaku": [0xFF28],
+        "ZenkakuHankaku": [0xFF2A]
+    };
+
+    /**
+     * All keysyms which should not repeat when held down.
+     * @private
+     */
+    var no_repeat = {
+        0xFE03: true, // ISO Level 3 Shift (AltGr)
+        0xFFE1: true, // Left shift
+        0xFFE2: true, // Right shift
+        0xFFE3: true, // Left ctrl 
+        0xFFE4: true, // Right ctrl 
+        0xFFE5: true, // Caps Lock
+        0xFFE7: true, // Left meta 
+        0xFFE8: true, // Right meta 
+        0xFFE9: true, // Left alt
+        0xFFEA: true, // Right alt
+        0xFFEB: true, // Left hyper
+        0xFFEC: true  // Right hyper
+    };
+
+    /**
+     * All modifiers and their states.
+     */
+    this.modifiers = new Guacamole.Keyboard.ModifierState();
+        
+    /**
+     * The state of every key, indexed by keysym. If a particular key is
+     * pressed, the value of pressed for that keysym will be true. If a key
+     * is not currently pressed, it will not be defined. 
+     */
+    this.pressed = {};
+
+    /**
+     * The state of every key, indexed by keysym, for strictly those keys whose
+     * status has been indirectly determined thorugh observation of other key
+     * events. If a particular key is implicitly pressed, the value of
+     * implicitlyPressed for that keysym will be true. If a key
+     * is not currently implicitly pressed (the key is not pressed OR the state
+     * of the key is explicitly known), it will not be defined.
+     *
+     * @private
+     * @tyle {Object.&lt;Number, Boolean>}
+     */
+    var implicitlyPressed = {};
+
+    /**
+     * The last result of calling the onkeydown handler for each key, indexed
+     * by keysym. This is used to prevent/allow default actions for key events,
+     * even when the onkeydown handler cannot be called again because the key
+     * is (theoretically) still pressed.
+     *
+     * @private
+     */
+    var last_keydown_result = {};
+
+    /**
+     * The keysym most recently associated with a given keycode when keydown
+     * fired. This object maps keycodes to keysyms.
+     *
+     * @private
+     * @type {Object.&lt;Number, Number>}
+     */
+    var recentKeysym = {};
+
+    /**
+     * Timeout before key repeat starts.
+     * @private
+     */
+    var key_repeat_timeout = null;
+
+    /**
+     * Interval which presses and releases the last key pressed while that
+     * key is still being held down.
+     * @private
+     */
+    var key_repeat_interval = null;
+
+    /**
+     * Given an array of keysyms indexed by location, returns the keysym
+     * for the given location, or the keysym for the standard location if
+     * undefined.
+     * 
+     * @private
+     * @param {Number[]} keysyms
+     *     An array of keysyms, where the index of the keysym in the array is
+     *     the location value.
+     *
+     * @param {Number} location
+     *     The location on the keyboard corresponding to the key pressed, as
+     *     defined at: http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+     */
+    var get_keysym = function get_keysym(keysyms, location) {
+
+        if (!keysyms)
+            return null;
+
+        return keysyms[location] || keysyms[0];
+    };
+
+    /**
+     * Returns true if the given keysym corresponds to a printable character,
+     * false otherwise.
+     *
+     * @param {Number} keysym
+     *     The keysym to check.
+     *
+     * @returns {Boolean}
+     *     true if the given keysym corresponds to a printable character,
+     *     false otherwise.
+     */
+    var isPrintable = function isPrintable(keysym) {
+
+        // Keysyms with Unicode equivalents are printable
+        return (keysym >= 0x00 &amp;&amp; keysym &lt;= 0xFF)
+            || (keysym &amp; 0xFFFF0000) === 0x01000000;
+
+    };
+
+    function keysym_from_key_identifier(identifier, location, shifted) {
+
+        if (!identifier)
+            return null;
+
+        var typedCharacter;
+
+        // If identifier is U+xxxx, decode Unicode character 
+        var unicodePrefixLocation = identifier.indexOf("U+");
+        if (unicodePrefixLocation >= 0) {
+            var hex = identifier.substring(unicodePrefixLocation+2);
+            typedCharacter = String.fromCharCode(parseInt(hex, 16));
+        }
+
+        // If single character and not keypad, use that as typed character
+        else if (identifier.length === 1 &amp;&amp; location !== 3)
+            typedCharacter = identifier;
+
+        // Otherwise, look up corresponding keysym
+        else
+            return get_keysym(keyidentifier_keysym[identifier], location);
+
+        // Alter case if necessary
+        if (shifted === true)
+            typedCharacter = typedCharacter.toUpperCase();
+        else if (shifted === false)
+            typedCharacter = typedCharacter.toLowerCase();
+
+        // Get codepoint
+        var codepoint = typedCharacter.charCodeAt(0);
+        return keysym_from_charcode(codepoint);
+
+    }
+
+    function isControlCharacter(codepoint) {
+        return codepoint &lt;= 0x1F || (codepoint >= 0x7F &amp;&amp; codepoint &lt;= 0x9F);
+    }
+
+    function keysym_from_charcode(codepoint) {
+
+        // Keysyms for control characters
+        if (isControlCharacter(codepoint)) return 0xFF00 | codepoint;
+
+        // Keysyms for ASCII chars
+        if (codepoint >= 0x0000 &amp;&amp; codepoint &lt;= 0x00FF)
+            return codepoint;
+
+        // Keysyms for Unicode
+        if (codepoint >= 0x0100 &amp;&amp; codepoint &lt;= 0x10FFFF)
+            return 0x01000000 | codepoint;
+
+        return null;
+
+    }
+
+    function keysym_from_keycode(keyCode, location) {
+        return get_keysym(keycodeKeysyms[keyCode], location);
+    }
+
+    /**
+     * Heuristically detects if the legacy keyIdentifier property of
+     * a keydown/keyup event looks incorrectly derived. Chrome, and
+     * presumably others, will produce the keyIdentifier by assuming
+     * the keyCode is the Unicode codepoint for that key. This is not
+     * correct in all cases.
+     *
+     * @private
+     * @param {Number} keyCode
+     *     The keyCode from a browser keydown/keyup event.
+     *
+     * @param {String} keyIdentifier
+     *     The legacy keyIdentifier from a browser keydown/keyup event.
+     *
+     * @returns {Boolean}
+     *     true if the keyIdentifier looks sane, false if the keyIdentifier
+     *     appears incorrectly derived or is missing entirely.
+     */
+    var key_identifier_sane = function key_identifier_sane(keyCode, keyIdentifier) {
+
+        // Missing identifier is not sane
+        if (!keyIdentifier)
+            return false;
+
+        // Assume non-Unicode keyIdentifier values are sane
+        var unicodePrefixLocation = keyIdentifier.indexOf("U+");
+        if (unicodePrefixLocation === -1)
+            return true;
+
+        // If the Unicode codepoint isn't identical to the keyCode,
+        // then the identifier is likely correct
+        var codepoint = parseInt(keyIdentifier.substring(unicodePrefixLocation+2), 16);
+        if (keyCode !== codepoint)
+            return true;
+
+        // The keyCodes for A-Z and 0-9 are actually identical to their
+        // Unicode codepoints
+        if ((keyCode >= 65 &amp;&amp; keyCode &lt;= 90) || (keyCode >= 48 &amp;&amp; keyCode &lt;= 57))
+            return true;
+
+        // The keyIdentifier does NOT appear sane
+        return false;
+
+    };
+
+    /**
+     * Marks a key as pressed, firing the keydown event if registered. Key
+     * repeat for the pressed key will start after a delay if that key is
+     * not a modifier. The return value of this function depends on the
+     * return value of the keydown event handler, if any.
+     * 
+     * @param {Number} keysym The keysym of the key to press.
+     * @return {Boolean} true if event should NOT be canceled, false otherwise.
+     */
+    this.press = function(keysym) {
+
+        // Don't bother with pressing the key if the key is unknown
+        if (keysym === null) return;
+
+        // Only press if released
+        if (!guac_keyboard.pressed[keysym]) {
+
+            // Mark key as pressed
+            guac_keyboard.pressed[keysym] = true;
+
+            // Send key event
+            if (guac_keyboard.onkeydown) {
+                var result = guac_keyboard.onkeydown(keysym);
+                last_keydown_result[keysym] = result;
+
+                // Stop any current repeat
+                window.clearTimeout(key_repeat_timeout);
+                window.clearInterval(key_repeat_interval);
+
+                // Repeat after a delay as long as pressed
+                if (!no_repeat[keysym])
+                    key_repeat_timeout = window.setTimeout(function() {
+                        key_repeat_interval = window.setInterval(function() {
+                            guac_keyboard.onkeyup(keysym);
+                            guac_keyboard.onkeydown(keysym);
+                        }, 50);
+                    }, 500);
+
+                return result;
+            }
+        }
+
+        // Return the last keydown result by default, resort to false if unknown
+        return last_keydown_result[keysym] || false;
+
+    };
+
+    /**
+     * Marks a key as released, firing the keyup event if registered.
+     * 
+     * @param {Number} keysym The keysym of the key to release.
+     */
+    this.release = function(keysym) {
+
+        // Only release if pressed
+        if (guac_keyboard.pressed[keysym]) {
+            
+            // Mark key as released
+            delete guac_keyboard.pressed[keysym];
+            delete implicitlyPressed[keysym];
+
+            // Stop repeat
+            window.clearTimeout(key_repeat_timeout);
+            window.clearInterval(key_repeat_interval);
+
+            // Send key event
+            if (keysym !== null &amp;&amp; guac_keyboard.onkeyup)
+                guac_keyboard.onkeyup(keysym);
+
+        }
+
+    };
+
+    /**
+     * Presses and releases the keys necessary to type the given string of
+     * text.
+     *
+     * @param {String} str
+     *     The string to type.
+     */
+    this.type = function type(str) {
+
+        // Press/release the key corresponding to each character in the string
+        for (var i = 0; i &lt; str.length; i++) {
+
+            // Determine keysym of current character
+            var codepoint = str.codePointAt ? str.codePointAt(i) : str.charCodeAt(i);
+            var keysym = keysym_from_charcode(codepoint);
+
+            // Press and release key for current character
+            guac_keyboard.press(keysym);
+            guac_keyboard.release(keysym);
+
+        }
+
+    };
+
+    /**
+     * Resets the state of this keyboard, releasing all keys, and firing keyup
+     * events for each released key.
+     */
+    this.reset = function() {
+
+        // Release all pressed keys
+        for (var keysym in guac_keyboard.pressed)
+            guac_keyboard.release(parseInt(keysym));
+
+        // Clear event log
+        eventLog = [];
+
+    };
+
+    /**
+     * Given the remote and local state of a particular key, resynchronizes the
+     * remote state of that key with the local state through pressing or
+     * releasing keysyms.
+     *
+     * @private
+     * @param {Boolean} remoteState
+     *     Whether the key is currently pressed remotely.
+     *
+     * @param {Boolean} localState
+     *     Whether the key is currently pressed remotely locally. If the state
+     *     of the key is not known, this may be undefined.
+     *
+     * @param {Number[]} keysyms
+     *     The keysyms which represent the key being updated.
+     *
+     * @param {KeyEvent} keyEvent
+     *     Guacamole's current best interpretation of the key event being
+     *     processed.
+     */
+    var updateModifierState = function updateModifierState(remoteState,
+        localState, keysyms, keyEvent) {
+
+        var i;
+
+        // Do not trust changes in modifier state for events directly involving
+        // that modifier: (1) the flag may erroneously be cleared despite
+        // another version of the same key still being held and (2) the change
+        // in flag may be due to the current event being processed, thus
+        // updating things here is at best redundant and at worst incorrect
+        if (keysyms.indexOf(keyEvent.keysym) !== -1)
+            return;
+
+        // Release all related keys if modifier is implicitly released
+        if (remoteState &amp;&amp; localState === false) {
+            for (i = 0; i &lt; keysyms.length; i++) {
+                guac_keyboard.release(keysyms[i]);
+            }
+        }
+
+        // Press if modifier is implicitly pressed
+        else if (!remoteState &amp;&amp; localState) {
+
+            // Verify that modifier flag isn't already pressed or already set
+            // due to another version of the same key being held down
+            for (i = 0; i &lt; keysyms.length; i++) {
+                if (guac_keyboard.pressed[keysyms[i]])
+                    return;
+            }
+
+            // Mark as implicitly pressed only if there is other information
+            // within the key event relating to a different key. Some
+            // platforms, such as iOS, will send essentially empty key events
+            // for modifier keys, using only the modifier flags to signal the
+            // identity of the key.
+            var keysym = keysyms[0];
+            if (keyEvent.keysym)
+                implicitlyPressed[keysym] = true;
+
+            guac_keyboard.press(keysym);
+
+        }
+
+    };
+
+    /**
+     * Given a keyboard event, updates the local modifier state and remote
+     * key state based on the modifier flags within the event. This function
+     * pays no attention to keycodes.
+     *
+     * @private
+     * @param {KeyboardEvent} e
+     *     The keyboard event containing the flags to update.
+     *
+     * @param {KeyEvent} keyEvent
+     *     Guacamole's current best interpretation of the key event being
+     *     processed.
+     */
+    var syncModifierStates = function syncModifierStates(e, keyEvent) {
+
+        // Get state
+        var state = Guacamole.Keyboard.ModifierState.fromKeyboardEvent(e);
+
+        // Resync state of alt
+        updateModifierState(guac_keyboard.modifiers.alt, state.alt, [
+            0xFFE9, // Left alt
+            0xFFEA, // Right alt
+            0xFE03  // AltGr
+        ], keyEvent);
+
+        // Resync state of shift
+        updateModifierState(guac_keyboard.modifiers.shift, state.shift, [
+            0xFFE1, // Left shift
+            0xFFE2  // Right shift
+        ], keyEvent);
+
+        // Resync state of ctrl
+        updateModifierState(guac_keyboard.modifiers.ctrl, state.ctrl, [
+            0xFFE3, // Left ctrl
+            0xFFE4  // Right ctrl
+        ], keyEvent);
+
+        // Resync state of meta
+        updateModifierState(guac_keyboard.modifiers.meta, state.meta, [
+            0xFFE7, // Left meta
+            0xFFE8  // Right meta
+        ], keyEvent);
+
+        // Resync state of hyper
+        updateModifierState(guac_keyboard.modifiers.hyper, state.hyper, [
+            0xFFEB, // Left hyper
+            0xFFEC  // Right hyper
+        ], keyEvent);
+
+        // Update state
+        guac_keyboard.modifiers = state;
+
+    };
+
+    /**
+     * Returns whether all currently pressed keys were implicitly pressed. A
+     * key is implicitly pressed if its status was inferred indirectly from
+     * inspection of other key events.
+     *
+     * @private
+     * @returns {Boolean}
+     *     true if all currently pressed keys were implicitly pressed, false
+     *     otherwise.
+     */
+    var isStateImplicit = function isStateImplicit() {
+
+        for (var keysym in guac_keyboard.pressed) {
+            if (!implicitlyPressed[keysym])
+                return false;
+        }
+
+        return true;
+
+    };
+
+    /**
+     * Reads through the event log, removing events from the head of the log
+     * when the corresponding true key presses are known (or as known as they
+     * can be).
+     * 
+     * @private
+     * @return {Boolean} Whether the default action of the latest event should
+     *                   be prevented.
+     */
+    function interpret_events() {
+
+        // Do not prevent default if no event could be interpreted
+        var handled_event = interpret_event();
+        if (!handled_event)
+            return false;
+
+        // Interpret as much as possible
+        var last_event;
+        do {
+            last_event = handled_event;
+            handled_event = interpret_event();
+        } while (handled_event !== null);
+
+        // Reset keyboard state if we cannot expect to receive any further
+        // keyup events
+        if (isStateImplicit())
+            guac_keyboard.reset();
+
+        return last_event.defaultPrevented;
+
+    }
+
+    /**
+     * Releases Ctrl+Alt, if both are currently pressed and the given keysym
+     * looks like a key that may require AltGr.
+     *
+     * @private
+     * @param {Number} keysym The key that was just pressed.
+     */
+    var release_simulated_altgr = function release_simulated_altgr(keysym) {
+
+        // Both Ctrl+Alt must be pressed if simulated AltGr is in use
+        if (!guac_keyboard.modifiers.ctrl || !guac_keyboard.modifiers.alt)
+            return;
+
+        // Assume [A-Z] never require AltGr
+        if (keysym >= 0x0041 &amp;&amp; keysym &lt;= 0x005A)
+            return;
+
+        // Assume [a-z] never require AltGr
+        if (keysym >= 0x0061 &amp;&amp; keysym &lt;= 0x007A)
+            return;
+
+        // Release Ctrl+Alt if the keysym is printable
+        if (keysym &lt;= 0xFF || (keysym &amp; 0xFF000000) === 0x01000000) {
+            guac_keyboard.release(0xFFE3); // Left ctrl 
+            guac_keyboard.release(0xFFE4); // Right ctrl 
+            guac_keyboard.release(0xFFE9); // Left alt
+            guac_keyboard.release(0xFFEA); // Right alt
+        }
+
+    };
+
+    /**
+     * Reads through the event log, interpreting the first event, if possible,
+     * and returning that event. If no events can be interpreted, due to a
+     * total lack of events or the need for more events, null is returned. Any
+     * interpreted events are automatically removed from the log.
+     * 
+     * @private
+     * @return {KeyEvent}
+     *     The first key event in the log, if it can be interpreted, or null
+     *     otherwise.
+     */
+    var interpret_event = function interpret_event() {
+
+        // Peek at first event in log
+        var first = eventLog[0];
+        if (!first)
+            return null;
+
+        // Keydown event
+        if (first instanceof KeydownEvent) {
+
+            var keysym = null;
+            var accepted_events = [];
+
+            // If event itself is reliable, no need to wait for other events
+            if (first.reliable) {
+                keysym = first.keysym;
+                accepted_events = eventLog.splice(0, 1);
+            }
+
+            // If keydown is immediately followed by a keypress, use the indicated character
+            else if (eventLog[1] instanceof KeypressEvent) {
+                keysym = eventLog[1].keysym;
+                accepted_events = eventLog.splice(0, 2);
+            }
+
+            // If keydown is immediately followed by anything else, then no
+            // keypress can possibly occur to clarify this event, and we must
+            // handle it now
+            else if (eventLog[1]) {
+                keysym = first.keysym;
+                accepted_events = eventLog.splice(0, 1);
+            }
+
+            // Fire a key press if valid events were found
+            if (accepted_events.length > 0) {
+
+                if (keysym) {
+
+                    // Fire event
+                    release_simulated_altgr(keysym);
+                    var defaultPrevented = !guac_keyboard.press(keysym);
+                    recentKeysym[first.keyCode] = keysym;
+
+                    // Release the key now if we cannot rely on the associated
+                    // keyup event
+                    if (!first.keyupReliable)
+                        guac_keyboard.release(keysym);
+
+                    // Record whether default was prevented
+                    for (var i=0; i&lt;accepted_events.length; i++)
+                        accepted_events[i].defaultPrevented = defaultPrevented;
+
+                }
+
+                return first;
+
+            }
+
+        } // end if keydown
+
+        // Keyup event
+        else if (first instanceof KeyupEvent &amp;&amp; !quirks.keyupUnreliable) {
+
+            // Release specific key if known
+            var keysym = first.keysym;
+            if (keysym) {
+                guac_keyboard.release(keysym);
+                delete recentKeysym[first.keyCode];
+                first.defaultPrevented = true;
+            }
+
+            // Otherwise, fall back to releasing all keys
+            else {
+                guac_keyboard.reset();
+                return first;
+            }
+
+            return eventLog.shift();
+
+        } // end if keyup
+
+        // Ignore any other type of event (keypress by itself is invalid, and
+        // unreliable keyup events should simply be dumped)
+        else
+            return eventLog.shift();
+
+        // No event interpreted
+        return null;
+
+    };
+
+    /**
+     * Returns the keyboard location of the key associated with the given
+     * keyboard event. The location differentiates key events which otherwise
+     * have the same keycode, such as left shift vs. right shift.
+     *
+     * @private
+     * @param {KeyboardEvent} e
+     *     A JavaScript keyboard event, as received through the DOM via a
+     *     "keydown", "keyup", or "keypress" handler.
+     *
+     * @returns {Number}
+     *     The location of the key event on the keyboard, as defined at:
+     *     http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+     */
+    var getEventLocation = function getEventLocation(e) {
+
+        // Use standard location, if possible
+        if ('location' in e)
+            return e.location;
+
+        // Failing that, attempt to use deprecated keyLocation
+        if ('keyLocation' in e)
+            return e.keyLocation;
+
+        // If no location is available, assume left side
+        return 0;
+
+    };
+
+    /**
+     * Attempts to mark the given Event as having been handled by this
+     * Guacamole.Keyboard. If the Event has already been marked as handled,
+     * false is returned.
+     *
+     * @param {Event} e
+     *     The Event to mark.
+     *
+     * @returns {Boolean}
+     *     true if the given Event was successfully marked, false if the given
+     *     Event was already marked.
+     */
+    var markEvent = function markEvent(e) {
+
+        // Fail if event is already marked
+        if (e[EVENT_MARKER])
+            return false;
+
+        // Mark event otherwise
+        e[EVENT_MARKER] = true;
+        return true;
+
+    };
+
+    /**
+     * Attaches event listeners to the given Element, automatically translating
+     * received key, input, and composition events into simple keydown/keyup
+     * events signalled through this Guacamole.Keyboard's onkeydown and
+     * onkeyup handlers.
+     *
+     * @param {Element|Document} element
+     *     The Element to attach event listeners to for the sake of handling
+     *     key or input events.
+     */
+    this.listenTo = function listenTo(element) {
+
+        // When key pressed
+        element.addEventListener("keydown", function(e) {
+
+            // Only intercept if handler set
+            if (!guac_keyboard.onkeydown) return;
+
+            // Ignore events which have already been handled
+            if (!markEvent(e)) return;
+
+            var keyCode;
+            if (window.event) keyCode = window.event.keyCode;
+            else if (e.which) keyCode = e.which;
+
+            // Fix modifier states
+            var keydownEvent = new KeydownEvent(keyCode, e.keyIdentifier, e.key, getEventLocation(e));
+            syncModifierStates(e, keydownEvent);
+
+            // Ignore (but do not prevent) the "composition" keycode sent by some
+            // browsers when an IME is in use (see: http://lists.w3.org/Archives/Public/www-dom/2010JulSep/att-0182/keyCode-spec.html)
+            if (keyCode === 229)
+                return;
+
+            // Log event
+            eventLog.push(keydownEvent);
+
+            // Interpret as many events as possible, prevent default if indicated
+            if (interpret_events())
+                e.preventDefault();
+
+        }, true);
+
+        // When key pressed
+        element.addEventListener("keypress", function(e) {
+
+            // Only intercept if handler set
+            if (!guac_keyboard.onkeydown &amp;&amp; !guac_keyboard.onkeyup) return;
+
+            // Ignore events which have already been handled
+            if (!markEvent(e)) return;
+
+            var charCode;
+            if (window.event) charCode = window.event.keyCode;
+            else if (e.which) charCode = e.which;
+
+            // Fix modifier states
+            var keypressEvent = new KeypressEvent(charCode);
+            syncModifierStates(e, keypressEvent);
+
+            // Log event
+            eventLog.push(keypressEvent);
+
+            // Interpret as many events as possible, prevent default if indicated
+            if (interpret_events())
+                e.preventDefault();
+
+        }, true);
+
+        // When key released
+        element.addEventListener("keyup", function(e) {
+
+            // Only intercept if handler set
+            if (!guac_keyboard.onkeyup) return;
+
+            // Ignore events which have already been handled
+            if (!markEvent(e)) return;
+
+            e.preventDefault();
+
+            var keyCode;
+            if (window.event) keyCode = window.event.keyCode;
+            else if (e.which) keyCode = e.which;
+
+            // Fix modifier states
+            var keyupEvent = new KeyupEvent(keyCode, e.keyIdentifier, e.key, getEventLocation(e));
+            syncModifierStates(e, keyupEvent);
+
+            // Log event, call for interpretation
+            eventLog.push(keyupEvent);
+            interpret_events();
+
+        }, true);
+
+        /**
+         * Handles the given "input" event, typing the data within the input text.
+         * If the event is complete (text is provided), handling of "compositionend"
+         * events is suspended, as such events may conflict with input events.
+         *
+         * @private
+         * @param {InputEvent} e
+         *     The "input" event to handle.
+         */
+        var handleInput = function handleInput(e) {
+
+            // Only intercept if handler set
+            if (!guac_keyboard.onkeydown &amp;&amp; !guac_keyboard.onkeyup) return;
+
+            // Ignore events which have already been handled
+            if (!markEvent(e)) return;
+
+            // Type all content written
+            if (e.data &amp;&amp; !e.isComposing) {
+                element.removeEventListener("compositionend", handleComposition, false);
+                guac_keyboard.type(e.data);
+            }
+
+        };
+
+        /**
+         * Handles the given "compositionend" event, typing the data within the
+         * composed text. If the event is complete (composed text is provided),
+         * handling of "input" events is suspended, as such events may conflict
+         * with composition events.
+         *
+         * @private
+         * @param {CompositionEvent} e
+         *     The "compositionend" event to handle.
+         */
+        var handleComposition = function handleComposition(e) {
+
+            // Only intercept if handler set
+            if (!guac_keyboard.onkeydown &amp;&amp; !guac_keyboard.onkeyup) return;
+
+            // Ignore events which have already been handled
+            if (!markEvent(e)) return;
+
+            // Type all content written
+            if (e.data) {
+                element.removeEventListener("input", handleInput, false);
+                guac_keyboard.type(e.data);
+            }
+
+        };
+
+        // Automatically type text entered into the wrapped field
+        element.addEventListener("input", handleInput, false);
+        element.addEventListener("compositionend", handleComposition, false);
+
+    };
+
+    // Listen to given element, if any
+    if (element)
+        guac_keyboard.listenTo(element);
+
+};
+
+/**
+ * The unique numerical identifier to assign to the next Guacamole.Keyboard
+ * instance.
+ *
+ * @private
+ * @type {Number}
+ */
+Guacamole.Keyboard._nextID = 0;
+
+/**
+ * The state of all supported keyboard modifiers.
+ * @constructor
+ */
+Guacamole.Keyboard.ModifierState = function() {
+    
+    /**
+     * Whether shift is currently pressed.
+     * @type {Boolean}
+     */
+    this.shift = false;
+    
+    /**
+     * Whether ctrl is currently pressed.
+     * @type {Boolean}
+     */
+    this.ctrl = false;
+    
+    /**
+     * Whether alt is currently pressed.
+     * @type {Boolean}
+     */
+    this.alt = false;
+    
+    /**
+     * Whether meta (apple key) is currently pressed.
+     * @type {Boolean}
+     */
+    this.meta = false;
+
+    /**
+     * Whether hyper (windows key) is currently pressed.
+     * @type {Boolean}
+     */
+    this.hyper = false;
+    
+};
+
+/**
+ * Returns the modifier state applicable to the keyboard event given.
+ * 
+ * @param {KeyboardEvent} e The keyboard event to read.
+ * @returns {Guacamole.Keyboard.ModifierState} The current state of keyboard
+ *                                             modifiers.
+ */
+Guacamole.Keyboard.ModifierState.fromKeyboardEvent = function(e) {
+    
+    var state = new Guacamole.Keyboard.ModifierState();
+
+    // Assign states from old flags
+    state.shift = e.shiftKey;
+    state.ctrl  = e.ctrlKey;
+    state.alt   = e.altKey;
+    state.meta  = e.metaKey;
+
+    // Use DOM3 getModifierState() for others
+    if (e.getModifierState) {
+        state.hyper = e.getModifierState("OS")
+                   || e.getModifierState("Super")
+                   || e.getModifierState("Hyper")
+                   || e.getModifierState("Win");
+    }
+
+    return state;
+    
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Layer.js.html b/doc/1.1.0/guacamole-common-js/Layer.js.html
new file mode 100644
index 0000000..b6aaeca
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Layer.js.html
@@ -0,0 +1,1029 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Layer.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Layer.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Abstract ordered drawing surface. Each Layer contains a canvas element and
+ * provides simple drawing instructions for drawing to that canvas element,
+ * however unlike the canvas element itself, drawing operations on a Layer are
+ * guaranteed to run in order, even if such an operation must wait for an image
+ * to load before completing.
+ * 
+ * @constructor
+ * 
+ * @param {Number} width The width of the Layer, in pixels. The canvas element
+ *                       backing this Layer will be given this width.
+ *                       
+ * @param {Number} height The height of the Layer, in pixels. The canvas element
+ *                        backing this Layer will be given this height.
+ */
+Guacamole.Layer = function(width, height) {
+
+    /**
+     * Reference to this Layer.
+     * @private
+     */
+    var layer = this;
+
+    /**
+     * The number of pixels the width or height of a layer must change before
+     * the underlying canvas is resized. The underlying canvas will be kept at
+     * dimensions which are integer multiples of this factor.
+     *
+     * @private
+     * @constant
+     * @type Number
+     */
+    var CANVAS_SIZE_FACTOR = 64;
+
+    /**
+     * The canvas element backing this Layer.
+     * @private
+     */
+    var canvas = document.createElement("canvas");
+
+    /**
+     * The 2D display context of the canvas element backing this Layer.
+     * @private
+     */
+    var context = canvas.getContext("2d");
+    context.save();
+
+    /**
+     * Whether the layer has not yet been drawn to. Once any draw operation
+     * which affects the underlying canvas is invoked, this flag will be set to
+     * false.
+     *
+     * @private
+     * @type Boolean
+     */
+    var empty = true;
+
+    /**
+     * Whether a new path should be started with the next path drawing
+     * operations.
+     * @private
+     */
+    var pathClosed = true;
+
+    /**
+     * The number of states on the state stack.
+     * 
+     * Note that there will ALWAYS be one element on the stack, but that
+     * element is not exposed. It is only used to reset the layer to its
+     * initial state.
+     * 
+     * @private
+     */
+    var stackSize = 0;
+
+    /**
+     * Map of all Guacamole channel masks to HTML5 canvas composite operation
+     * names. Not all channel mask combinations are currently implemented.
+     * @private
+     */
+    var compositeOperation = {
+     /* 0x0 NOT IMPLEMENTED */
+        0x1: "destination-in",
+        0x2: "destination-out",
+     /* 0x3 NOT IMPLEMENTED */
+        0x4: "source-in",
+     /* 0x5 NOT IMPLEMENTED */
+        0x6: "source-atop",
+     /* 0x7 NOT IMPLEMENTED */
+        0x8: "source-out",
+        0x9: "destination-atop",
+        0xA: "xor",
+        0xB: "destination-over",
+        0xC: "copy",
+     /* 0xD NOT IMPLEMENTED */
+        0xE: "source-over",
+        0xF: "lighter"
+    };
+
+    /**
+     * Resizes the canvas element backing this Layer. This function should only
+     * be used internally.
+     * 
+     * @private
+     * @param {Number} [newWidth=0]
+     *     The new width to assign to this Layer.
+     *
+     * @param {Number} [newHeight=0]
+     *     The new height to assign to this Layer.
+     */
+    var resize = function resize(newWidth, newHeight) {
+
+        // Default size to zero
+        newWidth = newWidth || 0;
+        newHeight = newHeight || 0;
+
+        // Calculate new dimensions of internal canvas
+        var canvasWidth  = Math.ceil(newWidth  / CANVAS_SIZE_FACTOR) * CANVAS_SIZE_FACTOR;
+        var canvasHeight = Math.ceil(newHeight / CANVAS_SIZE_FACTOR) * CANVAS_SIZE_FACTOR;
+
+        // Resize only if canvas dimensions are actually changing
+        if (canvas.width !== canvasWidth || canvas.height !== canvasHeight) {
+
+            // Copy old data only if relevant and non-empty
+            var oldData = null;
+            if (!empty &amp;&amp; canvas.width !== 0 &amp;&amp; canvas.height !== 0) {
+
+                // Create canvas and context for holding old data
+                oldData = document.createElement("canvas");
+                oldData.width = Math.min(layer.width, newWidth);
+                oldData.height = Math.min(layer.height, newHeight);
+
+                var oldDataContext = oldData.getContext("2d");
+
+                // Copy image data from current
+                oldDataContext.drawImage(canvas,
+                        0, 0, oldData.width, oldData.height,
+                        0, 0, oldData.width, oldData.height);
+
+            }
+
+            // Preserve composite operation
+            var oldCompositeOperation = context.globalCompositeOperation;
+
+            // Resize canvas
+            canvas.width = canvasWidth;
+            canvas.height = canvasHeight;
+
+            // Redraw old data, if any
+            if (oldData)
+                context.drawImage(oldData,
+                    0, 0, oldData.width, oldData.height,
+                    0, 0, oldData.width, oldData.height);
+
+            // Restore composite operation
+            context.globalCompositeOperation = oldCompositeOperation;
+
+            // Acknowledge reset of stack (happens on resize of canvas)
+            stackSize = 0;
+            context.save();
+
+        }
+
+        // If the canvas size is not changing, manually force state reset
+        else
+            layer.reset();
+
+        // Assign new layer dimensions
+        layer.width = newWidth;
+        layer.height = newHeight;
+
+    };
+
+    /**
+     * Given the X and Y coordinates of the upper-left corner of a rectangle
+     * and the rectangle's width and height, resize the backing canvas element
+     * as necessary to ensure that the rectangle fits within the canvas
+     * element's coordinate space. This function will only make the canvas
+     * larger. If the rectangle already fits within the canvas element's
+     * coordinate space, the canvas is left unchanged.
+     * 
+     * @private
+     * @param {Number} x The X coordinate of the upper-left corner of the
+     *                   rectangle to fit.
+     * @param {Number} y The Y coordinate of the upper-left corner of the
+     *                   rectangle to fit.
+     * @param {Number} w The width of the the rectangle to fit.
+     * @param {Number} h The height of the the rectangle to fit.
+     */
+    function fitRect(x, y, w, h) {
+        
+        // Calculate bounds
+        var opBoundX = w + x;
+        var opBoundY = h + y;
+        
+        // Determine max width
+        var resizeWidth;
+        if (opBoundX > layer.width)
+            resizeWidth = opBoundX;
+        else
+            resizeWidth = layer.width;
+
+        // Determine max height
+        var resizeHeight;
+        if (opBoundY > layer.height)
+            resizeHeight = opBoundY;
+        else
+            resizeHeight = layer.height;
+
+        // Resize if necessary
+        layer.resize(resizeWidth, resizeHeight);
+
+    }
+
+    /**
+     * Set to true if this Layer should resize itself to accomodate the
+     * dimensions of any drawing operation, and false (the default) otherwise.
+     * 
+     * Note that setting this property takes effect immediately, and thus may
+     * take effect on operations that were started in the past but have not
+     * yet completed. If you wish the setting of this flag to only modify
+     * future operations, you will need to make the setting of this flag an
+     * operation with sync().
+     * 
+     * @example
+     * // Set autosize to true for all future operations
+     * layer.sync(function() {
+     *     layer.autosize = true;
+     * });
+     * 
+     * @type {Boolean}
+     * @default false
+     */
+    this.autosize = false;
+
+    /**
+     * The current width of this layer.
+     * @type {Number}
+     */
+    this.width = width;
+
+    /**
+     * The current height of this layer.
+     * @type {Number}
+     */
+    this.height = height;
+
+    /**
+     * Returns the canvas element backing this Layer. Note that the dimensions
+     * of the canvas may not exactly match those of the Layer, as resizing a
+     * canvas while maintaining its state is an expensive operation.
+     *
+     * @returns {HTMLCanvasElement}
+     *     The canvas element backing this Layer.
+     */
+    this.getCanvas = function getCanvas() {
+        return canvas;
+    };
+
+    /**
+     * Returns a new canvas element containing the same image as this Layer.
+     * Unlike getCanvas(), the canvas element returned is guaranteed to have
+     * the exact same dimensions as the Layer.
+     *
+     * @returns {HTMLCanvasElement}
+     *     A new canvas element containing a copy of the image content this
+     *     Layer.
+     */
+    this.toCanvas = function toCanvas() {
+
+        // Create new canvas having same dimensions
+        var canvas = document.createElement('canvas');
+        canvas.width = layer.width;
+        canvas.height = layer.height;
+
+        // Copy image contents to new canvas
+        var context = canvas.getContext('2d');
+        context.drawImage(layer.getCanvas(), 0, 0);
+
+        return canvas;
+
+    };
+
+    /**
+     * Changes the size of this Layer to the given width and height. Resizing
+     * is only attempted if the new size provided is actually different from
+     * the current size.
+     * 
+     * @param {Number} newWidth The new width to assign to this Layer.
+     * @param {Number} newHeight The new height to assign to this Layer.
+     */
+    this.resize = function(newWidth, newHeight) {
+        if (newWidth !== layer.width || newHeight !== layer.height)
+            resize(newWidth, newHeight);
+    };
+
+    /**
+     * Draws the specified image at the given coordinates. The image specified
+     * must already be loaded.
+     * 
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     * @param {Image} image The image to draw. Note that this is an Image
+     *                      object - not a URL.
+     */
+    this.drawImage = function(x, y, image) {
+        if (layer.autosize) fitRect(x, y, image.width, image.height);
+        context.drawImage(image, x, y);
+        empty = false;
+    };
+
+    /**
+     * Transfer a rectangle of image data from one Layer to this Layer using the
+     * specified transfer function.
+     * 
+     * @param {Guacamole.Layer} srcLayer The Layer to copy image data from.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source Layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      Layer's coordinate space to copy data from.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     * @param {Function} transferFunction The transfer function to use to
+     *                                    transfer data from source to
+     *                                    destination.
+     */
+    this.transfer = function(srcLayer, srcx, srcy, srcw, srch, x, y, transferFunction) {
+
+        var srcCanvas = srcLayer.getCanvas();
+
+        // If entire rectangle outside source canvas, stop
+        if (srcx >= srcCanvas.width || srcy >= srcCanvas.height) return;
+
+        // Otherwise, clip rectangle to area
+        if (srcx + srcw > srcCanvas.width)
+            srcw = srcCanvas.width - srcx;
+
+        if (srcy + srch > srcCanvas.height)
+            srch = srcCanvas.height - srcy;
+
+        // Stop if nothing to draw.
+        if (srcw === 0 || srch === 0) return;
+
+        if (layer.autosize) fitRect(x, y, srcw, srch);
+
+        // Get image data from src and dst
+        var src = srcLayer.getCanvas().getContext("2d").getImageData(srcx, srcy, srcw, srch);
+        var dst = context.getImageData(x , y, srcw, srch);
+
+        // Apply transfer for each pixel
+        for (var i=0; i&lt;srcw*srch*4; i+=4) {
+
+            // Get source pixel environment
+            var src_pixel = new Guacamole.Layer.Pixel(
+                src.data[i],
+                src.data[i+1],
+                src.data[i+2],
+                src.data[i+3]
+            );
+                
+            // Get destination pixel environment
+            var dst_pixel = new Guacamole.Layer.Pixel(
+                dst.data[i],
+                dst.data[i+1],
+                dst.data[i+2],
+                dst.data[i+3]
+            );
+
+            // Apply transfer function
+            transferFunction(src_pixel, dst_pixel);
+
+            // Save pixel data
+            dst.data[i  ] = dst_pixel.red;
+            dst.data[i+1] = dst_pixel.green;
+            dst.data[i+2] = dst_pixel.blue;
+            dst.data[i+3] = dst_pixel.alpha;
+
+        }
+
+        // Draw image data
+        context.putImageData(dst, x, y);
+        empty = false;
+
+    };
+
+    /**
+     * Put a rectangle of image data from one Layer to this Layer directly
+     * without performing any alpha blending. Simply copy the data.
+     * 
+     * @param {Guacamole.Layer} srcLayer The Layer to copy image data from.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source Layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      Layer's coordinate space to copy data from.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     */
+    this.put = function(srcLayer, srcx, srcy, srcw, srch, x, y) {
+
+        var srcCanvas = srcLayer.getCanvas();
+
+        // If entire rectangle outside source canvas, stop
+        if (srcx >= srcCanvas.width || srcy >= srcCanvas.height) return;
+
+        // Otherwise, clip rectangle to area
+        if (srcx + srcw > srcCanvas.width)
+            srcw = srcCanvas.width - srcx;
+
+        if (srcy + srch > srcCanvas.height)
+            srch = srcCanvas.height - srcy;
+
+        // Stop if nothing to draw.
+        if (srcw === 0 || srch === 0) return;
+
+        if (layer.autosize) fitRect(x, y, srcw, srch);
+
+        // Get image data from src and dst
+        var src = srcLayer.getCanvas().getContext("2d").getImageData(srcx, srcy, srcw, srch);
+        context.putImageData(src, x, y);
+        empty = false;
+
+    };
+
+    /**
+     * Copy a rectangle of image data from one Layer to this Layer. This
+     * operation will copy exactly the image data that will be drawn once all
+     * operations of the source Layer that were pending at the time this
+     * function was called are complete. This operation will not alter the
+     * size of the source Layer even if its autosize property is set to true.
+     * 
+     * @param {Guacamole.Layer} srcLayer The Layer to copy image data from.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source Layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      Layer's coordinate space to copy data from.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     */
+    this.copy = function(srcLayer, srcx, srcy, srcw, srch, x, y) {
+
+        var srcCanvas = srcLayer.getCanvas();
+
+        // If entire rectangle outside source canvas, stop
+        if (srcx >= srcCanvas.width || srcy >= srcCanvas.height) return;
+
+        // Otherwise, clip rectangle to area
+        if (srcx + srcw > srcCanvas.width)
+            srcw = srcCanvas.width - srcx;
+
+        if (srcy + srch > srcCanvas.height)
+            srch = srcCanvas.height - srcy;
+
+        // Stop if nothing to draw.
+        if (srcw === 0 || srch === 0) return;
+
+        if (layer.autosize) fitRect(x, y, srcw, srch);
+        context.drawImage(srcCanvas, srcx, srcy, srcw, srch, x, y, srcw, srch);
+        empty = false;
+
+    };
+
+    /**
+     * Starts a new path at the specified point.
+     * 
+     * @param {Number} x The X coordinate of the point to draw.
+     * @param {Number} y The Y coordinate of the point to draw.
+     */
+    this.moveTo = function(x, y) {
+        
+        // Start a new path if current path is closed
+        if (pathClosed) {
+            context.beginPath();
+            pathClosed = false;
+        }
+        
+        if (layer.autosize) fitRect(x, y, 0, 0);
+        context.moveTo(x, y);
+
+    };
+
+    /**
+     * Add the specified line to the current path.
+     * 
+     * @param {Number} x The X coordinate of the endpoint of the line to draw.
+     * @param {Number} y The Y coordinate of the endpoint of the line to draw.
+     */
+    this.lineTo = function(x, y) {
+        
+        // Start a new path if current path is closed
+        if (pathClosed) {
+            context.beginPath();
+            pathClosed = false;
+        }
+        
+        if (layer.autosize) fitRect(x, y, 0, 0);
+        context.lineTo(x, y);
+        
+    };
+
+    /**
+     * Add the specified arc to the current path.
+     * 
+     * @param {Number} x The X coordinate of the center of the circle which
+     *                   will contain the arc.
+     * @param {Number} y The Y coordinate of the center of the circle which
+     *                   will contain the arc.
+     * @param {Number} radius The radius of the circle.
+     * @param {Number} startAngle The starting angle of the arc, in radians.
+     * @param {Number} endAngle The ending angle of the arc, in radians.
+     * @param {Boolean} negative Whether the arc should be drawn in order of
+     *                           decreasing angle.
+     */
+    this.arc = function(x, y, radius, startAngle, endAngle, negative) {
+        
+        // Start a new path if current path is closed
+        if (pathClosed) {
+            context.beginPath();
+            pathClosed = false;
+        }
+        
+        if (layer.autosize) fitRect(x, y, 0, 0);
+        context.arc(x, y, radius, startAngle, endAngle, negative);
+        
+    };
+
+    /**
+     * Starts a new path at the specified point.
+     * 
+     * @param {Number} cp1x The X coordinate of the first control point.
+     * @param {Number} cp1y The Y coordinate of the first control point.
+     * @param {Number} cp2x The X coordinate of the second control point.
+     * @param {Number} cp2y The Y coordinate of the second control point.
+     * @param {Number} x The X coordinate of the endpoint of the curve.
+     * @param {Number} y The Y coordinate of the endpoint of the curve.
+     */
+    this.curveTo = function(cp1x, cp1y, cp2x, cp2y, x, y) {
+        
+        // Start a new path if current path is closed
+        if (pathClosed) {
+            context.beginPath();
+            pathClosed = false;
+        }
+        
+        if (layer.autosize) fitRect(x, y, 0, 0);
+        context.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);
+        
+    };
+
+    /**
+     * Closes the current path by connecting the end point with the start
+     * point (if any) with a straight line.
+     */
+    this.close = function() {
+        context.closePath();
+        pathClosed = true;
+    };
+
+    /**
+     * Add the specified rectangle to the current path.
+     * 
+     * @param {Number} x The X coordinate of the upper-left corner of the
+     *                   rectangle to draw.
+     * @param {Number} y The Y coordinate of the upper-left corner of the
+     *                   rectangle to draw.
+     * @param {Number} w The width of the rectangle to draw.
+     * @param {Number} h The height of the rectangle to draw.
+     */
+    this.rect = function(x, y, w, h) {
+            
+        // Start a new path if current path is closed
+        if (pathClosed) {
+            context.beginPath();
+            pathClosed = false;
+        }
+        
+        if (layer.autosize) fitRect(x, y, w, h);
+        context.rect(x, y, w, h);
+        
+    };
+
+    /**
+     * Clip all future drawing operations by the current path. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as fillColor()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     */
+    this.clip = function() {
+
+        // Set new clipping region
+        context.clip();
+
+        // Path now implicitly closed
+        pathClosed = true;
+
+    };
+
+    /**
+     * Stroke the current path with the specified color. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {String} cap The line cap style. Can be "round", "square",
+     *                     or "butt".
+     * @param {String} join The line join style. Can be "round", "bevel",
+     *                      or "miter".
+     * @param {Number} thickness The line thickness in pixels.
+     * @param {Number} r The red component of the color to fill.
+     * @param {Number} g The green component of the color to fill.
+     * @param {Number} b The blue component of the color to fill.
+     * @param {Number} a The alpha component of the color to fill.
+     */
+    this.strokeColor = function(cap, join, thickness, r, g, b, a) {
+
+        // Stroke with color
+        context.lineCap = cap;
+        context.lineJoin = join;
+        context.lineWidth = thickness;
+        context.strokeStyle = "rgba(" + r + "," + g + "," + b + "," + a/255.0 + ")";
+        context.stroke();
+        empty = false;
+
+        // Path now implicitly closed
+        pathClosed = true;
+
+    };
+
+    /**
+     * Fills the current path with the specified color. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Number} r The red component of the color to fill.
+     * @param {Number} g The green component of the color to fill.
+     * @param {Number} b The blue component of the color to fill.
+     * @param {Number} a The alpha component of the color to fill.
+     */
+    this.fillColor = function(r, g, b, a) {
+
+        // Fill with color
+        context.fillStyle = "rgba(" + r + "," + g + "," + b + "," + a/255.0 + ")";
+        context.fill();
+        empty = false;
+
+        // Path now implicitly closed
+        pathClosed = true;
+
+    };
+
+    /**
+     * Stroke the current path with the image within the specified layer. The
+     * image data will be tiled infinitely within the stroke. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {String} cap The line cap style. Can be "round", "square",
+     *                     or "butt".
+     * @param {String} join The line join style. Can be "round", "bevel",
+     *                      or "miter".
+     * @param {Number} thickness The line thickness in pixels.
+     * @param {Guacamole.Layer} srcLayer The layer to use as a repeating pattern
+     *                                   within the stroke.
+     */
+    this.strokeLayer = function(cap, join, thickness, srcLayer) {
+
+        // Stroke with image data
+        context.lineCap = cap;
+        context.lineJoin = join;
+        context.lineWidth = thickness;
+        context.strokeStyle = context.createPattern(
+            srcLayer.getCanvas(),
+            "repeat"
+        );
+        context.stroke();
+        empty = false;
+
+        // Path now implicitly closed
+        pathClosed = true;
+
+    };
+
+    /**
+     * Fills the current path with the image within the specified layer. The
+     * image data will be tiled infinitely within the stroke. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Guacamole.Layer} srcLayer The layer to use as a repeating pattern
+     *                                   within the fill.
+     */
+    this.fillLayer = function(srcLayer) {
+
+        // Fill with image data 
+        context.fillStyle = context.createPattern(
+            srcLayer.getCanvas(),
+            "repeat"
+        );
+        context.fill();
+        empty = false;
+
+        // Path now implicitly closed
+        pathClosed = true;
+
+    };
+
+    /**
+     * Push current layer state onto stack.
+     */
+    this.push = function() {
+
+        // Save current state onto stack
+        context.save();
+        stackSize++;
+
+    };
+
+    /**
+     * Pop layer state off stack.
+     */
+    this.pop = function() {
+
+        // Restore current state from stack
+        if (stackSize > 0) {
+            context.restore();
+            stackSize--;
+        }
+
+    };
+
+    /**
+     * Reset the layer, clearing the stack, the current path, and any transform
+     * matrix.
+     */
+    this.reset = function() {
+
+        // Clear stack
+        while (stackSize > 0) {
+            context.restore();
+            stackSize--;
+        }
+
+        // Restore to initial state
+        context.restore();
+        context.save();
+
+        // Clear path
+        context.beginPath();
+        pathClosed = false;
+
+    };
+
+    /**
+     * Sets the given affine transform (defined with six values from the
+     * transform's matrix).
+     * 
+     * @param {Number} a The first value in the affine transform's matrix.
+     * @param {Number} b The second value in the affine transform's matrix.
+     * @param {Number} c The third value in the affine transform's matrix.
+     * @param {Number} d The fourth value in the affine transform's matrix.
+     * @param {Number} e The fifth value in the affine transform's matrix.
+     * @param {Number} f The sixth value in the affine transform's matrix.
+     */
+    this.setTransform = function(a, b, c, d, e, f) {
+        context.setTransform(
+            a, b, c,
+            d, e, f
+          /*0, 0, 1*/
+        );
+    };
+
+    /**
+     * Applies the given affine transform (defined with six values from the
+     * transform's matrix).
+     * 
+     * @param {Number} a The first value in the affine transform's matrix.
+     * @param {Number} b The second value in the affine transform's matrix.
+     * @param {Number} c The third value in the affine transform's matrix.
+     * @param {Number} d The fourth value in the affine transform's matrix.
+     * @param {Number} e The fifth value in the affine transform's matrix.
+     * @param {Number} f The sixth value in the affine transform's matrix.
+     */
+    this.transform = function(a, b, c, d, e, f) {
+        context.transform(
+            a, b, c,
+            d, e, f
+          /*0, 0, 1*/
+        );
+    };
+
+    /**
+     * Sets the channel mask for future operations on this Layer.
+     * 
+     * The channel mask is a Guacamole-specific compositing operation identifier
+     * with a single bit representing each of four channels (in order): source
+     * image where destination transparent, source where destination opaque,
+     * destination where source transparent, and destination where source
+     * opaque.
+     * 
+     * @param {Number} mask The channel mask for future operations on this
+     *                      Layer.
+     */
+    this.setChannelMask = function(mask) {
+        context.globalCompositeOperation = compositeOperation[mask];
+    };
+
+    /**
+     * Sets the miter limit for stroke operations using the miter join. This
+     * limit is the maximum ratio of the size of the miter join to the stroke
+     * width. If this ratio is exceeded, the miter will not be drawn for that
+     * joint of the path.
+     * 
+     * @param {Number} limit The miter limit for stroke operations using the
+     *                       miter join.
+     */
+    this.setMiterLimit = function(limit) {
+        context.miterLimit = limit;
+    };
+
+    // Initialize canvas dimensions
+    resize(width, height);
+
+    // Explicitly render canvas below other elements in the layer (such as
+    // child layers). Chrome and others may fail to render layers properly
+    // without this.
+    canvas.style.zIndex = -1;
+
+};
+
+/**
+ * Channel mask for the composite operation "rout".
+ */
+Guacamole.Layer.ROUT  = 0x2;
+
+/**
+ * Channel mask for the composite operation "atop".
+ */
+Guacamole.Layer.ATOP  = 0x6;
+
+/**
+ * Channel mask for the composite operation "xor".
+ */
+Guacamole.Layer.XOR   = 0xA;
+
+/**
+ * Channel mask for the composite operation "rover".
+ */
+Guacamole.Layer.ROVER = 0xB;
+
+/**
+ * Channel mask for the composite operation "over".
+ */
+Guacamole.Layer.OVER  = 0xE;
+
+/**
+ * Channel mask for the composite operation "plus".
+ */
+Guacamole.Layer.PLUS  = 0xF;
+
+/**
+ * Channel mask for the composite operation "rin".
+ * Beware that WebKit-based browsers may leave the contents of the destionation
+ * layer where the source layer is transparent, despite the definition of this
+ * operation.
+ */
+Guacamole.Layer.RIN   = 0x1;
+
+/**
+ * Channel mask for the composite operation "in".
+ * Beware that WebKit-based browsers may leave the contents of the destionation
+ * layer where the source layer is transparent, despite the definition of this
+ * operation.
+ */
+Guacamole.Layer.IN    = 0x4;
+
+/**
+ * Channel mask for the composite operation "out".
+ * Beware that WebKit-based browsers may leave the contents of the destionation
+ * layer where the source layer is transparent, despite the definition of this
+ * operation.
+ */
+Guacamole.Layer.OUT   = 0x8;
+
+/**
+ * Channel mask for the composite operation "ratop".
+ * Beware that WebKit-based browsers may leave the contents of the destionation
+ * layer where the source layer is transparent, despite the definition of this
+ * operation.
+ */
+Guacamole.Layer.RATOP = 0x9;
+
+/**
+ * Channel mask for the composite operation "src".
+ * Beware that WebKit-based browsers may leave the contents of the destionation
+ * layer where the source layer is transparent, despite the definition of this
+ * operation.
+ */
+Guacamole.Layer.SRC   = 0xC;
+
+/**
+ * Represents a single pixel of image data. All components have a minimum value
+ * of 0 and a maximum value of 255.
+ * 
+ * @constructor
+ * 
+ * @param {Number} r The red component of this pixel.
+ * @param {Number} g The green component of this pixel.
+ * @param {Number} b The blue component of this pixel.
+ * @param {Number} a The alpha component of this pixel.
+ */
+Guacamole.Layer.Pixel = function(r, g, b, a) {
+
+    /**
+     * The red component of this pixel, where 0 is the minimum value,
+     * and 255 is the maximum.
+     */
+    this.red   = r;
+
+    /**
+     * The green component of this pixel, where 0 is the minimum value,
+     * and 255 is the maximum.
+     */
+    this.green = g;
+
+    /**
+     * The blue component of this pixel, where 0 is the minimum value,
+     * and 255 is the maximum.
+     */
+    this.blue  = b;
+
+    /**
+     * The alpha component of this pixel, where 0 is the minimum value,
+     * and 255 is the maximum.
+     */
+    this.alpha = a;
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Mouse.js.html b/doc/1.1.0/guacamole-common-js/Mouse.js.html
new file mode 100644
index 0000000..51d4995
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Mouse.js.html
@@ -0,0 +1,1138 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Mouse.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Mouse.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Provides cross-browser mouse events for a given element. The events of
+ * the given element are automatically populated with handlers that translate
+ * mouse events into a non-browser-specific event provided by the
+ * Guacamole.Mouse instance.
+ * 
+ * @constructor
+ * @param {Element} element The Element to use to provide mouse events.
+ */
+Guacamole.Mouse = function(element) {
+
+    /**
+     * Reference to this Guacamole.Mouse.
+     * @private
+     */
+    var guac_mouse = this;
+
+    /**
+     * The number of mousemove events to require before re-enabling mouse
+     * event handling after receiving a touch event.
+     */
+    this.touchMouseThreshold = 3;
+
+    /**
+     * The minimum amount of pixels scrolled required for a single scroll button
+     * click.
+     */
+    this.scrollThreshold = 53;
+
+    /**
+     * The number of pixels to scroll per line.
+     */
+    this.PIXELS_PER_LINE = 18;
+
+    /**
+     * The number of pixels to scroll per page.
+     */
+    this.PIXELS_PER_PAGE = this.PIXELS_PER_LINE * 16;
+
+    /**
+     * The current mouse state. The properties of this state are updated when
+     * mouse events fire. This state object is also passed in as a parameter to
+     * the handler of any mouse events.
+     * 
+     * @type {Guacamole.Mouse.State}
+     */
+    this.currentState = new Guacamole.Mouse.State(
+        0, 0, 
+        false, false, false, false, false
+    );
+
+    /**
+     * Fired whenever the user presses a mouse button down over the element
+     * associated with this Guacamole.Mouse.
+     * 
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmousedown = null;
+
+    /**
+     * Fired whenever the user releases a mouse button down over the element
+     * associated with this Guacamole.Mouse.
+     * 
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmouseup = null;
+
+    /**
+     * Fired whenever the user moves the mouse over the element associated with
+     * this Guacamole.Mouse.
+     * 
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmousemove = null;
+
+    /**
+     * Fired whenever the mouse leaves the boundaries of the element associated
+     * with this Guacamole.Mouse.
+     * 
+     * @event
+     */
+	this.onmouseout = null;
+
+    /**
+     * Counter of mouse events to ignore. This decremented by mousemove, and
+     * while non-zero, mouse events will have no effect.
+     * @private
+     */
+    var ignore_mouse = 0;
+
+    /**
+     * Cumulative scroll delta amount. This value is accumulated through scroll
+     * events and results in scroll button clicks if it exceeds a certain
+     * threshold.
+     *
+     * @private
+     */
+    var scroll_delta = 0;
+
+    function cancelEvent(e) {
+        e.stopPropagation();
+        if (e.preventDefault) e.preventDefault();
+        e.returnValue = false;
+    }
+
+    // Block context menu so right-click gets sent properly
+    element.addEventListener("contextmenu", function(e) {
+        cancelEvent(e);
+    }, false);
+
+    element.addEventListener("mousemove", function(e) {
+
+        cancelEvent(e);
+
+        // If ignoring events, decrement counter
+        if (ignore_mouse) {
+            ignore_mouse--;
+            return;
+        }
+
+        guac_mouse.currentState.fromClientPosition(element, e.clientX, e.clientY);
+
+        if (guac_mouse.onmousemove)
+            guac_mouse.onmousemove(guac_mouse.currentState);
+
+    }, false);
+
+    element.addEventListener("mousedown", function(e) {
+
+        cancelEvent(e);
+
+        // Do not handle if ignoring events
+        if (ignore_mouse)
+            return;
+
+        switch (e.button) {
+            case 0:
+                guac_mouse.currentState.left = true;
+                break;
+            case 1:
+                guac_mouse.currentState.middle = true;
+                break;
+            case 2:
+                guac_mouse.currentState.right = true;
+                break;
+        }
+
+        if (guac_mouse.onmousedown)
+            guac_mouse.onmousedown(guac_mouse.currentState);
+
+    }, false);
+
+    element.addEventListener("mouseup", function(e) {
+
+        cancelEvent(e);
+
+        // Do not handle if ignoring events
+        if (ignore_mouse)
+            return;
+
+        switch (e.button) {
+            case 0:
+                guac_mouse.currentState.left = false;
+                break;
+            case 1:
+                guac_mouse.currentState.middle = false;
+                break;
+            case 2:
+                guac_mouse.currentState.right = false;
+                break;
+        }
+
+        if (guac_mouse.onmouseup)
+            guac_mouse.onmouseup(guac_mouse.currentState);
+
+    }, false);
+
+    element.addEventListener("mouseout", function(e) {
+
+        // Get parent of the element the mouse pointer is leaving
+       	if (!e) e = window.event;
+
+        // Check that mouseout is due to actually LEAVING the element
+        var target = e.relatedTarget || e.toElement;
+        while (target) {
+            if (target === element)
+                return;
+            target = target.parentNode;
+        }
+
+        cancelEvent(e);
+
+        // Release all buttons
+        if (guac_mouse.currentState.left
+            || guac_mouse.currentState.middle
+            || guac_mouse.currentState.right) {
+
+            guac_mouse.currentState.left = false;
+            guac_mouse.currentState.middle = false;
+            guac_mouse.currentState.right = false;
+
+            if (guac_mouse.onmouseup)
+                guac_mouse.onmouseup(guac_mouse.currentState);
+        }
+
+        // Fire onmouseout event
+        if (guac_mouse.onmouseout)
+            guac_mouse.onmouseout();
+
+    }, false);
+
+    // Override selection on mouse event element.
+    element.addEventListener("selectstart", function(e) {
+        cancelEvent(e);
+    }, false);
+
+    // Ignore all pending mouse events when touch events are the apparent source
+    function ignorePendingMouseEvents() { ignore_mouse = guac_mouse.touchMouseThreshold; }
+
+    element.addEventListener("touchmove",  ignorePendingMouseEvents, false);
+    element.addEventListener("touchstart", ignorePendingMouseEvents, false);
+    element.addEventListener("touchend",   ignorePendingMouseEvents, false);
+
+    // Scroll wheel support
+    function mousewheel_handler(e) {
+
+        // Determine approximate scroll amount (in pixels)
+        var delta = e.deltaY || -e.wheelDeltaY || -e.wheelDelta;
+
+        // If successfully retrieved scroll amount, convert to pixels if not
+        // already in pixels
+        if (delta) {
+
+            // Convert to pixels if delta was lines
+            if (e.deltaMode === 1)
+                delta = e.deltaY * guac_mouse.PIXELS_PER_LINE;
+
+            // Convert to pixels if delta was pages
+            else if (e.deltaMode === 2)
+                delta = e.deltaY * guac_mouse.PIXELS_PER_PAGE;
+
+        }
+
+        // Otherwise, assume legacy mousewheel event and line scrolling
+        else
+            delta = e.detail * guac_mouse.PIXELS_PER_LINE;
+        
+        // Update overall delta
+        scroll_delta += delta;
+
+        // Up
+        if (scroll_delta &lt;= -guac_mouse.scrollThreshold) {
+
+            // Repeatedly click the up button until insufficient delta remains
+            do {
+
+                if (guac_mouse.onmousedown) {
+                    guac_mouse.currentState.up = true;
+                    guac_mouse.onmousedown(guac_mouse.currentState);
+                }
+
+                if (guac_mouse.onmouseup) {
+                    guac_mouse.currentState.up = false;
+                    guac_mouse.onmouseup(guac_mouse.currentState);
+                }
+
+                scroll_delta += guac_mouse.scrollThreshold;
+
+            } while (scroll_delta &lt;= -guac_mouse.scrollThreshold);
+
+            // Reset delta
+            scroll_delta = 0;
+
+        }
+
+        // Down
+        if (scroll_delta >= guac_mouse.scrollThreshold) {
+
+            // Repeatedly click the down button until insufficient delta remains
+            do {
+
+                if (guac_mouse.onmousedown) {
+                    guac_mouse.currentState.down = true;
+                    guac_mouse.onmousedown(guac_mouse.currentState);
+                }
+
+                if (guac_mouse.onmouseup) {
+                    guac_mouse.currentState.down = false;
+                    guac_mouse.onmouseup(guac_mouse.currentState);
+                }
+
+                scroll_delta -= guac_mouse.scrollThreshold;
+
+            } while (scroll_delta >= guac_mouse.scrollThreshold);
+
+            // Reset delta
+            scroll_delta = 0;
+
+        }
+
+        cancelEvent(e);
+
+    }
+
+    element.addEventListener('DOMMouseScroll', mousewheel_handler, false);
+    element.addEventListener('mousewheel',     mousewheel_handler, false);
+    element.addEventListener('wheel',          mousewheel_handler, false);
+
+    /**
+     * Whether the browser supports CSS3 cursor styling, including hotspot
+     * coordinates.
+     *
+     * @private
+     * @type {Boolean}
+     */
+    var CSS3_CURSOR_SUPPORTED = (function() {
+
+        var div = document.createElement("div");
+
+        // If no cursor property at all, then no support
+        if (!("cursor" in div.style))
+            return false;
+
+        try {
+            // Apply simple 1x1 PNG
+            div.style.cursor = "url(data:image/png;base64,"
+                             + "iVBORw0KGgoAAAANSUhEUgAAAAEAAAAB"
+                             + "AQMAAAAl21bKAAAAA1BMVEX///+nxBvI"
+                             + "AAAACklEQVQI12NgAAAAAgAB4iG8MwAA"
+                             + "AABJRU5ErkJggg==) 0 0, auto";
+        }
+        catch (e) {
+            return false;
+        }
+
+        // Verify cursor property is set to URL with hotspot
+        return /\burl\([^()]*\)\s+0\s+0\b/.test(div.style.cursor || "");
+
+    })();
+
+    /**
+     * Changes the local mouse cursor to the given canvas, having the given
+     * hotspot coordinates. This affects styling of the element backing this
+     * Guacamole.Mouse only, and may fail depending on browser support for
+     * setting the mouse cursor.
+     * 
+     * If setting the local cursor is desired, it is up to the implementation
+     * to do something else, such as use the software cursor built into
+     * Guacamole.Display, if the local cursor cannot be set.
+     *
+     * @param {HTMLCanvasElement} canvas The cursor image.
+     * @param {Number} x The X-coordinate of the cursor hotspot.
+     * @param {Number} y The Y-coordinate of the cursor hotspot.
+     * @return {Boolean} true if the cursor was successfully set, false if the
+     *                   cursor could not be set for any reason.
+     */
+    this.setCursor = function(canvas, x, y) {
+
+        // Attempt to set via CSS3 cursor styling
+        if (CSS3_CURSOR_SUPPORTED) {
+            var dataURL = canvas.toDataURL('image/png');
+            element.style.cursor = "url(" + dataURL + ") " + x + " " + y + ", auto";
+            return true;
+        }
+
+        // Otherwise, setting cursor failed
+        return false;
+
+    };
+
+};
+
+/**
+ * Simple container for properties describing the state of a mouse.
+ * 
+ * @constructor
+ * @param {Number} x The X position of the mouse pointer in pixels.
+ * @param {Number} y The Y position of the mouse pointer in pixels.
+ * @param {Boolean} left Whether the left mouse button is pressed. 
+ * @param {Boolean} middle Whether the middle mouse button is pressed. 
+ * @param {Boolean} right Whether the right mouse button is pressed. 
+ * @param {Boolean} up Whether the up mouse button is pressed (the fourth
+ *                     button, usually part of a scroll wheel). 
+ * @param {Boolean} down Whether the down mouse button is pressed (the fifth
+ *                       button, usually part of a scroll wheel). 
+ */
+Guacamole.Mouse.State = function(x, y, left, middle, right, up, down) {
+
+    /**
+     * Reference to this Guacamole.Mouse.State.
+     * @private
+     */
+    var guac_state = this;
+
+    /**
+     * The current X position of the mouse pointer.
+     * @type {Number}
+     */
+    this.x = x;
+
+    /**
+     * The current Y position of the mouse pointer.
+     * @type {Number}
+     */
+    this.y = y;
+
+    /**
+     * Whether the left mouse button is currently pressed.
+     * @type {Boolean}
+     */
+    this.left = left;
+
+    /**
+     * Whether the middle mouse button is currently pressed.
+     * @type {Boolean}
+     */
+    this.middle = middle;
+
+    /**
+     * Whether the right mouse button is currently pressed.
+     * @type {Boolean}
+     */
+    this.right = right;
+
+    /**
+     * Whether the up mouse button is currently pressed. This is the fourth
+     * mouse button, associated with upward scrolling of the mouse scroll
+     * wheel.
+     * @type {Boolean}
+     */
+    this.up = up;
+
+    /**
+     * Whether the down mouse button is currently pressed. This is the fifth 
+     * mouse button, associated with downward scrolling of the mouse scroll
+     * wheel.
+     * @type {Boolean}
+     */
+    this.down = down;
+
+    /**
+     * Updates the position represented within this state object by the given
+     * element and clientX/clientY coordinates (commonly available within event
+     * objects). Position is translated from clientX/clientY (relative to
+     * viewport) to element-relative coordinates.
+     * 
+     * @param {Element} element The element the coordinates should be relative
+     *                          to.
+     * @param {Number} clientX The X coordinate to translate, viewport-relative.
+     * @param {Number} clientY The Y coordinate to translate, viewport-relative.
+     */
+    this.fromClientPosition = function(element, clientX, clientY) {
+    
+        guac_state.x = clientX - element.offsetLeft;
+        guac_state.y = clientY - element.offsetTop;
+
+        // This is all JUST so we can get the mouse position within the element
+        var parent = element.offsetParent;
+        while (parent &amp;&amp; !(parent === document.body)) {
+            guac_state.x -= parent.offsetLeft - parent.scrollLeft;
+            guac_state.y -= parent.offsetTop  - parent.scrollTop;
+
+            parent = parent.offsetParent;
+        }
+
+        // Element ultimately depends on positioning within document body,
+        // take document scroll into account. 
+        if (parent) {
+            var documentScrollLeft = document.body.scrollLeft || document.documentElement.scrollLeft;
+            var documentScrollTop = document.body.scrollTop || document.documentElement.scrollTop;
+
+            guac_state.x -= parent.offsetLeft - documentScrollLeft;
+            guac_state.y -= parent.offsetTop  - documentScrollTop;
+        }
+
+    };
+
+};
+
+/**
+ * Provides cross-browser relative touch event translation for a given element.
+ * 
+ * Touch events are translated into mouse events as if the touches occurred
+ * on a touchpad (drag to push the mouse pointer, tap to click).
+ * 
+ * @constructor
+ * @param {Element} element The Element to use to provide touch events.
+ */
+Guacamole.Mouse.Touchpad = function(element) {
+
+    /**
+     * Reference to this Guacamole.Mouse.Touchpad.
+     * @private
+     */
+    var guac_touchpad = this;
+
+    /**
+     * The distance a two-finger touch must move per scrollwheel event, in
+     * pixels.
+     */
+    this.scrollThreshold = 20 * (window.devicePixelRatio || 1);
+
+    /**
+     * The maximum number of milliseconds to wait for a touch to end for the
+     * gesture to be considered a click.
+     */
+    this.clickTimingThreshold = 250;
+
+    /**
+     * The maximum number of pixels to allow a touch to move for the gesture to
+     * be considered a click.
+     */
+    this.clickMoveThreshold = 10 * (window.devicePixelRatio || 1);
+
+    /**
+     * The current mouse state. The properties of this state are updated when
+     * mouse events fire. This state object is also passed in as a parameter to
+     * the handler of any mouse events.
+     * 
+     * @type {Guacamole.Mouse.State}
+     */
+    this.currentState = new Guacamole.Mouse.State(
+        0, 0, 
+        false, false, false, false, false
+    );
+
+    /**
+     * Fired whenever a mouse button is effectively pressed. This can happen
+     * as part of a "click" gesture initiated by the user by tapping one
+     * or more fingers over the touchpad element, as part of a "scroll"
+     * gesture initiated by dragging two fingers up or down, etc.
+     * 
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmousedown = null;
+
+    /**
+     * Fired whenever a mouse button is effectively released. This can happen
+     * as part of a "click" gesture initiated by the user by tapping one
+     * or more fingers over the touchpad element, as part of a "scroll"
+     * gesture initiated by dragging two fingers up or down, etc.
+     * 
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmouseup = null;
+
+    /**
+     * Fired whenever the user moves the mouse by dragging their finger over
+     * the touchpad element.
+     * 
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmousemove = null;
+
+    var touch_count = 0;
+    var last_touch_x = 0;
+    var last_touch_y = 0;
+    var last_touch_time = 0;
+    var pixels_moved = 0;
+
+    var touch_buttons = {
+        1: "left",
+        2: "right",
+        3: "middle"
+    };
+
+    var gesture_in_progress = false;
+    var click_release_timeout = null;
+
+    element.addEventListener("touchend", function(e) {
+        
+        e.preventDefault();
+            
+        // If we're handling a gesture AND this is the last touch
+        if (gesture_in_progress &amp;&amp; e.touches.length === 0) {
+            
+            var time = new Date().getTime();
+
+            // Get corresponding mouse button
+            var button = touch_buttons[touch_count];
+
+            // If mouse already down, release anad clear timeout
+            if (guac_touchpad.currentState[button]) {
+
+                // Fire button up event
+                guac_touchpad.currentState[button] = false;
+                if (guac_touchpad.onmouseup)
+                    guac_touchpad.onmouseup(guac_touchpad.currentState);
+
+                // Clear timeout, if set
+                if (click_release_timeout) {
+                    window.clearTimeout(click_release_timeout);
+                    click_release_timeout = null;
+                }
+
+            }
+
+            // If single tap detected (based on time and distance)
+            if (time - last_touch_time &lt;= guac_touchpad.clickTimingThreshold
+                    &amp;&amp; pixels_moved &lt; guac_touchpad.clickMoveThreshold) {
+
+                // Fire button down event
+                guac_touchpad.currentState[button] = true;
+                if (guac_touchpad.onmousedown)
+                    guac_touchpad.onmousedown(guac_touchpad.currentState);
+
+                // Delay mouse up - mouse up should be canceled if
+                // touchstart within timeout.
+                click_release_timeout = window.setTimeout(function() {
+                    
+                    // Fire button up event
+                    guac_touchpad.currentState[button] = false;
+                    if (guac_touchpad.onmouseup)
+                        guac_touchpad.onmouseup(guac_touchpad.currentState);
+                    
+                    // Gesture now over
+                    gesture_in_progress = false;
+
+                }, guac_touchpad.clickTimingThreshold);
+
+            }
+
+            // If we're not waiting to see if this is a click, stop gesture
+            if (!click_release_timeout)
+                gesture_in_progress = false;
+
+        }
+
+    }, false);
+
+    element.addEventListener("touchstart", function(e) {
+
+        e.preventDefault();
+
+        // Track number of touches, but no more than three
+        touch_count = Math.min(e.touches.length, 3);
+
+        // Clear timeout, if set
+        if (click_release_timeout) {
+            window.clearTimeout(click_release_timeout);
+            click_release_timeout = null;
+        }
+
+        // Record initial touch location and time for touch movement
+        // and tap gestures
+        if (!gesture_in_progress) {
+
+            // Stop mouse events while touching
+            gesture_in_progress = true;
+
+            // Record touch location and time
+            var starting_touch = e.touches[0];
+            last_touch_x = starting_touch.clientX;
+            last_touch_y = starting_touch.clientY;
+            last_touch_time = new Date().getTime();
+            pixels_moved = 0;
+
+        }
+
+    }, false);
+
+    element.addEventListener("touchmove", function(e) {
+
+        e.preventDefault();
+
+        // Get change in touch location
+        var touch = e.touches[0];
+        var delta_x = touch.clientX - last_touch_x;
+        var delta_y = touch.clientY - last_touch_y;
+
+        // Track pixels moved
+        pixels_moved += Math.abs(delta_x) + Math.abs(delta_y);
+
+        // If only one touch involved, this is mouse move
+        if (touch_count === 1) {
+
+            // Calculate average velocity in Manhatten pixels per millisecond
+            var velocity = pixels_moved / (new Date().getTime() - last_touch_time);
+
+            // Scale mouse movement relative to velocity
+            var scale = 1 + velocity;
+
+            // Update mouse location
+            guac_touchpad.currentState.x += delta_x*scale;
+            guac_touchpad.currentState.y += delta_y*scale;
+
+            // Prevent mouse from leaving screen
+
+            if (guac_touchpad.currentState.x &lt; 0)
+                guac_touchpad.currentState.x = 0;
+            else if (guac_touchpad.currentState.x >= element.offsetWidth)
+                guac_touchpad.currentState.x = element.offsetWidth - 1;
+
+            if (guac_touchpad.currentState.y &lt; 0)
+                guac_touchpad.currentState.y = 0;
+            else if (guac_touchpad.currentState.y >= element.offsetHeight)
+                guac_touchpad.currentState.y = element.offsetHeight - 1;
+
+            // Fire movement event, if defined
+            if (guac_touchpad.onmousemove)
+                guac_touchpad.onmousemove(guac_touchpad.currentState);
+
+            // Update touch location
+            last_touch_x = touch.clientX;
+            last_touch_y = touch.clientY;
+
+        }
+
+        // Interpret two-finger swipe as scrollwheel
+        else if (touch_count === 2) {
+
+            // If change in location passes threshold for scroll
+            if (Math.abs(delta_y) >= guac_touchpad.scrollThreshold) {
+
+                // Decide button based on Y movement direction
+                var button;
+                if (delta_y > 0) button = "down";
+                else             button = "up";
+
+                // Fire button down event
+                guac_touchpad.currentState[button] = true;
+                if (guac_touchpad.onmousedown)
+                    guac_touchpad.onmousedown(guac_touchpad.currentState);
+
+                // Fire button up event
+                guac_touchpad.currentState[button] = false;
+                if (guac_touchpad.onmouseup)
+                    guac_touchpad.onmouseup(guac_touchpad.currentState);
+
+                // Only update touch location after a scroll has been
+                // detected
+                last_touch_x = touch.clientX;
+                last_touch_y = touch.clientY;
+
+            }
+
+        }
+
+    }, false);
+
+};
+
+/**
+ * Provides cross-browser absolute touch event translation for a given element.
+ *
+ * Touch events are translated into mouse events as if the touches occurred
+ * on a touchscreen (tapping anywhere on the screen clicks at that point,
+ * long-press to right-click).
+ *
+ * @constructor
+ * @param {Element} element The Element to use to provide touch events.
+ */
+Guacamole.Mouse.Touchscreen = function(element) {
+
+    /**
+     * Reference to this Guacamole.Mouse.Touchscreen.
+     * @private
+     */
+    var guac_touchscreen = this;
+
+    /**
+     * Whether a gesture is known to be in progress. If false, touch events
+     * will be ignored.
+     *
+     * @private
+     */
+    var gesture_in_progress = false;
+
+    /**
+     * The start X location of a gesture.
+     * @private
+     */
+    var gesture_start_x = null;
+
+    /**
+     * The start Y location of a gesture.
+     * @private
+     */
+    var gesture_start_y = null;
+
+    /**
+     * The timeout associated with the delayed, cancellable click release.
+     *
+     * @private
+     */
+    var click_release_timeout = null;
+
+    /**
+     * The timeout associated with long-press for right click.
+     *
+     * @private
+     */
+    var long_press_timeout = null;
+
+    /**
+     * The distance a two-finger touch must move per scrollwheel event, in
+     * pixels.
+     */
+    this.scrollThreshold = 20 * (window.devicePixelRatio || 1);
+
+    /**
+     * The maximum number of milliseconds to wait for a touch to end for the
+     * gesture to be considered a click.
+     */
+    this.clickTimingThreshold = 250;
+
+    /**
+     * The maximum number of pixels to allow a touch to move for the gesture to
+     * be considered a click.
+     */
+    this.clickMoveThreshold = 16 * (window.devicePixelRatio || 1);
+
+    /**
+     * The amount of time a press must be held for long press to be
+     * detected.
+     */
+    this.longPressThreshold = 500;
+
+    /**
+     * The current mouse state. The properties of this state are updated when
+     * mouse events fire. This state object is also passed in as a parameter to
+     * the handler of any mouse events.
+     *
+     * @type {Guacamole.Mouse.State}
+     */
+    this.currentState = new Guacamole.Mouse.State(
+        0, 0,
+        false, false, false, false, false
+    );
+
+    /**
+     * Fired whenever a mouse button is effectively pressed. This can happen
+     * as part of a "mousedown" gesture initiated by the user by pressing one
+     * finger over the touchscreen element, as part of a "scroll" gesture
+     * initiated by dragging two fingers up or down, etc.
+     *
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmousedown = null;
+
+    /**
+     * Fired whenever a mouse button is effectively released. This can happen
+     * as part of a "mouseup" gesture initiated by the user by removing the
+     * finger pressed against the touchscreen element, or as part of a "scroll"
+     * gesture initiated by dragging two fingers up or down, etc.
+     *
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmouseup = null;
+
+    /**
+     * Fired whenever the user moves the mouse by dragging their finger over
+     * the touchscreen element. Note that unlike Guacamole.Mouse.Touchpad,
+     * dragging a finger over the touchscreen element will always cause
+     * the mouse button to be effectively down, as if clicking-and-dragging.
+     *
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmousemove = null;
+
+    /**
+     * Presses the given mouse button, if it isn't already pressed. Valid
+     * button values are "left", "middle", "right", "up", and "down".
+     *
+     * @private
+     * @param {String} button The mouse button to press.
+     */
+    function press_button(button) {
+        if (!guac_touchscreen.currentState[button]) {
+            guac_touchscreen.currentState[button] = true;
+            if (guac_touchscreen.onmousedown)
+                guac_touchscreen.onmousedown(guac_touchscreen.currentState);
+        }
+    }
+
+    /**
+     * Releases the given mouse button, if it isn't already released. Valid
+     * button values are "left", "middle", "right", "up", and "down".
+     *
+     * @private
+     * @param {String} button The mouse button to release.
+     */
+    function release_button(button) {
+        if (guac_touchscreen.currentState[button]) {
+            guac_touchscreen.currentState[button] = false;
+            if (guac_touchscreen.onmouseup)
+                guac_touchscreen.onmouseup(guac_touchscreen.currentState);
+        }
+    }
+
+    /**
+     * Clicks (presses and releases) the given mouse button. Valid button
+     * values are "left", "middle", "right", "up", and "down".
+     *
+     * @private
+     * @param {String} button The mouse button to click.
+     */
+    function click_button(button) {
+        press_button(button);
+        release_button(button);
+    }
+
+    /**
+     * Moves the mouse to the given coordinates. These coordinates must be
+     * relative to the browser window, as they will be translated based on
+     * the touch event target's location within the browser window.
+     *
+     * @private
+     * @param {Number} x The X coordinate of the mouse pointer.
+     * @param {Number} y The Y coordinate of the mouse pointer.
+     */
+    function move_mouse(x, y) {
+        guac_touchscreen.currentState.fromClientPosition(element, x, y);
+        if (guac_touchscreen.onmousemove)
+            guac_touchscreen.onmousemove(guac_touchscreen.currentState);
+    }
+
+    /**
+     * Returns whether the given touch event exceeds the movement threshold for
+     * clicking, based on where the touch gesture began.
+     *
+     * @private
+     * @param {TouchEvent} e The touch event to check.
+     * @return {Boolean} true if the movement threshold is exceeded, false
+     *                   otherwise.
+     */
+    function finger_moved(e) {
+        var touch = e.touches[0] || e.changedTouches[0];
+        var delta_x = touch.clientX - gesture_start_x;
+        var delta_y = touch.clientY - gesture_start_y;
+        return Math.sqrt(delta_x*delta_x + delta_y*delta_y) >= guac_touchscreen.clickMoveThreshold;
+    }
+
+    /**
+     * Begins a new gesture at the location of the first touch in the given
+     * touch event.
+     * 
+     * @private
+     * @param {TouchEvent} e The touch event beginning this new gesture.
+     */
+    function begin_gesture(e) {
+        var touch = e.touches[0];
+        gesture_in_progress = true;
+        gesture_start_x = touch.clientX;
+        gesture_start_y = touch.clientY;
+    }
+
+    /**
+     * End the current gesture entirely. Wait for all touches to be done before
+     * resuming gesture detection.
+     * 
+     * @private
+     */
+    function end_gesture() {
+        window.clearTimeout(click_release_timeout);
+        window.clearTimeout(long_press_timeout);
+        gesture_in_progress = false;
+    }
+
+    element.addEventListener("touchend", function(e) {
+
+        // Do not handle if no gesture
+        if (!gesture_in_progress)
+            return;
+
+        // Ignore if more than one touch
+        if (e.touches.length !== 0 || e.changedTouches.length !== 1) {
+            end_gesture();
+            return;
+        }
+
+        // Long-press, if any, is over
+        window.clearTimeout(long_press_timeout);
+
+        // Always release mouse button if pressed
+        release_button("left");
+
+        // If finger hasn't moved enough to cancel the click
+        if (!finger_moved(e)) {
+
+            e.preventDefault();
+
+            // If not yet pressed, press and start delay release
+            if (!guac_touchscreen.currentState.left) {
+
+                var touch = e.changedTouches[0];
+                move_mouse(touch.clientX, touch.clientY);
+                press_button("left");
+
+                // Release button after a delay, if not canceled
+                click_release_timeout = window.setTimeout(function() {
+                    release_button("left");
+                    end_gesture();
+                }, guac_touchscreen.clickTimingThreshold);
+
+            }
+
+        } // end if finger not moved
+
+    }, false);
+
+    element.addEventListener("touchstart", function(e) {
+
+        // Ignore if more than one touch
+        if (e.touches.length !== 1) {
+            end_gesture();
+            return;
+        }
+
+        e.preventDefault();
+
+        // New touch begins a new gesture
+        begin_gesture(e);
+
+        // Keep button pressed if tap after left click
+        window.clearTimeout(click_release_timeout);
+
+        // Click right button if this turns into a long-press
+        long_press_timeout = window.setTimeout(function() {
+            var touch = e.touches[0];
+            move_mouse(touch.clientX, touch.clientY);
+            click_button("right");
+            end_gesture();
+        }, guac_touchscreen.longPressThreshold);
+
+    }, false);
+
+    element.addEventListener("touchmove", function(e) {
+
+        // Do not handle if no gesture
+        if (!gesture_in_progress)
+            return;
+
+        // Cancel long press if finger moved
+        if (finger_moved(e))
+            window.clearTimeout(long_press_timeout);
+
+        // Ignore if more than one touch
+        if (e.touches.length !== 1) {
+            end_gesture();
+            return;
+        }
+
+        // Update mouse position if dragging
+        if (guac_touchscreen.currentState.left) {
+
+            e.preventDefault();
+
+            // Update state
+            var touch = e.touches[0];
+            move_mouse(touch.clientX, touch.clientY);
+
+        }
+
+    }, false);
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Namespace.js.html b/doc/1.1.0/guacamole-common-js/Namespace.js.html
new file mode 100644
index 0000000..39781a2
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Namespace.js.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Namespace.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Namespace.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * The namespace used by the Guacamole JavaScript API. Absolutely all classes
+ * defined by the Guacamole JavaScript API will be within this namespace.
+ *
+ * @namespace
+ */
+var Guacamole = Guacamole || {};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Object.js.html b/doc/1.1.0/guacamole-common-js/Object.js.html
new file mode 100644
index 0000000..c811f9b
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Object.js.html
@@ -0,0 +1,261 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Object.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Object.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * An object used by the Guacamole client to house arbitrarily-many named
+ * input and output streams.
+ * 
+ * @constructor
+ * @param {Guacamole.Client} client
+ *     The client owning this object.
+ *
+ * @param {Number} index
+ *     The index of this object.
+ */
+Guacamole.Object = function guacamoleObject(client, index) {
+
+    /**
+     * Reference to this Guacamole.Object.
+     *
+     * @private
+     * @type {Guacamole.Object}
+     */
+    var guacObject = this;
+
+    /**
+     * Map of stream name to corresponding queue of callbacks. The queue of
+     * callbacks is guaranteed to be in order of request.
+     *
+     * @private
+     * @type {Object.&lt;String, Function[]>}
+     */
+    var bodyCallbacks = {};
+
+    /**
+     * Removes and returns the callback at the head of the callback queue for
+     * the stream having the given name. If no such callbacks exist, null is
+     * returned.
+     *
+     * @private
+     * @param {String} name
+     *     The name of the stream to retrieve a callback for.
+     *
+     * @returns {Function}
+     *     The next callback associated with the stream having the given name,
+     *     or null if no such callback exists.
+     */
+    var dequeueBodyCallback = function dequeueBodyCallback(name) {
+
+        // If no callbacks defined, simply return null
+        var callbacks = bodyCallbacks[name];
+        if (!callbacks)
+            return null;
+
+        // Otherwise, pull off first callback, deleting the queue if empty
+        var callback = callbacks.shift();
+        if (callbacks.length === 0)
+            delete bodyCallbacks[name];
+
+        // Return found callback
+        return callback;
+
+    };
+
+    /**
+     * Adds the given callback to the tail of the callback queue for the stream
+     * having the given name.
+     *
+     * @private
+     * @param {String} name
+     *     The name of the stream to associate with the given callback.
+     *
+     * @param {Function} callback
+     *     The callback to add to the queue of the stream with the given name.
+     */
+    var enqueueBodyCallback = function enqueueBodyCallback(name, callback) {
+
+        // Get callback queue by name, creating first if necessary
+        var callbacks = bodyCallbacks[name];
+        if (!callbacks) {
+            callbacks = [];
+            bodyCallbacks[name] = callbacks;
+        }
+
+        // Add callback to end of queue
+        callbacks.push(callback);
+
+    };
+
+    /**
+     * The index of this object.
+     *
+     * @type {Number}
+     */
+    this.index = index;
+
+    /**
+     * Called when this object receives the body of a requested input stream.
+     * By default, all objects will invoke the callbacks provided to their
+     * requestInputStream() functions based on the name of the stream
+     * requested. This behavior can be overridden by specifying a different
+     * handler here.
+     *
+     * @event
+     * @param {Guacamole.InputStream} inputStream
+     *     The input stream of the received body.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the data being received.
+     *
+     * @param {String} name
+     *     The name of the stream whose body has been received.
+     */
+    this.onbody = function defaultBodyHandler(inputStream, mimetype, name) {
+
+        // Call queued callback for the received body, if any
+        var callback = dequeueBodyCallback(name);
+        if (callback)
+            callback(inputStream, mimetype);
+
+    };
+
+    /**
+     * Called when this object is being undefined. Once undefined, no further
+     * communication involving this object may occur.
+     * 
+     * @event
+     */
+    this.onundefine = null;
+
+    /**
+     * Requests read access to the input stream having the given name. If
+     * successful, a new input stream will be created.
+     *
+     * @param {String} name
+     *     The name of the input stream to request.
+     *
+     * @param {Function} [bodyCallback]
+     *     The callback to invoke when the body of the requested input stream
+     *     is received. This callback will be provided a Guacamole.InputStream
+     *     and its mimetype as its two only arguments. If the onbody handler of
+     *     this object is overridden, this callback will not be invoked.
+     */
+    this.requestInputStream = function requestInputStream(name, bodyCallback) {
+
+        // Queue body callback if provided
+        if (bodyCallback)
+            enqueueBodyCallback(name, bodyCallback);
+
+        // Send request for input stream
+        client.requestObjectInputStream(guacObject.index, name);
+
+    };
+
+    /**
+     * Creates a new output stream associated with this object and having the
+     * given mimetype and name. The legality of a mimetype and name is dictated
+     * by the object itself.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the data which will be sent to the output stream.
+     *
+     * @param {String} name
+     *     The defined name of an output stream within this object.
+     *
+     * @returns {Guacamole.OutputStream}
+     *     An output stream which will write blobs to the named output stream
+     *     of this object.
+     */
+    this.createOutputStream = function createOutputStream(mimetype, name) {
+        return client.createObjectOutputStream(guacObject.index, mimetype, name);
+    };
+
+};
+
+/**
+ * The reserved name denoting the root stream of any object. The contents of
+ * the root stream MUST be a JSON map of stream name to mimetype.
+ *
+ * @constant
+ * @type {String}
+ */
+Guacamole.Object.ROOT_STREAM = '/';
+
+/**
+ * The mimetype of a stream containing JSON which maps available stream names
+ * to their corresponding mimetype. The root stream of a Guacamole.Object MUST
+ * have this mimetype.
+ *
+ * @constant
+ * @type {String}
+ */
+Guacamole.Object.STREAM_INDEX_MIMETYPE = 'application/vnd.glyptodon.guacamole.stream-index+json';
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/OnScreenKeyboard.js.html b/doc/1.1.0/guacamole-common-js/OnScreenKeyboard.js.html
new file mode 100644
index 0000000..d8c3e18
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/OnScreenKeyboard.js.html
@@ -0,0 +1,994 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: OnScreenKeyboard.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: OnScreenKeyboard.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Dynamic on-screen keyboard. Given the layout object for an on-screen
+ * keyboard, this object will construct a clickable on-screen keyboard with its
+ * own key events.
+ *
+ * @constructor
+ * @param {Guacamole.OnScreenKeyboard.Layout} layout
+ *     The layout of the on-screen keyboard to display.
+ */
+Guacamole.OnScreenKeyboard = function(layout) {
+
+    /**
+     * Reference to this Guacamole.OnScreenKeyboard.
+     *
+     * @private
+     * @type {Guacamole.OnScreenKeyboard}
+     */
+    var osk = this;
+
+    /**
+     * Map of currently-set modifiers to the keysym associated with their
+     * original press. When the modifier is cleared, this keysym must be
+     * released.
+     *
+     * @private
+     * @type {Object.&lt;String, Number>}
+     */
+    var modifierKeysyms = {};
+
+    /**
+     * Map of all key names to their current pressed states. If a key is not
+     * pressed, it may not be in this map at all, but all pressed keys will
+     * have a corresponding mapping to true.
+     *
+     * @private
+     * @type {Object.&lt;String, Boolean>}
+     */
+    var pressed = {};
+
+    /**
+     * All scalable elements which are part of the on-screen keyboard. Each
+     * scalable element is carefully controlled to ensure the interface layout
+     * and sizing remains constant, even on browsers that would otherwise
+     * experience rounding error due to unit conversions.
+     *
+     * @private
+     * @type {ScaledElement[]}
+     */
+    var scaledElements = [];
+
+    /**
+     * Adds a CSS class to an element.
+     * 
+     * @private
+     * @function
+     * @param {Element} element
+     *     The element to add a class to.
+     *
+     * @param {String} classname
+     *     The name of the class to add.
+     */
+    var addClass = function addClass(element, classname) {
+
+        // If classList supported, use that
+        if (element.classList)
+            element.classList.add(classname);
+
+        // Otherwise, simply append the class
+        else
+            element.className += " " + classname;
+
+    };
+
+    /**
+     * Removes a CSS class from an element.
+     * 
+     * @private
+     * @function
+     * @param {Element} element
+     *     The element to remove a class from.
+     *
+     * @param {String} classname
+     *     The name of the class to remove.
+     */
+    var removeClass = function removeClass(element, classname) {
+
+        // If classList supported, use that
+        if (element.classList)
+            element.classList.remove(classname);
+
+        // Otherwise, manually filter out classes with given name
+        else {
+            element.className = element.className.replace(/([^ ]+)[ ]*/g,
+                function removeMatchingClasses(match, testClassname) {
+
+                    // If same class, remove
+                    if (testClassname === classname)
+                        return "";
+
+                    // Otherwise, allow
+                    return match;
+                    
+                }
+            );
+        }
+
+    };
+
+    /**
+     * Counter of mouse events to ignore. This decremented by mousemove, and
+     * while non-zero, mouse events will have no effect.
+     *
+     * @private
+     * @type {Number}
+     */
+    var ignoreMouse = 0;
+
+    /**
+     * Ignores all pending mouse events when touch events are the apparent
+     * source. Mouse events are ignored until at least touchMouseThreshold
+     * mouse events occur without corresponding touch events.
+     *
+     * @private
+     */
+    var ignorePendingMouseEvents = function ignorePendingMouseEvents() {
+        ignoreMouse = osk.touchMouseThreshold;
+    };
+
+    /**
+     * An element whose dimensions are maintained according to an arbitrary
+     * scale. The conversion factor for these arbitrary units to pixels is
+     * provided later via a call to scale().
+     *
+     * @private
+     * @constructor
+     * @param {Element} element
+     *     The element whose scale should be maintained.
+     *
+     * @param {Number} width
+     *     The width of the element, in arbitrary units, relative to other
+     *     ScaledElements.
+     *
+     * @param {Number} height
+     *     The height of the element, in arbitrary units, relative to other
+     *     ScaledElements.
+     *     
+     * @param {Boolean} [scaleFont=false]
+     *     Whether the line height and font size should be scaled as well.
+     */
+    var ScaledElement = function ScaledElement(element, width, height, scaleFont) {
+
+        /**
+         * The width of this ScaledElement, in arbitrary units, relative to
+         * other ScaledElements.
+         *
+         * @type {Number}
+         */
+         this.width = width;
+
+        /**
+         * The height of this ScaledElement, in arbitrary units, relative to
+         * other ScaledElements.
+         *
+         * @type {Number}
+         */
+         this.height = height;
+ 
+        /**
+         * Resizes the associated element, updating its dimensions according to
+         * the given pixels per unit.
+         *
+         * @param {Number} pixels
+         *     The number of pixels to assign per arbitrary unit.
+         */
+        this.scale = function(pixels) {
+
+            // Scale element width/height
+            element.style.width  = (width  * pixels) + "px";
+            element.style.height = (height * pixels) + "px";
+
+            // Scale font, if requested
+            if (scaleFont) {
+                element.style.lineHeight = (height * pixels) + "px";
+                element.style.fontSize   = pixels + "px";
+            }
+
+        };
+
+    };
+
+    /**
+     * Returns whether all modifiers having the given names are currently
+     * active.
+     *
+     * @private
+     * @param {String[]} names
+     *     The names of all modifiers to test.
+     *
+     * @returns {Boolean}
+     *     true if all specified modifiers are pressed, false otherwise.
+     */
+    var modifiersPressed = function modifiersPressed(names) {
+
+        // If any required modifiers are not pressed, return false
+        for (var i=0; i &lt; names.length; i++) {
+
+            // Test whether current modifier is pressed
+            var name = names[i];
+            if (!(name in modifierKeysyms))
+                return false;
+
+        }
+
+        // Otherwise, all required modifiers are pressed
+        return true;
+
+    };
+
+    /**
+     * Returns the single matching Key object associated with the key of the
+     * given name, where that Key object's requirements (such as pressed
+     * modifiers) are all currently satisfied.
+     *
+     * @private
+     * @param {String} keyName
+     *     The name of the key to retrieve.
+     *
+     * @returns {Guacamole.OnScreenKeyboard.Key}
+     *     The Key object associated with the given name, where that object's
+     *     requirements are all currently satisfied, or null if no such Key
+     *     can be found.
+     */
+    var getActiveKey = function getActiveKey(keyName) {
+
+        // Get key array for given name
+        var keys = osk.keys[keyName];
+        if (!keys)
+            return null;
+
+        // Find last matching key
+        for (var i = keys.length - 1; i >= 0; i--) {
+
+            // Get candidate key
+            var candidate = keys[i];
+
+            // If all required modifiers are pressed, use that key
+            if (modifiersPressed(candidate.requires))
+                return candidate;
+
+        }
+
+        // No valid key
+        return null;
+
+    };
+
+    /**
+     * Presses the key having the given name, updating the associated key
+     * element with the "guac-keyboard-pressed" CSS class. If the key is
+     * already pressed, this function has no effect.
+     *
+     * @private
+     * @param {String} keyName
+     *     The name of the key to press.
+     *
+     * @param {String} keyElement
+     *     The element associated with the given key.
+     */
+    var press = function press(keyName, keyElement) {
+
+        // Press key if not yet pressed
+        if (!pressed[keyName]) {
+
+            addClass(keyElement, "guac-keyboard-pressed");
+
+            // Get current key based on modifier state
+            var key = getActiveKey(keyName);
+
+            // Update modifier state
+            if (key.modifier) {
+
+                // Construct classname for modifier
+                var modifierClass = "guac-keyboard-modifier-" + getCSSName(key.modifier);
+
+                // Retrieve originally-pressed keysym, if modifier was already pressed
+                var originalKeysym = modifierKeysyms[key.modifier];
+
+                // Activate modifier if not pressed
+                if (!originalKeysym) {
+                    
+                    addClass(keyboard, modifierClass);
+                    modifierKeysyms[key.modifier] = key.keysym;
+                    
+                    // Send key event
+                    if (osk.onkeydown)
+                        osk.onkeydown(key.keysym);
+
+                }
+
+                // Deactivate if not pressed
+                else {
+
+                    removeClass(keyboard, modifierClass);
+                    delete modifierKeysyms[key.modifier];
+                    
+                    // Send key event
+                    if (osk.onkeyup)
+                        osk.onkeyup(originalKeysym);
+
+                }
+
+            }
+
+            // If not modifier, send key event now
+            else if (osk.onkeydown)
+                osk.onkeydown(key.keysym);
+
+            // Mark key as pressed
+            pressed[keyName] = true;
+
+        }
+
+    };
+
+    /**
+     * Releases the key having the given name, removing the
+     * "guac-keyboard-pressed" CSS class from the associated element. If the
+     * key is already released, this function has no effect.
+     *
+     * @private
+     * @param {String} keyName
+     *     The name of the key to release.
+     *
+     * @param {String} keyElement
+     *     The element associated with the given key.
+     */
+    var release = function release(keyName, keyElement) {
+
+        // Release key if currently pressed
+        if (pressed[keyName]) {
+
+            removeClass(keyElement, "guac-keyboard-pressed");
+
+            // Get current key based on modifier state
+            var key = getActiveKey(keyName);
+
+            // Send key event if not a modifier key
+            if (!key.modifier &amp;&amp; osk.onkeyup)
+                osk.onkeyup(key.keysym);
+
+            // Mark key as released
+            pressed[keyName] = false;
+
+        }
+
+    };
+
+    // Create keyboard
+    var keyboard = document.createElement("div");
+    keyboard.className = "guac-keyboard";
+
+    // Do not allow selection or mouse movement to propagate/register.
+    keyboard.onselectstart =
+    keyboard.onmousemove   =
+    keyboard.onmouseup     =
+    keyboard.onmousedown   = function handleMouseEvents(e) {
+
+        // If ignoring events, decrement counter
+        if (ignoreMouse)
+            ignoreMouse--;
+
+        e.stopPropagation();
+        return false;
+
+    };
+
+    /**
+     * The number of mousemove events to require before re-enabling mouse
+     * event handling after receiving a touch event.
+     *
+     * @type {Number}
+     */
+    this.touchMouseThreshold = 3;
+
+    /**
+     * Fired whenever the user presses a key on this Guacamole.OnScreenKeyboard.
+     * 
+     * @event
+     * @param {Number} keysym The keysym of the key being pressed.
+     */
+    this.onkeydown = null;
+
+    /**
+     * Fired whenever the user releases a key on this Guacamole.OnScreenKeyboard.
+     * 
+     * @event
+     * @param {Number} keysym The keysym of the key being released.
+     */
+    this.onkeyup = null;
+
+    /**
+     * The keyboard layout provided at time of construction.
+     *
+     * @type {Guacamole.OnScreenKeyboard.Layout}
+     */
+    this.layout = new Guacamole.OnScreenKeyboard.Layout(layout);
+
+    /**
+     * Returns the element containing the entire on-screen keyboard.
+     * @returns {Element} The element containing the entire on-screen keyboard.
+     */
+    this.getElement = function() {
+        return keyboard;
+    };
+
+    /**
+     * Resizes all elements within this Guacamole.OnScreenKeyboard such that
+     * the width is close to but does not exceed the specified width. The
+     * height of the keyboard is determined based on the width.
+     * 
+     * @param {Number} width The width to resize this Guacamole.OnScreenKeyboard
+     *                       to, in pixels.
+     */
+    this.resize = function(width) {
+
+        // Get pixel size of a unit
+        var unit = Math.floor(width * 10 / osk.layout.width) / 10;
+
+        // Resize all scaled elements
+        for (var i=0; i&lt;scaledElements.length; i++) {
+            var scaledElement = scaledElements[i];
+            scaledElement.scale(unit);
+        }
+
+    };
+
+    /**
+     * Given the name of a key and its corresponding definition, which may be
+     * an array of keys objects, a number (keysym), a string (key title), or a
+     * single key object, returns an array of key objects, deriving any missing
+     * properties as needed, and ensuring the key name is defined.
+     *
+     * @private
+     * @param {String} name
+     *     The name of the key being coerced into an array of Key objects.
+     *
+     * @param {Number|String|Guacamole.OnScreenKeyboard.Key|Guacamole.OnScreenKeyboard.Key[]} object
+     *     The object defining the behavior of the key having the given name,
+     *     which may be the title of the key (a string), the keysym (a number),
+     *     a single Key object, or an array of Key objects.
+     *     
+     * @returns {Guacamole.OnScreenKeyboard.Key[]}
+     *     An array of all keys associated with the given name.
+     */
+    var asKeyArray = function asKeyArray(name, object) {
+
+        // If already an array, just coerce into a true Key[] 
+        if (object instanceof Array) {
+            var keys = [];
+            for (var i=0; i &lt; object.length; i++) {
+                keys.push(new Guacamole.OnScreenKeyboard.Key(object[i], name));
+            }
+            return keys;
+        }
+
+        // Derive key object from keysym if that's all we have
+        if (typeof object === 'number') {
+            return [new Guacamole.OnScreenKeyboard.Key({
+                name   : name,
+                keysym : object
+            })];
+        }
+
+        // Derive key object from title if that's all we have
+        if (typeof object === 'string') {
+            return [new Guacamole.OnScreenKeyboard.Key({
+                name  : name,
+                title : object
+            })];
+        }
+
+        // Otherwise, assume it's already a key object, just not an array
+        return [new Guacamole.OnScreenKeyboard.Key(object, name)];
+
+    };
+
+    /**
+     * Converts the rather forgiving key mapping allowed by
+     * Guacamole.OnScreenKeyboard.Layout into a rigorous mapping of key name
+     * to key definition, where the key definition is always an array of Key
+     * objects.
+     *
+     * @private
+     * @param {Object.&lt;String, Number|String|Guacamole.OnScreenKeyboard.Key|Guacamole.OnScreenKeyboard.Key[]>} keys
+     *     A mapping of key name to key definition, where the key definition is
+     *     the title of the key (a string), the keysym (a number), a single
+     *     Key object, or an array of Key objects.
+     *
+     * @returns {Object.&lt;String, Guacamole.OnScreenKeyboard.Key[]>}
+     *     A more-predictable mapping of key name to key definition, where the
+     *     key definition is always simply an array of Key objects.
+     */
+    var getKeys = function getKeys(keys) {
+
+        var keyArrays = {};
+
+        // Coerce all keys into individual key arrays
+        for (var name in layout.keys) {
+            keyArrays[name] = asKeyArray(name, keys[name]);
+        }
+
+        return keyArrays;
+
+    };
+
+    /**
+     * Map of all key names to their corresponding set of keys. Each key name
+     * may correspond to multiple keys due to the effect of modifiers.
+     *
+     * @type {Object.&lt;String, Guacamole.OnScreenKeyboard.Key[]>}
+     */
+    this.keys = getKeys(layout.keys);
+
+    /**
+     * Given an arbitrary string representing the name of some component of the
+     * on-screen keyboard, returns a string formatted for use as a CSS class
+     * name. The result will be lowercase. Word boundaries previously denoted
+     * by CamelCase will be replaced by individual hyphens, as will all
+     * contiguous non-alphanumeric characters.
+     *
+     * @private
+     * @param {String} name
+     *     An arbitrary string representing the name of some component of the
+     *     on-screen keyboard.
+     *
+     * @returns {String}
+     *     A string formatted for use as a CSS class name.
+     */
+    var getCSSName = function getCSSName(name) {
+
+        // Convert name from possibly-CamelCase to hyphenated lowercase
+        var cssName = name
+               .replace(/([a-z])([A-Z])/g, '$1-$2')
+               .replace(/[^A-Za-z0-9]+/g, '-')
+               .toLowerCase();
+
+        return cssName;
+
+    };
+
+    /**
+     * Appends DOM elements to the given element as dictated by the layout
+     * structure object provided. If a name is provided, an additional CSS
+     * class, prepended with "guac-keyboard-", will be added to the top-level
+     * element.
+     * 
+     * If the layout structure object is an array, all elements within that
+     * array will be recursively appended as children of a group, and the
+     * top-level element will be given the CSS class "guac-keyboard-group".
+     *
+     * If the layout structure object is an object, all properties within that
+     * object will be recursively appended as children of a group, and the
+     * top-level element will be given the CSS class "guac-keyboard-group". The
+     * name of each property will be applied as the name of each child object
+     * for the sake of CSS. Each property will be added in sorted order.
+     *
+     * If the layout structure object is a string, the key having that name
+     * will be appended. The key will be given the CSS class
+     * "guac-keyboard-key" and "guac-keyboard-key-NAME", where NAME is the name
+     * of the key. If the name of the key is a single character, this will
+     * first be transformed into the C-style hexadecimal literal for the
+     * Unicode codepoint of that character. For example, the key "A" would
+     * become "guac-keyboard-key-0x41".
+     * 
+     * If the layout structure object is a number, a gap of that size will be
+     * inserted. The gap will be given the CSS class "guac-keyboard-gap", and
+     * will be scaled according to the same size units as each key.
+     *
+     * @private
+     * @param {Element} element
+     *     The element to append elements to.
+     *
+     * @param {Array|Object|String|Number} object
+     *     The layout structure object to use when constructing the elements to
+     *     append.
+     *
+     * @param {String} [name]
+     *     The name of the top-level element being appended, if any.
+     */
+    var appendElements = function appendElements(element, object, name) {
+
+        var i;
+
+        // Create div which will become the group or key
+        var div = document.createElement('div');
+
+        // Add class based on name, if name given
+        if (name)
+            addClass(div, 'guac-keyboard-' + getCSSName(name));
+
+        // If an array, append each element
+        if (object instanceof Array) {
+
+            // Add group class
+            addClass(div, 'guac-keyboard-group');
+
+            // Append all elements of array
+            for (i=0; i &lt; object.length; i++)
+                appendElements(div, object[i]);
+
+        }
+
+        // If an object, append each property value
+        else if (object instanceof Object) {
+
+            // Add group class
+            addClass(div, 'guac-keyboard-group');
+
+            // Append all children, sorted by name
+            var names = Object.keys(object).sort();
+            for (i=0; i &lt; names.length; i++) {
+                var name = names[i];
+                appendElements(div, object[name], name);
+            }
+
+        }
+
+        // If a number, create as a gap 
+        else if (typeof object === 'number') {
+
+            // Add gap class
+            addClass(div, 'guac-keyboard-gap');
+
+            // Maintain scale
+            scaledElements.push(new ScaledElement(div, object, object));
+
+        }
+
+        // If a string, create as a key
+        else if (typeof object === 'string') {
+
+            // If key name is only one character, use codepoint for name
+            var keyName = object;
+            if (keyName.length === 1)
+                keyName = '0x' + keyName.charCodeAt(0).toString(16);
+
+            // Add key container class
+            addClass(div, 'guac-keyboard-key-container');
+
+            // Create key element which will contain all possible caps
+            var keyElement = document.createElement('div');
+            keyElement.className = 'guac-keyboard-key '
+                                 + 'guac-keyboard-key-' + getCSSName(keyName);
+
+            // Add all associated keys as caps within DOM
+            var keys = osk.keys[object];
+            if (keys) {
+                for (i=0; i &lt; keys.length; i++) {
+
+                    // Get current key
+                    var key = keys[i];
+
+                    // Create cap element for key
+                    var capElement = document.createElement('div');
+                    capElement.className   = 'guac-keyboard-cap';
+                    capElement.textContent = key.title;
+
+                    // Add classes for any requirements
+                    for (var j=0; j &lt; key.requires.length; j++) {
+                        var requirement = key.requires[j];
+                        addClass(capElement, 'guac-keyboard-requires-' + getCSSName(requirement));
+                        addClass(keyElement, 'guac-keyboard-uses-'     + getCSSName(requirement));
+                    }
+
+                    // Add cap to key within DOM
+                    keyElement.appendChild(capElement);
+
+                }
+            }
+
+            // Add key to DOM, maintain scale
+            div.appendChild(keyElement);
+            scaledElements.push(new ScaledElement(div, osk.layout.keyWidths[object] || 1, 1, true));
+
+            /**
+             * Handles a touch event which results in the pressing of an OSK
+             * key. Touch events will result in mouse events being ignored for
+             * touchMouseThreshold events.
+             *
+             * @private
+             * @param {TouchEvent} e
+             *     The touch event being handled.
+             */
+            var touchPress = function touchPress(e) {
+                e.preventDefault();
+                ignoreMouse = osk.touchMouseThreshold;
+                press(object, keyElement);
+            };
+
+            /**
+             * Handles a touch event which results in the release of an OSK
+             * key. Touch events will result in mouse events being ignored for
+             * touchMouseThreshold events.
+             *
+             * @private
+             * @param {TouchEvent} e
+             *     The touch event being handled.
+             */
+            var touchRelease = function touchRelease(e) {
+                e.preventDefault();
+                ignoreMouse = osk.touchMouseThreshold;
+                release(object, keyElement);
+            };
+
+            /**
+             * Handles a mouse event which results in the pressing of an OSK
+             * key. If mouse events are currently being ignored, this handler
+             * does nothing.
+             *
+             * @private
+             * @param {MouseEvent} e
+             *     The touch event being handled.
+             */
+            var mousePress = function mousePress(e) {
+                e.preventDefault();
+                if (ignoreMouse === 0)
+                    press(object, keyElement);
+            };
+
+            /**
+             * Handles a mouse event which results in the release of an OSK
+             * key. If mouse events are currently being ignored, this handler
+             * does nothing.
+             *
+             * @private
+             * @param {MouseEvent} e
+             *     The touch event being handled.
+             */
+            var mouseRelease = function mouseRelease(e) {
+                e.preventDefault();
+                if (ignoreMouse === 0)
+                    release(object, keyElement);
+            };
+
+            // Handle touch events on key
+            keyElement.addEventListener("touchstart", touchPress,   true);
+            keyElement.addEventListener("touchend",   touchRelease, true);
+
+            // Handle mouse events on key
+            keyElement.addEventListener("mousedown", mousePress,   true);
+            keyElement.addEventListener("mouseup",   mouseRelease, true);
+            keyElement.addEventListener("mouseout",  mouseRelease, true);
+
+        } // end if object is key name
+
+        // Add newly-created group/key
+        element.appendChild(div);
+
+    };
+
+    // Create keyboard layout in DOM
+    appendElements(keyboard, layout.layout);
+
+};
+
+/**
+ * Represents an entire on-screen keyboard layout, including all available
+ * keys, their behaviors, and their relative position and sizing.
+ *
+ * @constructor
+ * @param {Guacamole.OnScreenKeyboard.Layout|Object} template
+ *     The object whose identically-named properties will be used to initialize
+ *     the properties of this layout.
+ */
+Guacamole.OnScreenKeyboard.Layout = function(template) {
+
+    /**
+     * The language of keyboard layout, such as "en_US". This property is for
+     * informational purposes only, but it is recommend to conform to the
+     * [language code]_[country code] format.
+     *
+     * @type {String}
+     */
+    this.language = template.language;
+
+    /**
+     * The type of keyboard layout, such as "qwerty". This property is for
+     * informational purposes only, and does not conform to any standard.
+     *
+     * @type {String}
+     */
+    this.type = template.type;
+
+    /**
+     * Map of key name to corresponding keysym, title, or key object. If only
+     * the keysym or title is provided, the key object will be created
+     * implicitly. In all cases, the name property of the key object will be
+     * taken from the name given in the mapping.
+     *
+     * @type {Object.&lt;String, Number|String|Guacamole.OnScreenKeyboard.Key|Guacamole.OnScreenKeyboard.Key[]>}
+     */
+    this.keys = template.keys;
+
+    /**
+     * Arbitrarily nested, arbitrarily grouped key names. The contents of the
+     * layout will be traversed to produce an identically-nested grouping of
+     * keys in the DOM tree. All strings will be transformed into their
+     * corresponding sets of keys, while all objects and arrays will be
+     * transformed into named groups and anonymous groups respectively. Any
+     * numbers present will be transformed into gaps of that size, scaled
+     * according to the same units as each key.
+     *
+     * @type {Object}
+     */
+    this.layout = template.layout;
+
+    /**
+     * The width of the entire keyboard, in arbitrary units. The width of each
+     * key is relative to this width, as both width values are assumed to be in
+     * the same units. The conversion factor between these units and pixels is
+     * derived later via a call to resize() on the Guacamole.OnScreenKeyboard.
+     *
+     * @type {Number}
+     */
+    this.width = template.width;
+
+    /**
+     * The width of each key, in arbitrary units, relative to other keys in
+     * this layout. The true pixel size of each key will be determined by the
+     * overall size of the keyboard. If not defined here, the width of each
+     * key will default to 1.
+     *
+     * @type {Object.&lt;String, Number>}
+     */
+    this.keyWidths = template.keyWidths || {};
+
+};
+
+/**
+ * Represents a single key, or a single possible behavior of a key. Each key
+ * on the on-screen keyboard must have at least one associated
+ * Guacamole.OnScreenKeyboard.Key, whether that key is explicitly defined or
+ * implied, and may have multiple Guacamole.OnScreenKeyboard.Key if behavior
+ * depends on modifier states.
+ *
+ * @constructor
+ * @param {Guacamole.OnScreenKeyboard.Key|Object} template
+ *     The object whose identically-named properties will be used to initialize
+ *     the properties of this key.
+ *     
+ * @param {String} [name]
+ *     The name to use instead of any name provided within the template, if
+ *     any. If omitted, the name within the template will be used, assuming the
+ *     template contains a name.
+ */
+Guacamole.OnScreenKeyboard.Key = function(template, name) {
+
+    /**
+     * The unique name identifying this key within the keyboard layout.
+     *
+     * @type {String}
+     */
+    this.name = name || template.name;
+
+    /**
+     * The human-readable title that will be displayed to the user within the
+     * key. If not provided, this will be derived from the key name.
+     *
+     * @type {String}
+     */
+    this.title = template.title || this.name;
+
+    /**
+     * The keysym to be pressed/released when this key is pressed/released. If
+     * not provided, this will be derived from the title if the title is a
+     * single character.
+     *
+     * @type {Number}
+     */
+    this.keysym = template.keysym || (function deriveKeysym(title) {
+
+        // Do not derive keysym if title is not exactly one character
+        if (!title || title.length !== 1)
+            return null;
+
+        // For characters between U+0000 and U+00FF, the keysym is the codepoint
+        var charCode = title.charCodeAt(0);
+        if (charCode >= 0x0000 &amp;&amp; charCode &lt;= 0x00FF)
+            return charCode;
+
+        // For characters between U+0100 and U+10FFFF, the keysym is the codepoint or'd with 0x01000000
+        if (charCode >= 0x0100 &amp;&amp; charCode &lt;= 0x10FFFF)
+            return 0x01000000 | charCode;
+
+        // Unable to derive keysym
+        return null;
+
+    })(this.title);
+
+    /**
+     * The name of the modifier set when the key is pressed and cleared when
+     * this key is released, if any. The names of modifiers are distinct from
+     * the names of keys; both the "RightShift" and "LeftShift" keys may set
+     * the "shift" modifier, for example. By default, the key will affect no
+     * modifiers.
+     * 
+     * @type {String}
+     */
+    this.modifier = template.modifier;
+
+    /**
+     * An array containing the names of each modifier required for this key to
+     * have an effect. For example, a lowercase letter may require nothing,
+     * while an uppercase letter would require "shift", assuming the Shift key
+     * is named "shift" within the layout. By default, the key will require
+     * no modifiers.
+     *
+     * @type {String[]}
+     */
+    this.requires = template.requires || [];
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/OutputStream.js.html b/doc/1.1.0/guacamole-common-js/OutputStream.js.html
new file mode 100644
index 0000000..a366efe
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/OutputStream.js.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: OutputStream.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: OutputStream.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Abstract stream which can receive data.
+ * 
+ * @constructor
+ * @param {Guacamole.Client} client The client owning this stream.
+ * @param {Number} index The index of this stream.
+ */
+Guacamole.OutputStream = function(client, index) {
+
+    /**
+     * Reference to this stream.
+     * @private
+     */
+    var guac_stream = this;
+
+    /**
+     * The index of this stream.
+     * @type {Number}
+     */
+    this.index = index;
+
+    /**
+     * Fired whenever an acknowledgement is received from the server, indicating
+     * that a stream operation has completed, or an error has occurred.
+     * 
+     * @event
+     * @param {Guacamole.Status} status The status of the operation.
+     */
+    this.onack = null;
+
+    /**
+     * Writes the given base64-encoded data to this stream as a blob.
+     * 
+     * @param {String} data The base64-encoded data to send.
+     */
+    this.sendBlob = function(data) {
+        client.sendBlob(guac_stream.index, data);
+    };
+
+    /**
+     * Closes this stream.
+     */
+    this.sendEnd = function() {
+        client.endStream(guac_stream.index);
+    };
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Parser.js.html b/doc/1.1.0/guacamole-common-js/Parser.js.html
new file mode 100644
index 0000000..8c29d79
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Parser.js.html
@@ -0,0 +1,207 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Parser.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Parser.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Simple Guacamole protocol parser that invokes an oninstruction event when
+ * full instructions are available from data received via receive().
+ * 
+ * @constructor
+ */
+Guacamole.Parser = function() {
+
+    /**
+     * Reference to this parser.
+     * @private
+     */
+    var parser = this;
+
+    /**
+     * Current buffer of received data. This buffer grows until a full
+     * element is available. After a full element is available, that element
+     * is flushed into the element buffer.
+     * 
+     * @private
+     */
+    var buffer = "";
+
+    /**
+     * Buffer of all received, complete elements. After an entire instruction
+     * is read, this buffer is flushed, and a new instruction begins.
+     * 
+     * @private
+     */
+    var element_buffer = [];
+
+    // The location of the last element's terminator
+    var element_end = -1;
+
+    // Where to start the next length search or the next element
+    var start_index = 0;
+
+    /**
+     * Appends the given instruction data packet to the internal buffer of
+     * this Guacamole.Parser, executing all completed instructions at
+     * the beginning of this buffer, if any.
+     *
+     * @param {String} packet The instruction data to receive.
+     */
+    this.receive = function(packet) {
+
+        // Truncate buffer as necessary
+        if (start_index > 4096 &amp;&amp; element_end >= start_index) {
+
+            buffer = buffer.substring(start_index);
+
+            // Reset parse relative to truncation
+            element_end -= start_index;
+            start_index = 0;
+
+        }
+
+        // Append data to buffer
+        buffer += packet;
+
+        // While search is within currently received data
+        while (element_end &lt; buffer.length) {
+
+            // If we are waiting for element data
+            if (element_end >= start_index) {
+
+                // We now have enough data for the element. Parse.
+                var element = buffer.substring(start_index, element_end);
+                var terminator = buffer.substring(element_end, element_end+1);
+
+                // Add element to array
+                element_buffer.push(element);
+
+                // If last element, handle instruction
+                if (terminator == ";") {
+
+                    // Get opcode
+                    var opcode = element_buffer.shift();
+
+                    // Call instruction handler.
+                    if (parser.oninstruction != null)
+                        parser.oninstruction(opcode, element_buffer);
+
+                    // Clear elements
+                    element_buffer.length = 0;
+
+                }
+                else if (terminator != ',')
+                    throw new Error("Illegal terminator.");
+
+                // Start searching for length at character after
+                // element terminator
+                start_index = element_end + 1;
+
+            }
+
+            // Search for end of length
+            var length_end = buffer.indexOf(".", start_index);
+            if (length_end != -1) {
+
+                // Parse length
+                var length = parseInt(buffer.substring(element_end+1, length_end));
+                if (isNaN(length))
+                    throw new Error("Non-numeric character in element length.");
+
+                // Calculate start of element
+                start_index = length_end + 1;
+
+                // Calculate location of element terminator
+                element_end = start_index + length;
+
+            }
+            
+            // If no period yet, continue search when more data
+            // is received
+            else {
+                start_index = buffer.length;
+                break;
+            }
+
+        } // end parse loop
+
+    };
+
+    /**
+     * Fired once for every complete Guacamole instruction received, in order.
+     * 
+     * @event
+     * @param {String} opcode The Guacamole instruction opcode.
+     * @param {Array} parameters The parameters provided for the instruction,
+     *                           if any.
+     */
+    this.oninstruction = null;
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/RawAudioFormat.js.html b/doc/1.1.0/guacamole-common-js/RawAudioFormat.js.html
new file mode 100644
index 0000000..adda321
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/RawAudioFormat.js.html
@@ -0,0 +1,197 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: RawAudioFormat.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: RawAudioFormat.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A description of the format of raw PCM audio, such as that used by
+ * Guacamole.RawAudioPlayer and Guacamole.RawAudioRecorder. This object
+ * describes the number of bytes per sample, the number of channels, and the
+ * overall sample rate.
+ *
+ * @constructor
+ * @param {Guacamole.RawAudioFormat|Object} template
+ *     The object whose properties should be copied into the corresponding
+ *     properties of the new Guacamole.RawAudioFormat.
+ */
+Guacamole.RawAudioFormat = function RawAudioFormat(template) {
+
+    /**
+     * The number of bytes in each sample of audio data. This value is
+     * independent of the number of channels.
+     *
+     * @type {Number}
+     */
+    this.bytesPerSample = template.bytesPerSample;
+
+    /**
+     * The number of audio channels (ie: 1 for mono, 2 for stereo).
+     *
+     * @type {Number}
+     */
+    this.channels = template.channels;
+
+    /**
+     * The number of samples per second, per channel.
+     *
+     * @type {Number}
+     */
+    this.rate = template.rate;
+
+};
+
+/**
+ * Parses the given mimetype, returning a new Guacamole.RawAudioFormat
+ * which describes the type of raw audio data represented by that mimetype. If
+ * the mimetype is not a supported raw audio data mimetype, null is returned.
+ *
+ * @param {String} mimetype
+ *     The audio mimetype to parse.
+ *
+ * @returns {Guacamole.RawAudioFormat}
+ *     A new Guacamole.RawAudioFormat which describes the type of raw
+ *     audio data represented by the given mimetype, or null if the given
+ *     mimetype is not supported.
+ */
+Guacamole.RawAudioFormat.parse = function parseFormat(mimetype) {
+
+    var bytesPerSample;
+
+    // Rate is absolutely required - if null is still present later, the
+    // mimetype must not be supported
+    var rate = null;
+
+    // Default for both "audio/L8" and "audio/L16" is one channel
+    var channels = 1;
+
+    // "audio/L8" has one byte per sample
+    if (mimetype.substring(0, 9) === 'audio/L8;') {
+        mimetype = mimetype.substring(9);
+        bytesPerSample = 1;
+    }
+
+    // "audio/L16" has two bytes per sample
+    else if (mimetype.substring(0, 10) === 'audio/L16;') {
+        mimetype = mimetype.substring(10);
+        bytesPerSample = 2;
+    }
+
+    // All other types are unsupported
+    else
+        return null;
+
+    // Parse all parameters
+    var parameters = mimetype.split(',');
+    for (var i = 0; i &lt; parameters.length; i++) {
+
+        var parameter = parameters[i];
+
+        // All parameters must have an equals sign separating name from value
+        var equals = parameter.indexOf('=');
+        if (equals === -1)
+            return null;
+
+        // Parse name and value from parameter string
+        var name  = parameter.substring(0, equals);
+        var value = parameter.substring(equals+1);
+
+        // Handle each supported parameter
+        switch (name) {
+
+            // Number of audio channels
+            case 'channels':
+                channels = parseInt(value);
+                break;
+
+            // Sample rate
+            case 'rate':
+                rate = parseInt(value);
+                break;
+
+            // All other parameters are unsupported
+            default:
+                return null;
+
+        }
+
+    };
+
+    // The rate parameter is required
+    if (rate === null)
+        return null;
+
+    // Return parsed format details
+    return new Guacamole.RawAudioFormat({
+        bytesPerSample : bytesPerSample,
+        channels       : channels,
+        rate           : rate
+    });
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/SessionRecording.js.html b/doc/1.1.0/guacamole-common-js/SessionRecording.js.html
new file mode 100644
index 0000000..93810a1
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/SessionRecording.js.html
@@ -0,0 +1,870 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: SessionRecording.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: SessionRecording.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A recording of a Guacamole session. Given a {@link Guacamole.Tunnel}, the
+ * Guacamole.SessionRecording automatically handles incoming Guacamole
+ * instructions, storing them for playback. Playback of the recording may be
+ * controlled through function calls to the Guacamole.SessionRecording, even
+ * while the recording has not yet finished being created or downloaded.
+ *
+ * @constructor
+ * @param {Guacamole.Tunnel} tunnel
+ *     The Guacamole.Tunnel from which the instructions of the recording should
+ *     be read.
+ */
+Guacamole.SessionRecording = function SessionRecording(tunnel) {
+
+    /**
+     * Reference to this Guacamole.SessionRecording.
+     *
+     * @private
+     * @type {Guacamole.SessionRecording}
+     */
+    var recording = this;
+
+    /**
+     * The minimum number of characters which must have been read between
+     * keyframes.
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var KEYFRAME_CHAR_INTERVAL = 16384;
+
+    /**
+     * The minimum number of milliseconds which must elapse between keyframes.
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var KEYFRAME_TIME_INTERVAL = 5000;
+
+    /**
+     * The maximum amount of time to spend in any particular seek operation
+     * before returning control to the main thread, in milliseconds. Seek
+     * operations exceeding this amount of time will proceed asynchronously.
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var MAXIMUM_SEEK_TIME = 5;
+
+    /**
+     * All frames parsed from the provided tunnel.
+     *
+     * @private
+     * @type {Guacamole.SessionRecording._Frame[]}
+     */
+    var frames = [];
+
+    /**
+     * All instructions which have been read since the last frame was added to
+     * the frames array.
+     *
+     * @private
+     * @type {Guacamole.SessionRecording._Frame.Instruction[]}
+     */
+    var instructions = [];
+
+    /**
+     * The approximate number of characters which have been read from the
+     * provided tunnel since the last frame was flagged for use as a keyframe.
+     *
+     * @private
+     * @type {Number}
+     */
+    var charactersSinceLastKeyframe = 0;
+
+    /**
+     * The timestamp of the last frame which was flagged for use as a keyframe.
+     * If no timestamp has yet been flagged, this will be 0.
+     *
+     * @private
+     * @type {Number}
+     */
+    var lastKeyframeTimestamp = 0;
+
+    /**
+     * Tunnel which feeds arbitrary instructions to the client used by this
+     * Guacamole.SessionRecording for playback of the session recording.
+     *
+     * @private
+     * @type {Guacamole.SessionRecording._PlaybackTunnel}
+     */
+    var playbackTunnel = new Guacamole.SessionRecording._PlaybackTunnel();
+
+    /**
+     * Guacamole.Client instance used for visible playback of the session
+     * recording.
+     *
+     * @private
+     * @type {Guacamole.Client}
+     */
+    var playbackClient = new Guacamole.Client(playbackTunnel);
+
+    /**
+     * The current frame rendered within the playback client. If no frame is
+     * yet rendered, this will be -1.
+     *
+     * @private
+     * @type {Number}
+     */
+    var currentFrame = -1;
+
+    /**
+     * The timestamp of the frame when playback began, in milliseconds. If
+     * playback is not in progress, this will be null.
+     *
+     * @private
+     * @type {Number}
+     */
+    var startVideoTimestamp = null;
+
+    /**
+     * The real-world timestamp when playback began, in milliseconds. If
+     * playback is not in progress, this will be null.
+     *
+     * @private
+     * @type {Number}
+     */
+    var startRealTimestamp = null;
+
+    /**
+     * The ID of the timeout which will continue the in-progress seek
+     * operation. If no seek operation is in progress, the ID stored here (if
+     * any) will not be valid.
+     *
+     * @private
+     * @type {Number}
+     */
+    var seekTimeout = null;
+
+    // Start playback client connected
+    playbackClient.connect();
+
+    // Hide cursor unless mouse position is received
+    playbackClient.getDisplay().showCursor(false);
+
+    // Read instructions from provided tunnel, extracting each frame
+    tunnel.oninstruction = function handleInstruction(opcode, args) {
+
+        // Store opcode and arguments for received instruction
+        var instruction = new Guacamole.SessionRecording._Frame.Instruction(opcode, args.slice());
+        instructions.push(instruction);
+        charactersSinceLastKeyframe += instruction.getSize();
+
+        // Once a sync is received, store all instructions since the last
+        // frame as a new frame
+        if (opcode === 'sync') {
+
+            // Parse frame timestamp from sync instruction
+            var timestamp = parseInt(args[0]);
+
+            // Add a new frame containing the instructions read since last frame
+            var frame = new Guacamole.SessionRecording._Frame(timestamp, instructions);
+            frames.push(frame);
+
+            // This frame should eventually become a keyframe if enough data
+            // has been processed and enough recording time has elapsed, or if
+            // this is the absolute first frame
+            if (frames.length === 1 || (charactersSinceLastKeyframe >= KEYFRAME_CHAR_INTERVAL
+                    &amp;&amp; timestamp - lastKeyframeTimestamp >= KEYFRAME_TIME_INTERVAL)) {
+                frame.keyframe = true;
+                lastKeyframeTimestamp = timestamp;
+                charactersSinceLastKeyframe = 0;
+            }
+
+            // Clear set of instructions in preparation for next frame
+            instructions = [];
+
+            // Notify that additional content is available
+            if (recording.onprogress)
+                recording.onprogress(recording.getDuration());
+
+        }
+
+    };
+
+    /**
+     * Converts the given absolute timestamp to a timestamp which is relative
+     * to the first frame in the recording.
+     *
+     * @private
+     * @param {Number} timestamp
+     *     The timestamp to convert to a relative timestamp.
+     *
+     * @returns {Number}
+     *     The difference in milliseconds between the given timestamp and the
+     *     first frame of the recording, or zero if no frames yet exist.
+     */
+    var toRelativeTimestamp = function toRelativeTimestamp(timestamp) {
+
+        // If no frames yet exist, all timestamps are zero
+        if (frames.length === 0)
+            return 0;
+
+        // Calculate timestamp relative to first frame
+        return timestamp - frames[0].timestamp;
+
+    };
+
+    /**
+     * Searches through the given region of frames for the frame having a
+     * relative timestamp closest to the timestamp given.
+     *
+     * @private
+     * @param {Number} minIndex
+     *     The index of the first frame in the region (the frame having the
+     *     smallest timestamp).
+     *
+     * @param {Number} maxIndex
+     *     The index of the last frame in the region (the frame having the
+     *     largest timestamp).
+     *
+     * @param {Number} timestamp
+     *     The relative timestamp to search for, where zero denotes the first
+     *     frame in the recording.
+     *
+     * @returns {Number}
+     *     The index of the frame having a relative timestamp closest to the
+     *     given value.
+     */
+    var findFrame = function findFrame(minIndex, maxIndex, timestamp) {
+
+        // Do not search if the region contains only one element
+        if (minIndex === maxIndex)
+            return minIndex;
+
+        // Split search region into two halves
+        var midIndex = Math.floor((minIndex + maxIndex) / 2);
+        var midTimestamp = toRelativeTimestamp(frames[midIndex].timestamp);
+
+        // If timestamp is within lesser half, search again within that half
+        if (timestamp &lt; midTimestamp &amp;&amp; midIndex > minIndex)
+            return findFrame(minIndex, midIndex - 1, timestamp);
+
+        // If timestamp is within greater half, search again within that half
+        if (timestamp > midTimestamp &amp;&amp; midIndex &lt; maxIndex)
+            return findFrame(midIndex + 1, maxIndex, timestamp);
+
+        // Otherwise, we lucked out and found a frame with exactly the
+        // desired timestamp
+        return midIndex;
+
+    };
+
+    /**
+     * Replays the instructions associated with the given frame, sending those
+     * instructions to the playback client.
+     *
+     * @private
+     * @param {Number} index
+     *     The index of the frame within the frames array which should be
+     *     replayed.
+     */
+    var replayFrame = function replayFrame(index) {
+
+        var frame = frames[index];
+
+        // Replay all instructions within the retrieved frame
+        for (var i = 0; i &lt; frame.instructions.length; i++) {
+            var instruction = frame.instructions[i];
+            playbackTunnel.receiveInstruction(instruction.opcode, instruction.args);
+        }
+
+        // Store client state if frame is flagged as a keyframe
+        if (frame.keyframe &amp;&amp; !frame.clientState) {
+            playbackClient.exportState(function storeClientState(state) {
+                frame.clientState = state;
+            });
+        }
+
+    };
+
+    /**
+     * Moves the playback position to the given frame, resetting the state of
+     * the playback client and replaying frames as necessary. The seek
+     * operation will proceed asynchronously. If a seek operation is already in
+     * progress, that seek is first aborted. The progress of the seek operation
+     * can be observed through the onseek handler and the provided callback.
+     *
+     * @private
+     * @param {Number} index
+     *     The index of the frame which should become the new playback
+     *     position.
+     *
+     * @param {function} callback
+     *     The callback to invoke once the seek operation has completed.
+     *
+     * @param {Number} [delay=0]
+     *     The number of milliseconds that the seek operation should be
+     *     scheduled to take.
+     */
+    var seekToFrame = function seekToFrame(index, callback, delay) {
+
+        // Abort any in-progress seek
+        abortSeek();
+
+        // Replay frames asynchronously
+        seekTimeout = window.setTimeout(function continueSeek() {
+
+            var startIndex;
+
+            // Back up until startIndex represents current state
+            for (startIndex = index; startIndex >= 0; startIndex--) {
+
+                var frame = frames[startIndex];
+
+                // If we've reached the current frame, startIndex represents
+                // current state by definition
+                if (startIndex === currentFrame)
+                    break;
+
+                // If frame has associated absolute state, make that frame the
+                // current state
+                if (frame.clientState) {
+                    playbackClient.importState(frame.clientState);
+                    break;
+                }
+
+            }
+
+            // Advance to frame index after current state
+            startIndex++;
+
+            var startTime = new Date().getTime();
+
+            // Replay any applicable incremental frames
+            for (; startIndex &lt;= index; startIndex++) {
+
+                // Stop seeking if the operation is taking too long
+                var currentTime = new Date().getTime();
+                if (currentTime - startTime >= MAXIMUM_SEEK_TIME)
+                    break;
+
+                replayFrame(startIndex);
+            }
+
+            // Current frame is now at requested index
+            currentFrame = startIndex - 1;
+
+            // Notify of changes in position
+            if (recording.onseek)
+                recording.onseek(recording.getPosition());
+
+            // If the seek operation has not yet completed, schedule continuation
+            if (currentFrame !== index)
+                seekToFrame(index, callback,
+                    Math.max(delay - (new Date().getTime() - startTime), 0));
+
+            // Notify that the requested seek has completed
+            else
+                callback();
+
+        }, delay || 0);
+
+    };
+
+    /**
+     * Aborts the seek operation currently in progress, if any. If no seek
+     * operation is in progress, this function has no effect.
+     *
+     * @private
+     */
+    var abortSeek = function abortSeek() {
+        window.clearTimeout(seekTimeout);
+    };
+
+    /**
+     * Advances playback to the next frame in the frames array and schedules
+     * playback of the frame following that frame based on their associated
+     * timestamps. If no frames exist after the next frame, playback is paused.
+     *
+     * @private
+     */
+    var continuePlayback = function continuePlayback() {
+
+        // If frames remain after advancing, schedule next frame
+        if (currentFrame + 1 &lt; frames.length) {
+
+            // Pull the upcoming frame
+            var next = frames[currentFrame + 1];
+
+            // Calculate the real timestamp corresponding to when the next
+            // frame begins
+            var nextRealTimestamp = next.timestamp - startVideoTimestamp + startRealTimestamp;
+
+            // Calculate the relative delay between the current time and
+            // the next frame start
+            var delay = Math.max(nextRealTimestamp - new Date().getTime(), 0);
+
+            // Advance to next frame after enough time has elapsed
+            seekToFrame(currentFrame + 1, function frameDelayElapsed() {
+                continuePlayback();
+            }, delay);
+
+        }
+
+        // Otherwise stop playback
+        else
+            recording.pause();
+
+    };
+
+    /**
+     * Fired when new frames have become available while the recording is
+     * being downloaded.
+     *
+     * @event
+     * @param {Number} duration
+     *     The new duration of the recording, in milliseconds.
+     */
+    this.onprogress = null;
+
+    /**
+     * Fired whenever playback of the recording has started.
+     *
+     * @event
+     */
+    this.onplay = null;
+
+    /**
+     * Fired whenever playback of the recording has been paused. This may
+     * happen when playback is explicitly paused with a call to pause(), or
+     * when playback is implicitly paused due to reaching the end of the
+     * recording.
+     *
+     * @event
+     */
+    this.onpause = null;
+
+    /**
+     * Fired whenever the playback position within the recording changes.
+     *
+     * @event
+     * @param {Number} position
+     *     The new position within the recording, in milliseconds.
+     */
+    this.onseek = null;
+
+    /**
+     * Connects the underlying tunnel, beginning download of the Guacamole
+     * session. Playback of the Guacamole session cannot occur until at least
+     * one frame worth of instructions has been downloaded.
+     *
+     * @param {String} data
+     *     The data to send to the tunnel when connecting.
+     */
+    this.connect = function connect(data) {
+        tunnel.connect(data);
+    };
+
+    /**
+     * Disconnects the underlying tunnel, stopping further download of the
+     * Guacamole session.
+     */
+    this.disconnect = function disconnect() {
+        tunnel.disconnect();
+    };
+
+    /**
+     * Returns the underlying display of the Guacamole.Client used by this
+     * Guacamole.SessionRecording for playback. The display contains an Element
+     * which can be added to the DOM, causing the display (and thus playback of
+     * the recording) to become visible.
+     *
+     * @return {Guacamole.Display}
+     *     The underlying display of the Guacamole.Client used by this
+     *     Guacamole.SessionRecording for playback.
+     */
+    this.getDisplay = function getDisplay() {
+        return playbackClient.getDisplay();
+    };
+
+    /**
+     * Returns whether playback is currently in progress.
+     *
+     * @returns {Boolean}
+     *     true if playback is currently in progress, false otherwise.
+     */
+    this.isPlaying = function isPlaying() {
+        return !!startVideoTimestamp;
+    };
+
+    /**
+     * Returns the current playback position within the recording, in
+     * milliseconds, where zero is the start of the recording.
+     *
+     * @returns {Number}
+     *     The current playback position within the recording, in milliseconds.
+     */
+    this.getPosition = function getPosition() {
+
+        // Position is simply zero if playback has not started at all
+        if (currentFrame === -1)
+            return 0;
+
+        // Return current position as a millisecond timestamp relative to the
+        // start of the recording
+        return toRelativeTimestamp(frames[currentFrame].timestamp);
+
+    };
+
+    /**
+     * Returns the duration of this recording, in milliseconds. If the
+     * recording is still being downloaded, this value will gradually increase.
+     *
+     * @returns {Number}
+     *     The duration of this recording, in milliseconds.
+     */
+    this.getDuration = function getDuration() {
+
+        // If no frames yet exist, duration is zero
+        if (frames.length === 0)
+            return 0;
+
+        // Recording duration is simply the timestamp of the last frame
+        return toRelativeTimestamp(frames[frames.length - 1].timestamp);
+
+    };
+
+    /**
+     * Begins continuous playback of the recording downloaded thus far.
+     * Playback of the recording will continue until pause() is invoked or
+     * until no further frames exist. Playback is initially paused when a
+     * Guacamole.SessionRecording is created, and must be explicitly started
+     * through a call to this function. If playback is already in progress,
+     * this function has no effect. If a seek operation is in progress,
+     * playback resumes at the current position, and the seek is aborted as if
+     * completed.
+     */
+    this.play = function play() {
+
+        // If playback is not already in progress and frames remain,
+        // begin playback
+        if (!recording.isPlaying() &amp;&amp; currentFrame + 1 &lt; frames.length) {
+
+            // Notify that playback is starting
+            if (recording.onplay)
+                recording.onplay();
+
+            // Store timestamp of playback start for relative scheduling of
+            // future frames
+            var next = frames[currentFrame + 1];
+            startVideoTimestamp = next.timestamp;
+            startRealTimestamp = new Date().getTime();
+
+            // Begin playback of video
+            continuePlayback();
+
+        }
+
+    };
+
+    /**
+     * Seeks to the given position within the recording. If the recording is
+     * currently being played back, playback will continue after the seek is
+     * performed. If the recording is currently paused, playback will be
+     * paused after the seek is performed. If a seek operation is already in
+     * progress, that seek is first aborted. The seek operation will proceed
+     * asynchronously.
+     *
+     * @param {Number} position
+     *     The position within the recording to seek to, in milliseconds.
+     *
+     * @param {function} [callback]
+     *     The callback to invoke once the seek operation has completed.
+     */
+    this.seek = function seek(position, callback) {
+
+        // Do not seek if no frames exist
+        if (frames.length === 0)
+            return;
+
+        // Pause playback, preserving playback state
+        var originallyPlaying = recording.isPlaying();
+        recording.pause();
+
+        // Perform seek
+        seekToFrame(findFrame(0, frames.length - 1, position), function restorePlaybackState() {
+
+            // Restore playback state
+            if (originallyPlaying)
+                recording.play();
+
+            // Notify that seek has completed
+            if (callback)
+                callback();
+
+        });
+
+    };
+
+    /**
+     * Pauses playback of the recording, if playback is currently in progress.
+     * If playback is not in progress, this function has no effect. If a seek
+     * operation is in progress, the seek is aborted. Playback is initially
+     * paused when a Guacamole.SessionRecording is created, and must be
+     * explicitly started through a call to play().
+     */
+    this.pause = function pause() {
+
+        // Abort any in-progress seek / playback
+        abortSeek();
+
+        // Stop playback only if playback is in progress
+        if (recording.isPlaying()) {
+
+            // Notify that playback is stopping
+            if (recording.onpause)
+                recording.onpause();
+
+            // Playback is stopped
+            startVideoTimestamp = null;
+            startRealTimestamp = null;
+
+        }
+
+    };
+
+};
+
+/**
+ * A single frame of Guacamole session data. Each frame is made up of the set
+ * of instructions used to generate that frame, and the timestamp as dictated
+ * by the "sync" instruction terminating the frame. Optionally, a frame may
+ * also be associated with a snapshot of Guacamole client state, such that the
+ * frame can be rendered without replaying all previous frames.
+ *
+ * @private
+ * @constructor
+ * @param {Number} timestamp
+ *     The timestamp of this frame, as dictated by the "sync" instruction which
+ *     terminates the frame.
+ *
+ * @param {Guacamole.SessionRecording._Frame.Instruction[]} instructions
+ *     All instructions which are necessary to generate this frame relative to
+ *     the previous frame in the Guacamole session.
+ */
+Guacamole.SessionRecording._Frame = function _Frame(timestamp, instructions) {
+
+    /**
+     * Whether this frame should be used as a keyframe if possible. This value
+     * is purely advisory. The stored clientState must eventually be manually
+     * set for the frame to be used as a keyframe. By default, frames are not
+     * keyframes.
+     *
+     * @type {Boolean}
+     * @default false
+     */
+    this.keyframe = false;
+
+    /**
+     * The timestamp of this frame, as dictated by the "sync" instruction which
+     * terminates the frame.
+     *
+     * @type {Number}
+     */
+    this.timestamp = timestamp;
+
+    /**
+     * All instructions which are necessary to generate this frame relative to
+     * the previous frame in the Guacamole session.
+     *
+     * @type {Guacamole.SessionRecording._Frame.Instruction[]}
+     */
+    this.instructions = instructions;
+
+    /**
+     * A snapshot of client state after this frame was rendered, as returned by
+     * a call to exportState(). If no such snapshot has been taken, this will
+     * be null.
+     *
+     * @type {Object}
+     * @default null
+     */
+    this.clientState = null;
+
+};
+
+/**
+ * A Guacamole protocol instruction. Each Guacamole protocol instruction is
+ * made up of an opcode and set of arguments.
+ *
+ * @private
+ * @constructor
+ * @param {String} opcode
+ *     The opcode of this Guacamole instruction.
+ *
+ * @param {String[]} args
+ *     All arguments associated with this Guacamole instruction.
+ */
+Guacamole.SessionRecording._Frame.Instruction = function Instruction(opcode, args) {
+
+    /**
+     * Reference to this Guacamole.SessionRecording._Frame.Instruction.
+     *
+     * @private
+     * @type {Guacamole.SessionRecording._Frame.Instruction}
+     */
+    var instruction = this;
+
+    /**
+     * The opcode of this Guacamole instruction.
+     *
+     * @type {String}
+     */
+    this.opcode = opcode;
+
+    /**
+     * All arguments associated with this Guacamole instruction.
+     *
+     * @type {String[]}
+     */
+    this.args = args;
+
+    /**
+     * Returns the approximate number of characters which make up this
+     * instruction. This value is only approximate as it excludes the length
+     * prefixes and various delimiters used by the Guacamole protocol; only
+     * the content of the opcode and each argument is taken into account.
+     *
+     * @returns {Number}
+     *     The approximate size of this instruction, in characters.
+     */
+    this.getSize = function getSize() {
+
+        // Init with length of opcode
+        var size = instruction.opcode.length;
+
+        // Add length of all arguments
+        for (var i = 0; i &lt; instruction.args.length; i++)
+            size += instruction.args[i].length;
+
+        return size;
+
+    };
+
+};
+
+/**
+ * A read-only Guacamole.Tunnel implementation which streams instructions
+ * received through explicit calls to its receiveInstruction() function.
+ *
+ * @private
+ * @constructor
+ * @augments {Guacamole.Tunnel}
+ */
+Guacamole.SessionRecording._PlaybackTunnel = function _PlaybackTunnel() {
+
+    /**
+     * Reference to this Guacamole.SessionRecording._PlaybackTunnel.
+     *
+     * @private
+     * @type {Guacamole.SessionRecording._PlaybackTunnel}
+     */
+    var tunnel = this;
+
+    this.connect = function connect(data) {
+        // Do nothing
+    };
+
+    this.sendMessage = function sendMessage(elements) {
+        // Do nothing
+    };
+
+    this.disconnect = function disconnect() {
+        // Do nothing
+    };
+
+    /**
+     * Invokes this tunnel's oninstruction handler, notifying users of this
+     * tunnel (such as a Guacamole.Client instance) that an instruction has
+     * been received. If the oninstruction handler has not been set, this
+     * function has no effect.
+     *
+     * @param {String} opcode
+     *     The opcode of the Guacamole instruction.
+     *
+     * @param {String[]} args
+     *     All arguments associated with this Guacamole instruction.
+     */
+    this.receiveInstruction = function receiveInstruction(opcode, args) {
+        if (tunnel.oninstruction)
+            tunnel.oninstruction(opcode, args);
+    };
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Status.js.html b/doc/1.1.0/guacamole-common-js/Status.js.html
new file mode 100644
index 0000000..f42b0bd
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Status.js.html
@@ -0,0 +1,369 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Status.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Status.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A Guacamole status. Each Guacamole status consists of a status code, defined
+ * by the protocol, and an optional human-readable message, usually only
+ * included for debugging convenience.
+ *
+ * @constructor
+ * @param {Number} code
+ *     The Guacamole status code, as defined by Guacamole.Status.Code.
+ *
+ * @param {String} [message]
+ *     An optional human-readable message.
+ */
+Guacamole.Status = function(code, message) {
+
+    /**
+     * Reference to this Guacamole.Status.
+     * @private
+     */
+    var guac_status = this;
+
+    /**
+     * The Guacamole status code.
+     * @see Guacamole.Status.Code
+     * @type {Number}
+     */
+    this.code = code;
+
+    /**
+     * An arbitrary human-readable message associated with this status, if any.
+     * The human-readable message is not required, and is generally provided
+     * for debugging purposes only. For user feedback, it is better to translate
+     * the Guacamole status code into a message.
+     * 
+     * @type {String}
+     */
+    this.message = message;
+
+    /**
+     * Returns whether this status represents an error.
+     * @returns {Boolean} true if this status represents an error, false
+     *                    otherwise.
+     */
+    this.isError = function() {
+        return guac_status.code &lt; 0 || guac_status.code > 0x00FF;
+    };
+
+};
+
+/**
+ * Enumeration of all Guacamole status codes.
+ */
+Guacamole.Status.Code = {
+
+    /**
+     * The operation succeeded.
+     *
+     * @type {Number}
+     */
+    "SUCCESS": 0x0000,
+
+    /**
+     * The requested operation is unsupported.
+     *
+     * @type {Number}
+     */
+    "UNSUPPORTED": 0x0100,
+
+    /**
+     * The operation could not be performed due to an internal failure.
+     *
+     * @type {Number}
+     */
+    "SERVER_ERROR": 0x0200,
+
+    /**
+     * The operation could not be performed as the server is busy.
+     *
+     * @type {Number}
+     */
+    "SERVER_BUSY": 0x0201,
+
+    /**
+     * The operation could not be performed because the upstream server is not
+     * responding.
+     *
+     * @type {Number}
+     */
+    "UPSTREAM_TIMEOUT": 0x0202,
+
+    /**
+     * The operation was unsuccessful due to an error or otherwise unexpected
+     * condition of the upstream server.
+     *
+     * @type {Number}
+     */
+    "UPSTREAM_ERROR": 0x0203,
+
+    /**
+     * The operation could not be performed as the requested resource does not
+     * exist.
+     *
+     * @type {Number}
+     */
+    "RESOURCE_NOT_FOUND": 0x0204,
+
+    /**
+     * The operation could not be performed as the requested resource is
+     * already in use.
+     *
+     * @type {Number}
+     */
+    "RESOURCE_CONFLICT": 0x0205,
+
+    /**
+     * The operation could not be performed as the requested resource is now
+     * closed.
+     *
+     * @type {Number}
+     */
+    "RESOURCE_CLOSED": 0x0206,
+
+    /**
+     * The operation could not be performed because the upstream server does
+     * not appear to exist.
+     *
+     * @type {Number}
+     */
+    "UPSTREAM_NOT_FOUND": 0x0207,
+
+    /**
+     * The operation could not be performed because the upstream server is not
+     * available to service the request.
+     *
+     * @type {Number}
+     */
+    "UPSTREAM_UNAVAILABLE": 0x0208,
+
+    /**
+     * The session within the upstream server has ended because it conflicted
+     * with another session.
+     *
+     * @type {Number}
+     */
+    "SESSION_CONFLICT": 0x0209,
+
+    /**
+     * The session within the upstream server has ended because it appeared to
+     * be inactive.
+     *
+     * @type {Number}
+     */
+    "SESSION_TIMEOUT": 0x020A,
+
+    /**
+     * The session within the upstream server has been forcibly terminated.
+     *
+     * @type {Number}
+     */
+    "SESSION_CLOSED": 0x020B,
+
+    /**
+     * The operation could not be performed because bad parameters were given.
+     *
+     * @type {Number}
+     */
+    "CLIENT_BAD_REQUEST": 0x0300,
+
+    /**
+     * Permission was denied to perform the operation, as the user is not yet
+     * authorized (not yet logged in, for example).
+     *
+     * @type {Number}
+     */
+    "CLIENT_UNAUTHORIZED": 0x0301,
+
+    /**
+     * Permission was denied to perform the operation, and this permission will
+     * not be granted even if the user is authorized.
+     *
+     * @type {Number}
+     */
+    "CLIENT_FORBIDDEN": 0x0303,
+
+    /**
+     * The client took too long to respond.
+     *
+     * @type {Number}
+     */
+    "CLIENT_TIMEOUT": 0x0308,
+
+    /**
+     * The client sent too much data.
+     *
+     * @type {Number}
+     */
+    "CLIENT_OVERRUN": 0x030D,
+
+    /**
+     * The client sent data of an unsupported or unexpected type.
+     *
+     * @type {Number}
+     */
+    "CLIENT_BAD_TYPE": 0x030F,
+
+    /**
+     * The operation failed because the current client is already using too
+     * many resources.
+     *
+     * @type {Number}
+     */
+    "CLIENT_TOO_MANY": 0x031D
+
+};
+
+/**
+ * Returns the Guacamole protocol status code which most closely
+ * represents the given HTTP status code.
+ *
+ * @param {Number} status
+ *     The HTTP status code to translate into a Guacamole protocol status
+ *     code.
+ *
+ * @returns {Number}
+ *     The Guacamole protocol status code which most closely represents the
+ *     given HTTP status code.
+ */
+Guacamole.Status.Code.fromHTTPCode = function fromHTTPCode(status) {
+
+    // Translate status codes with known equivalents
+    switch (status) {
+
+        // HTTP 400 - Bad request
+        case 400:
+            return Guacamole.Status.Code.CLIENT_BAD_REQUEST;
+
+        // HTTP 403 - Forbidden
+        case 403:
+            return Guacamole.Status.Code.CLIENT_FORBIDDEN;
+
+        // HTTP 404 - Resource not found
+        case 404:
+            return Guacamole.Status.Code.RESOURCE_NOT_FOUND;
+
+        // HTTP 429 - Too many requests
+        case 429:
+            return Guacamole.Status.Code.CLIENT_TOO_MANY;
+
+        // HTTP 503 - Server unavailable
+        case 503:
+            return Guacamole.Status.Code.SERVER_BUSY;
+
+    }
+
+    // Default all other codes to generic internal error
+    return Guacamole.Status.Code.SERVER_ERROR;
+
+};
+
+/**
+ * Returns the Guacamole protocol status code which most closely
+ * represents the given WebSocket status code.
+ *
+ * @param {Number} code
+ *     The WebSocket status code to translate into a Guacamole protocol
+ *     status code.
+ *
+ * @returns {Number}
+ *     The Guacamole protocol status code which most closely represents the
+ *     given WebSocket status code.
+ */
+Guacamole.Status.Code.fromWebSocketCode = function fromWebSocketCode(code) {
+
+    // Translate status codes with known equivalents
+    switch (code) {
+
+        // Successful disconnect (no error)
+        case 1000: // Normal Closure
+            return Guacamole.Status.Code.SUCCESS;
+
+        // Codes which indicate the server is not reachable
+        case 1006: // Abnormal Closure (also signalled by JavaScript when the connection cannot be opened in the first place)
+        case 1015: // TLS Handshake
+            return Guacamole.Status.Code.UPSTREAM_NOT_FOUND;
+
+        // Codes which indicate the server is reachable but busy/unavailable
+        case 1001: // Going Away
+        case 1012: // Service Restart
+        case 1013: // Try Again Later
+        case 1014: // Bad Gateway
+            return Guacamole.Status.Code.UPSTREAM_UNAVAILABLE;
+
+    }
+
+    // Default all other codes to generic internal error
+    return Guacamole.Status.Code.SERVER_ERROR;
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/StringReader.js.html b/doc/1.1.0/guacamole-common-js/StringReader.js.html
new file mode 100644
index 0000000..4cc99d2
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/StringReader.js.html
@@ -0,0 +1,217 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: StringReader.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: StringReader.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A reader which automatically handles the given input stream, returning
+ * strictly text data. Note that this object will overwrite any installed event
+ * handlers on the given Guacamole.InputStream.
+ * 
+ * @constructor
+ * @param {Guacamole.InputStream} stream The stream that data will be read
+ *                                       from.
+ */
+Guacamole.StringReader = function(stream) {
+
+    /**
+     * Reference to this Guacamole.InputStream.
+     * @private
+     */
+    var guac_reader = this;
+
+    /**
+     * Wrapped Guacamole.ArrayBufferReader.
+     * @private
+     * @type {Guacamole.ArrayBufferReader}
+     */
+    var array_reader = new Guacamole.ArrayBufferReader(stream);
+
+    /**
+     * The number of bytes remaining for the current codepoint.
+     *
+     * @private
+     * @type {Number}
+     */
+    var bytes_remaining = 0;
+
+    /**
+     * The current codepoint value, as calculated from bytes read so far.
+     *
+     * @private
+     * @type {Number}
+     */
+    var codepoint = 0;
+
+    /**
+     * Decodes the given UTF-8 data into a Unicode string. The data may end in
+     * the middle of a multibyte character.
+     * 
+     * @private
+     * @param {ArrayBuffer} buffer Arbitrary UTF-8 data.
+     * @return {String} A decoded Unicode string.
+     */
+    function __decode_utf8(buffer) {
+
+        var text = "";
+
+        var bytes = new Uint8Array(buffer);
+        for (var i=0; i&lt;bytes.length; i++) {
+
+            // Get current byte
+            var value = bytes[i];
+
+            // Start new codepoint if nothing yet read
+            if (bytes_remaining === 0) {
+
+                // 1 byte (0xxxxxxx)
+                if ((value | 0x7F) === 0x7F)
+                    text += String.fromCharCode(value);
+
+                // 2 byte (110xxxxx)
+                else if ((value | 0x1F) === 0xDF) {
+                    codepoint = value &amp; 0x1F;
+                    bytes_remaining = 1;
+                }
+
+                // 3 byte (1110xxxx)
+                else if ((value | 0x0F )=== 0xEF) {
+                    codepoint = value &amp; 0x0F;
+                    bytes_remaining = 2;
+                }
+
+                // 4 byte (11110xxx)
+                else if ((value | 0x07) === 0xF7) {
+                    codepoint = value &amp; 0x07;
+                    bytes_remaining = 3;
+                }
+
+                // Invalid byte
+                else
+                    text += "\uFFFD";
+
+            }
+
+            // Continue existing codepoint (10xxxxxx)
+            else if ((value | 0x3F) === 0xBF) {
+
+                codepoint = (codepoint &lt;&lt; 6) | (value &amp; 0x3F);
+                bytes_remaining--;
+
+                // Write codepoint if finished
+                if (bytes_remaining === 0)
+                    text += String.fromCharCode(codepoint);
+
+            }
+
+            // Invalid byte
+            else {
+                bytes_remaining = 0;
+                text += "\uFFFD";
+            }
+
+        }
+
+        return text;
+
+    }
+
+    // Receive blobs as strings
+    array_reader.ondata = function(buffer) {
+
+        // Decode UTF-8
+        var text = __decode_utf8(buffer);
+
+        // Call handler, if present
+        if (guac_reader.ontext)
+            guac_reader.ontext(text);
+
+    };
+
+    // Simply call onend when end received
+    array_reader.onend = function() {
+        if (guac_reader.onend)
+            guac_reader.onend();
+    };
+
+    /**
+     * Fired once for every blob of text data received.
+     * 
+     * @event
+     * @param {String} text The data packet received.
+     */
+    this.ontext = null;
+
+    /**
+     * Fired once this stream is finished and no further data will be written.
+     * @event
+     */
+    this.onend = null;
+
+};</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/StringWriter.js.html b/doc/1.1.0/guacamole-common-js/StringWriter.js.html
new file mode 100644
index 0000000..8ba01e0
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/StringWriter.js.html
@@ -0,0 +1,242 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: StringWriter.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: StringWriter.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A writer which automatically writes to the given output stream with text
+ * data.
+ * 
+ * @constructor
+ * @param {Guacamole.OutputStream} stream The stream that data will be written
+ *                                        to.
+ */
+Guacamole.StringWriter = function(stream) {
+
+    /**
+     * Reference to this Guacamole.StringWriter.
+     * @private
+     */
+    var guac_writer = this;
+
+    /**
+     * Wrapped Guacamole.ArrayBufferWriter.
+     * @private
+     * @type {Guacamole.ArrayBufferWriter}
+     */
+    var array_writer = new Guacamole.ArrayBufferWriter(stream);
+
+    /**
+     * Internal buffer for UTF-8 output.
+     * @private
+     */
+    var buffer = new Uint8Array(8192);
+
+    /**
+     * The number of bytes currently in the buffer.
+     * @private
+     */
+    var length = 0;
+
+    // Simply call onack for acknowledgements
+    array_writer.onack = function(status) {
+        if (guac_writer.onack)
+            guac_writer.onack(status);
+    };
+
+    /**
+     * Expands the size of the underlying buffer by the given number of bytes,
+     * updating the length appropriately.
+     * 
+     * @private
+     * @param {Number} bytes The number of bytes to add to the underlying
+     *                       buffer.
+     */
+    function __expand(bytes) {
+
+        // Resize buffer if more space needed
+        if (length+bytes >= buffer.length) {
+            var new_buffer = new Uint8Array((length+bytes)*2);
+            new_buffer.set(buffer);
+            buffer = new_buffer;
+        }
+
+        length += bytes;
+
+    }
+
+    /**
+     * Appends a single Unicode character to the current buffer, resizing the
+     * buffer if necessary. The character will be encoded as UTF-8.
+     * 
+     * @private
+     * @param {Number} codepoint The codepoint of the Unicode character to
+     *                           append.
+     */
+    function __append_utf8(codepoint) {
+
+        var mask;
+        var bytes;
+
+        // 1 byte
+        if (codepoint &lt;= 0x7F) {
+            mask = 0x00;
+            bytes = 1;
+        }
+
+        // 2 byte
+        else if (codepoint &lt;= 0x7FF) {
+            mask = 0xC0;
+            bytes = 2;
+        }
+
+        // 3 byte
+        else if (codepoint &lt;= 0xFFFF) {
+            mask = 0xE0;
+            bytes = 3;
+        }
+
+        // 4 byte
+        else if (codepoint &lt;= 0x1FFFFF) {
+            mask = 0xF0;
+            bytes = 4;
+        }
+
+        // If invalid codepoint, append replacement character
+        else {
+            __append_utf8(0xFFFD);
+            return;
+        }
+
+        // Offset buffer by size
+        __expand(bytes);
+        var offset = length - 1;
+
+        // Add trailing bytes, if any
+        for (var i=1; i&lt;bytes; i++) {
+            buffer[offset--] = 0x80 | (codepoint &amp; 0x3F);
+            codepoint >>= 6;
+        }
+
+        // Set initial byte
+        buffer[offset] = mask | codepoint;
+
+    }
+
+    /**
+     * Encodes the given string as UTF-8, returning an ArrayBuffer containing
+     * the resulting bytes.
+     * 
+     * @private
+     * @param {String} text The string to encode as UTF-8.
+     * @return {Uint8Array} The encoded UTF-8 data.
+     */
+    function __encode_utf8(text) {
+
+        // Fill buffer with UTF-8
+        for (var i=0; i&lt;text.length; i++) {
+            var codepoint = text.charCodeAt(i);
+            __append_utf8(codepoint);
+        }
+
+        // Flush buffer
+        if (length > 0) {
+            var out_buffer = buffer.subarray(0, length);
+            length = 0;
+            return out_buffer;
+        }
+
+    }
+
+    /**
+     * Sends the given text.
+     * 
+     * @param {String} text The text to send.
+     */
+    this.sendText = function(text) {
+        if (text.length)
+            array_writer.sendData(__encode_utf8(text));
+    };
+
+    /**
+     * Signals that no further text will be sent, effectively closing the
+     * stream.
+     */
+    this.sendEnd = function() {
+        array_writer.sendEnd();
+    };
+
+    /**
+     * Fired for received data, if acknowledged by the server.
+     * @event
+     * @param {Guacamole.Status} status The status of the operation.
+     */
+    this.onack = null;
+
+};</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Tunnel.js.html b/doc/1.1.0/guacamole-common-js/Tunnel.js.html
new file mode 100644
index 0000000..5dd57d6
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Tunnel.js.html
@@ -0,0 +1,1435 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Tunnel.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Tunnel.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Core object providing abstract communication for Guacamole. This object
+ * is a null implementation whose functions do nothing. Guacamole applications
+ * should use {@link Guacamole.HTTPTunnel} instead, or implement their own tunnel based
+ * on this one.
+ * 
+ * @constructor
+ * @see Guacamole.HTTPTunnel
+ */
+Guacamole.Tunnel = function() {
+
+    /**
+     * Connect to the tunnel with the given optional data. This data is
+     * typically used for authentication. The format of data accepted is
+     * up to the tunnel implementation.
+     * 
+     * @param {String} data The data to send to the tunnel when connecting.
+     */
+    this.connect = function(data) {};
+    
+    /**
+     * Disconnect from the tunnel.
+     */
+    this.disconnect = function() {};
+    
+    /**
+     * Send the given message through the tunnel to the service on the other
+     * side. All messages are guaranteed to be received in the order sent.
+     * 
+     * @param {...*} elements
+     *     The elements of the message to send to the service on the other side
+     *     of the tunnel.
+     */
+    this.sendMessage = function(elements) {};
+
+    /**
+     * Changes the stored numeric state of this tunnel, firing the onstatechange
+     * event if the new state is different and a handler has been defined.
+     *
+     * @private
+     * @param {Number} state
+     *     The new state of this tunnel.
+     */
+    this.setState = function(state) {
+
+        // Notify only if state changes
+        if (state !== this.state) {
+            this.state = state;
+            if (this.onstatechange)
+                this.onstatechange(state);
+        }
+
+    };
+
+    /**
+     * Returns whether this tunnel is currently connected.
+     *
+     * @returns {Boolean}
+     *     true if this tunnel is currently connected, false otherwise.
+     */
+    this.isConnected = function isConnected() {
+        return this.state === Guacamole.Tunnel.State.OPEN
+            || this.state === Guacamole.Tunnel.State.UNSTABLE;
+    };
+
+    /**
+     * The current state of this tunnel.
+     * 
+     * @type {Number}
+     */
+    this.state = Guacamole.Tunnel.State.CONNECTING;
+
+    /**
+     * The maximum amount of time to wait for data to be received, in
+     * milliseconds. If data is not received within this amount of time,
+     * the tunnel is closed with an error. The default value is 15000.
+     *
+     * @type {Number}
+     */
+    this.receiveTimeout = 15000;
+
+    /**
+     * The amount of time to wait for data to be received before considering
+     * the connection to be unstable, in milliseconds. If data is not received
+     * within this amount of time, the tunnel status is updated to warn that
+     * the connection appears unresponsive and may close. The default value is
+     * 1500.
+     * 
+     * @type {Number}
+     */
+    this.unstableThreshold = 1500;
+
+    /**
+     * The UUID uniquely identifying this tunnel. If not yet known, this will
+     * be null.
+     *
+     * @type {String}
+     */
+    this.uuid = null;
+
+    /**
+     * Fired whenever an error is encountered by the tunnel.
+     * 
+     * @event
+     * @param {Guacamole.Status} status A status object which describes the
+     *                                  error.
+     */
+    this.onerror = null;
+
+    /**
+     * Fired whenever the state of the tunnel changes.
+     * 
+     * @event
+     * @param {Number} state The new state of the client.
+     */
+    this.onstatechange = null;
+
+    /**
+     * Fired once for every complete Guacamole instruction received, in order.
+     * 
+     * @event
+     * @param {String} opcode The Guacamole instruction opcode.
+     * @param {Array} parameters The parameters provided for the instruction,
+     *                           if any.
+     */
+    this.oninstruction = null;
+
+};
+
+/**
+ * The Guacamole protocol instruction opcode reserved for arbitrary internal
+ * use by tunnel implementations. The value of this opcode is guaranteed to be
+ * the empty string (""). Tunnel implementations may use this opcode for any
+ * purpose. It is currently used by the HTTP tunnel to mark the end of the HTTP
+ * response, and by the WebSocket tunnel to transmit the tunnel UUID and send
+ * connection stability test pings/responses.
+ *
+ * @constant
+ * @type {String}
+ */
+Guacamole.Tunnel.INTERNAL_DATA_OPCODE = '';
+
+/**
+ * All possible tunnel states.
+ */
+Guacamole.Tunnel.State = {
+
+    /**
+     * A connection is in pending. It is not yet known whether connection was
+     * successful.
+     * 
+     * @type {Number}
+     */
+    "CONNECTING": 0,
+
+    /**
+     * Connection was successful, and data is being received.
+     * 
+     * @type {Number}
+     */
+    "OPEN": 1,
+
+    /**
+     * The connection is closed. Connection may not have been successful, the
+     * tunnel may have been explicitly closed by either side, or an error may
+     * have occurred.
+     * 
+     * @type {Number}
+     */
+    "CLOSED": 2,
+
+    /**
+     * The connection is open, but communication through the tunnel appears to
+     * be disrupted, and the connection may close as a result.
+     *
+     * @type {Number}
+     */
+    "UNSTABLE" : 3
+
+};
+
+/**
+ * Guacamole Tunnel implemented over HTTP via XMLHttpRequest.
+ * 
+ * @constructor
+ * @augments Guacamole.Tunnel
+ *
+ * @param {String} tunnelURL
+ *     The URL of the HTTP tunneling service.
+ *
+ * @param {Boolean} [crossDomain=false]
+ *     Whether tunnel requests will be cross-domain, and thus must use CORS
+ *     mechanisms and headers. By default, it is assumed that tunnel requests
+ *     will be made to the same domain.
+ *
+ * @param {Object} [extraTunnelHeaders={}]
+ *     Key value pairs containing the header names and values of any additional
+ *     headers to be sent in tunnel requests. By default, no extra headers will
+ *     be added.
+ */
+Guacamole.HTTPTunnel = function(tunnelURL, crossDomain, extraTunnelHeaders) {
+
+    /**
+     * Reference to this HTTP tunnel.
+     * @private
+     */
+    var tunnel = this;
+
+    var TUNNEL_CONNECT = tunnelURL + "?connect";
+    var TUNNEL_READ    = tunnelURL + "?read:";
+    var TUNNEL_WRITE   = tunnelURL + "?write:";
+
+    var POLLING_ENABLED     = 1;
+    var POLLING_DISABLED    = 0;
+
+    // Default to polling - will be turned off automatically if not needed
+    var pollingMode = POLLING_ENABLED;
+
+    var sendingMessages = false;
+    var outputMessageBuffer = "";
+
+    // If requests are expected to be cross-domain, the cookie that the HTTP
+    // tunnel depends on will only be sent if withCredentials is true
+    var withCredentials = !!crossDomain;
+
+    /**
+     * The current receive timeout ID, if any.
+     * @private
+     */
+    var receive_timeout = null;
+
+    /**
+     * The current connection stability timeout ID, if any.
+     *
+     * @private
+     * @type {Number}
+     */
+    var unstableTimeout = null;
+
+    /**
+     * The current connection stability test ping interval ID, if any. This
+     * will only be set upon successful connection.
+     *
+     * @private
+     * @type {Number}
+     */
+    var pingInterval = null;
+
+    /**
+     * The number of milliseconds to wait between connection stability test
+     * pings.
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var PING_FREQUENCY = 500;
+
+    /**
+     * Additional headers to be sent in tunnel requests. This dictionary can be
+     * populated with key/value header pairs to pass information such as authentication
+     * tokens, etc.
+     *
+     * @private
+     */
+    var extraHeaders = extraTunnelHeaders || {};
+
+    /**
+     * Adds the configured additional headers to the given request.
+     *
+     * @param {XMLHttpRequest} request
+     *     The request where the configured extra headers will be added.
+     *
+     * @param {Object} headers
+     *     The headers to be added to the request.
+     *
+     * @private
+     */
+    function addExtraHeaders(request, headers) {
+        for (var name in headers) {
+            request.setRequestHeader(name, headers[name]);
+        }
+    }
+
+    /**
+     * Initiates a timeout which, if data is not received, causes the tunnel
+     * to close with an error.
+     * 
+     * @private
+     */
+    function reset_timeout() {
+
+        // Get rid of old timeouts (if any)
+        window.clearTimeout(receive_timeout);
+        window.clearTimeout(unstableTimeout);
+
+        // Clear unstable status
+        if (tunnel.state === Guacamole.Tunnel.State.UNSTABLE)
+            tunnel.setState(Guacamole.Tunnel.State.OPEN);
+
+        // Set new timeout for tracking overall connection timeout
+        receive_timeout = window.setTimeout(function () {
+            close_tunnel(new Guacamole.Status(Guacamole.Status.Code.UPSTREAM_TIMEOUT, "Server timeout."));
+        }, tunnel.receiveTimeout);
+
+        // Set new timeout for tracking suspected connection instability
+        unstableTimeout = window.setTimeout(function() {
+            tunnel.setState(Guacamole.Tunnel.State.UNSTABLE);
+        }, tunnel.unstableThreshold);
+
+    }
+
+    /**
+     * Closes this tunnel, signaling the given status and corresponding
+     * message, which will be sent to the onerror handler if the status is
+     * an error status.
+     * 
+     * @private
+     * @param {Guacamole.Status} status The status causing the connection to
+     *                                  close;
+     */
+    function close_tunnel(status) {
+
+        // Get rid of old timeouts (if any)
+        window.clearTimeout(receive_timeout);
+        window.clearTimeout(unstableTimeout);
+
+        // Cease connection test pings
+        window.clearInterval(pingInterval);
+
+        // Ignore if already closed
+        if (tunnel.state === Guacamole.Tunnel.State.CLOSED)
+            return;
+
+        // If connection closed abnormally, signal error.
+        if (status.code !== Guacamole.Status.Code.SUCCESS &amp;&amp; tunnel.onerror) {
+
+            // Ignore RESOURCE_NOT_FOUND if we've already connected, as that
+            // only signals end-of-stream for the HTTP tunnel.
+            if (tunnel.state === Guacamole.Tunnel.State.CONNECTING
+                    || status.code !== Guacamole.Status.Code.RESOURCE_NOT_FOUND)
+                tunnel.onerror(status);
+
+        }
+
+        // Reset output message buffer
+        sendingMessages = false;
+
+        // Mark as closed
+        tunnel.setState(Guacamole.Tunnel.State.CLOSED);
+
+    }
+
+
+    this.sendMessage = function() {
+
+        // Do not attempt to send messages if not connected
+        if (!tunnel.isConnected())
+            return;
+
+        // Do not attempt to send empty messages
+        if (arguments.length === 0)
+            return;
+
+        /**
+         * Converts the given value to a length/string pair for use as an
+         * element in a Guacamole instruction.
+         * 
+         * @private
+         * @param value The value to convert.
+         * @return {String} The converted value. 
+         */
+        function getElement(value) {
+            var string = new String(value);
+            return string.length + "." + string; 
+        }
+
+        // Initialized message with first element
+        var message = getElement(arguments[0]);
+
+        // Append remaining elements
+        for (var i=1; i&lt;arguments.length; i++)
+            message += "," + getElement(arguments[i]);
+
+        // Final terminator
+        message += ";";
+
+        // Add message to buffer
+        outputMessageBuffer += message;
+
+        // Send if not currently sending
+        if (!sendingMessages)
+            sendPendingMessages();
+
+    };
+
+    function sendPendingMessages() {
+
+        // Do not attempt to send messages if not connected
+        if (!tunnel.isConnected())
+            return;
+
+        if (outputMessageBuffer.length > 0) {
+
+            sendingMessages = true;
+
+            var message_xmlhttprequest = new XMLHttpRequest();
+            message_xmlhttprequest.open("POST", TUNNEL_WRITE + tunnel.uuid);
+            message_xmlhttprequest.withCredentials = withCredentials;
+            addExtraHeaders(message_xmlhttprequest, extraHeaders);
+            message_xmlhttprequest.setRequestHeader("Content-type", "application/octet-stream");
+
+            // Once response received, send next queued event.
+            message_xmlhttprequest.onreadystatechange = function() {
+                if (message_xmlhttprequest.readyState === 4) {
+
+                    reset_timeout();
+
+                    // If an error occurs during send, handle it
+                    if (message_xmlhttprequest.status !== 200)
+                        handleHTTPTunnelError(message_xmlhttprequest);
+
+                    // Otherwise, continue the send loop
+                    else
+                        sendPendingMessages();
+
+                }
+            };
+
+            message_xmlhttprequest.send(outputMessageBuffer);
+            outputMessageBuffer = ""; // Clear buffer
+
+        }
+        else
+            sendingMessages = false;
+
+    }
+
+    function handleHTTPTunnelError(xmlhttprequest) {
+
+        // Pull status code directly from headers provided by Guacamole
+        var code = parseInt(xmlhttprequest.getResponseHeader("Guacamole-Status-Code"));
+        if (code) {
+            var message = xmlhttprequest.getResponseHeader("Guacamole-Error-Message");
+            close_tunnel(new Guacamole.Status(code, message));
+        }
+
+        // Failing that, derive a Guacamole status code from the HTTP status
+        // code provided by the browser
+        else if (xmlhttprequest.status)
+            close_tunnel(new Guacamole.Status(
+                Guacamole.Status.Code.fromHTTPCode(xmlhttprequest.status),
+                    xmlhttprequest.statusText));
+
+        // Otherwise, assume server is unreachable
+        else
+            close_tunnel(new Guacamole.Status(Guacamole.Status.Code.UPSTREAM_NOT_FOUND));
+
+    }
+
+    function handleResponse(xmlhttprequest) {
+
+        var interval = null;
+        var nextRequest = null;
+
+        var dataUpdateEvents = 0;
+
+        // The location of the last element's terminator
+        var elementEnd = -1;
+
+        // Where to start the next length search or the next element
+        var startIndex = 0;
+
+        // Parsed elements
+        var elements = new Array();
+
+        function parseResponse() {
+
+            // Do not handle responses if not connected
+            if (!tunnel.isConnected()) {
+                
+                // Clean up interval if polling
+                if (interval !== null)
+                    clearInterval(interval);
+                
+                return;
+            }
+
+            // Do not parse response yet if not ready
+            if (xmlhttprequest.readyState &lt; 2) return;
+
+            // Attempt to read status
+            var status;
+            try { status = xmlhttprequest.status; }
+
+            // If status could not be read, assume successful.
+            catch (e) { status = 200; }
+
+            // Start next request as soon as possible IF request was successful
+            if (!nextRequest &amp;&amp; status === 200)
+                nextRequest = makeRequest();
+
+            // Parse stream when data is received and when complete.
+            if (xmlhttprequest.readyState === 3 ||
+                xmlhttprequest.readyState === 4) {
+
+                reset_timeout();
+
+                // Also poll every 30ms (some browsers don't repeatedly call onreadystatechange for new data)
+                if (pollingMode === POLLING_ENABLED) {
+                    if (xmlhttprequest.readyState === 3 &amp;&amp; !interval)
+                        interval = setInterval(parseResponse, 30);
+                    else if (xmlhttprequest.readyState === 4 &amp;&amp; interval)
+                        clearInterval(interval);
+                }
+
+                // If canceled, stop transfer
+                if (xmlhttprequest.status === 0) {
+                    tunnel.disconnect();
+                    return;
+                }
+
+                // Halt on error during request
+                else if (xmlhttprequest.status !== 200) {
+                    handleHTTPTunnelError(xmlhttprequest);
+                    return;
+                }
+
+                // Attempt to read in-progress data
+                var current;
+                try { current = xmlhttprequest.responseText; }
+
+                // Do not attempt to parse if data could not be read
+                catch (e) { return; }
+
+                // While search is within currently received data
+                while (elementEnd &lt; current.length) {
+
+                    // If we are waiting for element data
+                    if (elementEnd >= startIndex) {
+
+                        // We now have enough data for the element. Parse.
+                        var element = current.substring(startIndex, elementEnd);
+                        var terminator = current.substring(elementEnd, elementEnd+1);
+
+                        // Add element to array
+                        elements.push(element);
+
+                        // If last element, handle instruction
+                        if (terminator === ";") {
+
+                            // Get opcode
+                            var opcode = elements.shift();
+
+                            // Call instruction handler.
+                            if (tunnel.oninstruction)
+                                tunnel.oninstruction(opcode, elements);
+
+                            // Clear elements
+                            elements.length = 0;
+
+                        }
+
+                        // Start searching for length at character after
+                        // element terminator
+                        startIndex = elementEnd + 1;
+
+                    }
+
+                    // Search for end of length
+                    var lengthEnd = current.indexOf(".", startIndex);
+                    if (lengthEnd !== -1) {
+
+                        // Parse length
+                        var length = parseInt(current.substring(elementEnd+1, lengthEnd));
+
+                        // If we're done parsing, handle the next response.
+                        if (length === 0) {
+
+                            // Clean up interval if polling
+                            if (interval)
+                                clearInterval(interval);
+                           
+                            // Clean up object
+                            xmlhttprequest.onreadystatechange = null;
+                            xmlhttprequest.abort();
+
+                            // Start handling next request
+                            if (nextRequest)
+                                handleResponse(nextRequest);
+
+                            // Done parsing
+                            break;
+
+                        }
+
+                        // Calculate start of element
+                        startIndex = lengthEnd + 1;
+
+                        // Calculate location of element terminator
+                        elementEnd = startIndex + length;
+
+                    }
+                    
+                    // If no period yet, continue search when more data
+                    // is received
+                    else {
+                        startIndex = current.length;
+                        break;
+                    }
+
+                } // end parse loop
+
+            }
+
+        }
+
+        // If response polling enabled, attempt to detect if still
+        // necessary (via wrapping parseResponse())
+        if (pollingMode === POLLING_ENABLED) {
+            xmlhttprequest.onreadystatechange = function() {
+
+                // If we receive two or more readyState==3 events,
+                // there is no need to poll.
+                if (xmlhttprequest.readyState === 3) {
+                    dataUpdateEvents++;
+                    if (dataUpdateEvents >= 2) {
+                        pollingMode = POLLING_DISABLED;
+                        xmlhttprequest.onreadystatechange = parseResponse;
+                    }
+                }
+
+                parseResponse();
+            };
+        }
+
+        // Otherwise, just parse
+        else
+            xmlhttprequest.onreadystatechange = parseResponse;
+
+        parseResponse();
+
+    }
+
+    /**
+     * Arbitrary integer, unique for each tunnel read request.
+     * @private
+     */
+    var request_id = 0;
+
+    function makeRequest() {
+
+        // Make request, increment request ID
+        var xmlhttprequest = new XMLHttpRequest();
+        xmlhttprequest.open("GET", TUNNEL_READ + tunnel.uuid + ":" + (request_id++));
+        xmlhttprequest.withCredentials = withCredentials;
+        addExtraHeaders(xmlhttprequest, extraHeaders);
+        xmlhttprequest.send(null);
+
+        return xmlhttprequest;
+
+    }
+
+    this.connect = function(data) {
+
+        // Start waiting for connect
+        reset_timeout();
+
+        // Mark the tunnel as connecting
+        tunnel.setState(Guacamole.Tunnel.State.CONNECTING);
+
+        // Start tunnel and connect
+        var connect_xmlhttprequest = new XMLHttpRequest();
+        connect_xmlhttprequest.onreadystatechange = function() {
+
+            if (connect_xmlhttprequest.readyState !== 4)
+                return;
+
+            // If failure, throw error
+            if (connect_xmlhttprequest.status !== 200) {
+                handleHTTPTunnelError(connect_xmlhttprequest);
+                return;
+            }
+
+            reset_timeout();
+
+            // Get UUID from response
+            tunnel.uuid = connect_xmlhttprequest.responseText;
+
+            // Mark as open
+            tunnel.setState(Guacamole.Tunnel.State.OPEN);
+
+            // Ping tunnel endpoint regularly to test connection stability
+            pingInterval = setInterval(function sendPing() {
+                tunnel.sendMessage("nop");
+            }, PING_FREQUENCY);
+
+            // Start reading data
+            handleResponse(makeRequest());
+
+        };
+
+        connect_xmlhttprequest.open("POST", TUNNEL_CONNECT, true);
+        connect_xmlhttprequest.withCredentials = withCredentials;
+        addExtraHeaders(connect_xmlhttprequest, extraHeaders);
+        connect_xmlhttprequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
+        connect_xmlhttprequest.send(data);
+
+    };
+
+    this.disconnect = function() {
+        close_tunnel(new Guacamole.Status(Guacamole.Status.Code.SUCCESS, "Manually closed."));
+    };
+
+};
+
+Guacamole.HTTPTunnel.prototype = new Guacamole.Tunnel();
+
+/**
+ * Guacamole Tunnel implemented over WebSocket via XMLHttpRequest.
+ * 
+ * @constructor
+ * @augments Guacamole.Tunnel
+ * @param {String} tunnelURL The URL of the WebSocket tunneling service.
+ */
+Guacamole.WebSocketTunnel = function(tunnelURL) {
+
+    /**
+     * Reference to this WebSocket tunnel.
+     * @private
+     */
+    var tunnel = this;
+
+    /**
+     * The WebSocket used by this tunnel.
+     * @private
+     */
+    var socket = null;
+
+    /**
+     * The current receive timeout ID, if any.
+     * @private
+     */
+    var receive_timeout = null;
+
+    /**
+     * The current connection stability timeout ID, if any.
+     *
+     * @private
+     * @type {Number}
+     */
+    var unstableTimeout = null;
+
+    /**
+     * The current connection stability test ping interval ID, if any. This
+     * will only be set upon successful connection.
+     *
+     * @private
+     * @type {Number}
+     */
+    var pingInterval = null;
+
+    /**
+     * The WebSocket protocol corresponding to the protocol used for the current
+     * location.
+     * @private
+     */
+    var ws_protocol = {
+        "http:":  "ws:",
+        "https:": "wss:"
+    };
+
+    /**
+     * The number of milliseconds to wait between connection stability test
+     * pings.
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var PING_FREQUENCY = 500;
+
+    // Transform current URL to WebSocket URL
+
+    // If not already a websocket URL
+    if (   tunnelURL.substring(0, 3) !== "ws:"
+        &amp;&amp; tunnelURL.substring(0, 4) !== "wss:") {
+
+        var protocol = ws_protocol[window.location.protocol];
+
+        // If absolute URL, convert to absolute WS URL
+        if (tunnelURL.substring(0, 1) === "/")
+            tunnelURL =
+                protocol
+                + "//" + window.location.host
+                + tunnelURL;
+
+        // Otherwise, construct absolute from relative URL
+        else {
+
+            // Get path from pathname
+            var slash = window.location.pathname.lastIndexOf("/");
+            var path  = window.location.pathname.substring(0, slash + 1);
+
+            // Construct absolute URL
+            tunnelURL =
+                protocol
+                + "//" + window.location.host
+                + path
+                + tunnelURL;
+
+        }
+
+    }
+
+    /**
+     * Initiates a timeout which, if data is not received, causes the tunnel
+     * to close with an error.
+     * 
+     * @private
+     */
+    function reset_timeout() {
+
+        // Get rid of old timeouts (if any)
+        window.clearTimeout(receive_timeout);
+        window.clearTimeout(unstableTimeout);
+
+        // Clear unstable status
+        if (tunnel.state === Guacamole.Tunnel.State.UNSTABLE)
+            tunnel.setState(Guacamole.Tunnel.State.OPEN);
+
+        // Set new timeout for tracking overall connection timeout
+        receive_timeout = window.setTimeout(function () {
+            close_tunnel(new Guacamole.Status(Guacamole.Status.Code.UPSTREAM_TIMEOUT, "Server timeout."));
+        }, tunnel.receiveTimeout);
+
+        // Set new timeout for tracking suspected connection instability
+        unstableTimeout = window.setTimeout(function() {
+            tunnel.setState(Guacamole.Tunnel.State.UNSTABLE);
+        }, tunnel.unstableThreshold);
+
+    }
+
+    /**
+     * Closes this tunnel, signaling the given status and corresponding
+     * message, which will be sent to the onerror handler if the status is
+     * an error status.
+     * 
+     * @private
+     * @param {Guacamole.Status} status The status causing the connection to
+     *                                  close;
+     */
+    function close_tunnel(status) {
+
+        // Get rid of old timeouts (if any)
+        window.clearTimeout(receive_timeout);
+        window.clearTimeout(unstableTimeout);
+
+        // Cease connection test pings
+        window.clearInterval(pingInterval);
+
+        // Ignore if already closed
+        if (tunnel.state === Guacamole.Tunnel.State.CLOSED)
+            return;
+
+        // If connection closed abnormally, signal error.
+        if (status.code !== Guacamole.Status.Code.SUCCESS &amp;&amp; tunnel.onerror)
+            tunnel.onerror(status);
+
+        // Mark as closed
+        tunnel.setState(Guacamole.Tunnel.State.CLOSED);
+
+        socket.close();
+
+    }
+
+    this.sendMessage = function(elements) {
+
+        // Do not attempt to send messages if not connected
+        if (!tunnel.isConnected())
+            return;
+
+        // Do not attempt to send empty messages
+        if (arguments.length === 0)
+            return;
+
+        /**
+         * Converts the given value to a length/string pair for use as an
+         * element in a Guacamole instruction.
+         * 
+         * @private
+         * @param value The value to convert.
+         * @return {String} The converted value. 
+         */
+        function getElement(value) {
+            var string = new String(value);
+            return string.length + "." + string; 
+        }
+
+        // Initialized message with first element
+        var message = getElement(arguments[0]);
+
+        // Append remaining elements
+        for (var i=1; i&lt;arguments.length; i++)
+            message += "," + getElement(arguments[i]);
+
+        // Final terminator
+        message += ";";
+
+        socket.send(message);
+
+    };
+
+    this.connect = function(data) {
+
+        reset_timeout();
+
+        // Mark the tunnel as connecting
+        tunnel.setState(Guacamole.Tunnel.State.CONNECTING);
+
+        // Connect socket
+        socket = new WebSocket(tunnelURL + "?" + data, "guacamole");
+
+        socket.onopen = function(event) {
+            reset_timeout();
+
+            // Ping tunnel endpoint regularly to test connection stability
+            pingInterval = setInterval(function sendPing() {
+                tunnel.sendMessage(Guacamole.Tunnel.INTERNAL_DATA_OPCODE,
+                    "ping", new Date().getTime());
+            }, PING_FREQUENCY);
+
+        };
+
+        socket.onclose = function(event) {
+
+            // Pull status code directly from closure reason provided by Guacamole
+            if (event.reason)
+                close_tunnel(new Guacamole.Status(parseInt(event.reason), event.reason));
+
+            // Failing that, derive a Guacamole status code from the WebSocket
+            // status code provided by the browser
+            else if (event.code)
+                close_tunnel(new Guacamole.Status(Guacamole.Status.Code.fromWebSocketCode(event.code)));
+
+            // Otherwise, assume server is unreachable
+            else
+                close_tunnel(new Guacamole.Status(Guacamole.Status.Code.UPSTREAM_NOT_FOUND));
+
+        };
+        
+        socket.onmessage = function(event) {
+
+            reset_timeout();
+
+            var message = event.data;
+            var startIndex = 0;
+            var elementEnd;
+
+            var elements = [];
+
+            do {
+
+                // Search for end of length
+                var lengthEnd = message.indexOf(".", startIndex);
+                if (lengthEnd !== -1) {
+
+                    // Parse length
+                    var length = parseInt(message.substring(elementEnd+1, lengthEnd));
+
+                    // Calculate start of element
+                    startIndex = lengthEnd + 1;
+
+                    // Calculate location of element terminator
+                    elementEnd = startIndex + length;
+
+                }
+                
+                // If no period, incomplete instruction.
+                else
+                    close_tunnel(new Guacamole.Status(Guacamole.Status.Code.SERVER_ERROR, "Incomplete instruction."));
+
+                // We now have enough data for the element. Parse.
+                var element = message.substring(startIndex, elementEnd);
+                var terminator = message.substring(elementEnd, elementEnd+1);
+
+                // Add element to array
+                elements.push(element);
+
+                // If last element, handle instruction
+                if (terminator === ";") {
+
+                    // Get opcode
+                    var opcode = elements.shift();
+
+                    // Update state and UUID when first instruction received
+                    if (tunnel.state === Guacamole.Tunnel.State.CONNECTING) {
+
+                        // Associate tunnel UUID if received
+                        if (opcode === Guacamole.Tunnel.INTERNAL_DATA_OPCODE)
+                            tunnel.uuid = elements[0];
+
+                        // Tunnel is now open and UUID is available
+                        tunnel.setState(Guacamole.Tunnel.State.OPEN);
+
+                    }
+
+                    // Call instruction handler.
+                    if (opcode !== Guacamole.Tunnel.INTERNAL_DATA_OPCODE &amp;&amp; tunnel.oninstruction)
+                        tunnel.oninstruction(opcode, elements);
+
+                    // Clear elements
+                    elements.length = 0;
+
+                }
+
+                // Start searching for length at character after
+                // element terminator
+                startIndex = elementEnd + 1;
+
+            } while (startIndex &lt; message.length);
+
+        };
+
+    };
+
+    this.disconnect = function() {
+        close_tunnel(new Guacamole.Status(Guacamole.Status.Code.SUCCESS, "Manually closed."));
+    };
+
+};
+
+Guacamole.WebSocketTunnel.prototype = new Guacamole.Tunnel();
+
+/**
+ * Guacamole Tunnel which cycles between all specified tunnels until
+ * no tunnels are left. Another tunnel is used if an error occurs but
+ * no instructions have been received. If an instruction has been
+ * received, or no tunnels remain, the error is passed directly out
+ * through the onerror handler (if defined).
+ * 
+ * @constructor
+ * @augments Guacamole.Tunnel
+ * @param {...*} tunnelChain
+ *     The tunnels to use, in order of priority.
+ */
+Guacamole.ChainedTunnel = function(tunnelChain) {
+
+    /**
+     * Reference to this chained tunnel.
+     * @private
+     */
+    var chained_tunnel = this;
+
+    /**
+     * Data passed in via connect(), to be used for
+     * wrapped calls to other tunnels' connect() functions.
+     * @private
+     */
+    var connect_data;
+
+    /**
+     * Array of all tunnels passed to this ChainedTunnel through the
+     * constructor arguments.
+     * @private
+     */
+    var tunnels = [];
+
+    /**
+     * The tunnel committed via commit_tunnel(), if any, or null if no tunnel
+     * has yet been committed.
+     *
+     * @private
+     * @type {Guacamole.Tunnel}
+     */
+    var committedTunnel = null;
+
+    // Load all tunnels into array
+    for (var i=0; i&lt;arguments.length; i++)
+        tunnels.push(arguments[i]);
+
+    /**
+     * Sets the current tunnel.
+     * 
+     * @private
+     * @param {Guacamole.Tunnel} tunnel The tunnel to set as the current tunnel.
+     */
+    function attach(tunnel) {
+
+        // Set own functions to tunnel's functions
+        chained_tunnel.disconnect  = tunnel.disconnect;
+        chained_tunnel.sendMessage = tunnel.sendMessage;
+
+        /**
+         * Fails the currently-attached tunnel, attaching a new tunnel if
+         * possible.
+         *
+         * @private
+         * @param {Guacamole.Status} [status]
+         *     An object representing the failure that occured in the
+         *     currently-attached tunnel, if known.
+         *
+         * @return {Guacamole.Tunnel}
+         *     The next tunnel, or null if there are no more tunnels to try or
+         *     if no more tunnels should be tried.
+         */
+        var failTunnel = function failTunnel(status) {
+
+            // Do not attempt to continue using next tunnel on server timeout
+            if (status &amp;&amp; status.code === Guacamole.Status.Code.UPSTREAM_TIMEOUT) {
+                tunnels = [];
+                return null;
+            }
+
+            // Get next tunnel
+            var next_tunnel = tunnels.shift();
+
+            // If there IS a next tunnel, try using it.
+            if (next_tunnel) {
+                tunnel.onerror = null;
+                tunnel.oninstruction = null;
+                tunnel.onstatechange = null;
+                attach(next_tunnel);
+            }
+
+            return next_tunnel;
+
+        };
+
+        /**
+         * Use the current tunnel from this point forward. Do not try any more
+         * tunnels, even if the current tunnel fails.
+         * 
+         * @private
+         */
+        function commit_tunnel() {
+            tunnel.onstatechange = chained_tunnel.onstatechange;
+            tunnel.oninstruction = chained_tunnel.oninstruction;
+            tunnel.onerror = chained_tunnel.onerror;
+            chained_tunnel.uuid = tunnel.uuid;
+            committedTunnel = tunnel;
+        }
+
+        // Wrap own onstatechange within current tunnel
+        tunnel.onstatechange = function(state) {
+
+            switch (state) {
+
+                // If open, use this tunnel from this point forward.
+                case Guacamole.Tunnel.State.OPEN:
+                    commit_tunnel();
+                    if (chained_tunnel.onstatechange)
+                        chained_tunnel.onstatechange(state);
+                    break;
+
+                // If closed, mark failure, attempt next tunnel
+                case Guacamole.Tunnel.State.CLOSED:
+                    if (!failTunnel() &amp;&amp; chained_tunnel.onstatechange)
+                        chained_tunnel.onstatechange(state);
+                    break;
+                
+            }
+
+        };
+
+        // Wrap own oninstruction within current tunnel
+        tunnel.oninstruction = function(opcode, elements) {
+
+            // Accept current tunnel
+            commit_tunnel();
+
+            // Invoke handler
+            if (chained_tunnel.oninstruction)
+                chained_tunnel.oninstruction(opcode, elements);
+
+        };
+
+        // Attach next tunnel on error
+        tunnel.onerror = function(status) {
+
+            // Mark failure, attempt next tunnel
+            if (!failTunnel(status) &amp;&amp; chained_tunnel.onerror)
+                chained_tunnel.onerror(status);
+
+        };
+
+        // Attempt connection
+        tunnel.connect(connect_data);
+        
+    }
+
+    this.connect = function(data) {
+       
+        // Remember connect data
+        connect_data = data;
+
+        // Get committed tunnel if exists or the first tunnel on the list
+        var next_tunnel = committedTunnel ? committedTunnel : tunnels.shift();
+
+        // Attach first tunnel
+        if (next_tunnel)
+            attach(next_tunnel);
+
+        // If there IS no first tunnel, error
+        else if (chained_tunnel.onerror)
+            chained_tunnel.onerror(Guacamole.Status.Code.SERVER_ERROR, "No tunnels to try.");
+
+    };
+    
+};
+
+Guacamole.ChainedTunnel.prototype = new Guacamole.Tunnel();
+
+/**
+ * Guacamole Tunnel which replays a Guacamole protocol dump from a static file
+ * received via HTTP. Instructions within the file are parsed and handled as
+ * quickly as possible, while the file is being downloaded.
+ *
+ * @constructor
+ * @augments Guacamole.Tunnel
+ * @param {String} url
+ *     The URL of a Guacamole protocol dump.
+ *
+ * @param {Boolean} [crossDomain=false]
+ *     Whether tunnel requests will be cross-domain, and thus must use CORS
+ *     mechanisms and headers. By default, it is assumed that tunnel requests
+ *     will be made to the same domain.
+ *
+ * @param {Object} [extraTunnelHeaders={}]
+ *     Key value pairs containing the header names and values of any additional
+ *     headers to be sent in tunnel requests. By default, no extra headers will
+ *     be added.
+ */
+Guacamole.StaticHTTPTunnel = function StaticHTTPTunnel(url, crossDomain, extraTunnelHeaders) {
+
+    /**
+     * Reference to this Guacamole.StaticHTTPTunnel.
+     *
+     * @private
+     */
+    var tunnel = this;
+
+    /**
+     * The current, in-progress HTTP request. If no request is currently in
+     * progress, this will be null.
+     *
+     * @private
+     * @type {XMLHttpRequest}
+     */
+    var xhr = null;
+
+    /**
+     * Additional headers to be sent in tunnel requests. This dictionary can be
+     * populated with key/value header pairs to pass information such as authentication
+     * tokens, etc.
+     *
+     * @private
+     */
+    var extraHeaders = extraTunnelHeaders || {};
+
+    /**
+     * Adds the configured additional headers to the given request.
+     *
+     * @param {XMLHttpRequest} request
+     *     The request where the configured extra headers will be added.
+     *
+     * @param {Object} headers
+     *     The headers to be added to the request.
+     *
+     * @private
+     */
+    function addExtraHeaders(request, headers) {
+        for (var name in headers) {
+            request.setRequestHeader(name, headers[name]);
+        }
+    }
+
+    this.sendMessage = function sendMessage(elements) {
+        // Do nothing
+    };
+
+    this.connect = function connect(data) {
+
+        // Ensure any existing connection is killed
+        tunnel.disconnect();
+
+        // Connection is now starting
+        tunnel.setState(Guacamole.Tunnel.State.CONNECTING);
+
+        // Start a new connection
+        xhr = new XMLHttpRequest();
+        xhr.open('GET', url);
+        xhr.withCredentials = !!crossDomain;
+        addExtraHeaders(xhr, extraHeaders);
+        xhr.responseType = 'text';
+        xhr.send(null);
+
+        var offset = 0;
+
+        // Create Guacamole protocol parser specifically for this connection
+        var parser = new Guacamole.Parser();
+
+        // Invoke tunnel's oninstruction handler for each parsed instruction
+        parser.oninstruction = function instructionReceived(opcode, args) {
+            if (tunnel.oninstruction)
+                tunnel.oninstruction(opcode, args);
+        };
+
+        // Continuously parse received data
+        xhr.onreadystatechange = function readyStateChanged() {
+
+            // Parse while data is being received
+            if (xhr.readyState === 3 || xhr.readyState === 4) {
+
+                // Connection is open
+                tunnel.setState(Guacamole.Tunnel.State.OPEN);
+
+                var buffer = xhr.responseText;
+                var length = buffer.length;
+
+                // Parse only the portion of data which is newly received
+                if (offset &lt; length) {
+                    parser.receive(buffer.substring(offset));
+                    offset = length;
+                }
+
+            }
+
+            // Clean up and close when done
+            if (xhr.readyState === 4)
+                tunnel.disconnect();
+
+        };
+
+        // Reset state and close upon error
+        xhr.onerror = function httpError() {
+
+            // Fail if file could not be downloaded via HTTP
+            if (tunnel.onerror)
+                tunnel.onerror(new Guacamole.Status(
+                    Guacamole.Status.Code.fromHTTPCode(xhr.status), xhr.statusText));
+
+            tunnel.disconnect();
+        };
+
+    };
+
+    this.disconnect = function disconnect() {
+
+        // Abort and dispose of XHR if a request is in progress
+        if (xhr) {
+            xhr.abort();
+            xhr = null;
+        }
+
+        // Connection is now closed
+        tunnel.setState(Guacamole.Tunnel.State.CLOSED);
+
+    };
+
+};
+
+Guacamole.StaticHTTPTunnel.prototype = new Guacamole.Tunnel();
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Version.js.html b/doc/1.1.0/guacamole-common-js/Version.js.html
new file mode 100644
index 0000000..65a17ab
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Version.js.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Version.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Version.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * The unique ID of this version of the Guacamole JavaScript API. This ID will
+ * be the version string of the guacamole-common-js Maven project, and can be
+ * used in downstream applications as a sanity check that the proper version
+ * of the APIs is being used (in case an older version is cached, for example).
+ *
+ * @type {String}
+ */
+Guacamole.API_VERSION = "1.1.0";
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/VideoPlayer.js.html b/doc/1.1.0/guacamole-common-js/VideoPlayer.js.html
new file mode 100644
index 0000000..25c426e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/VideoPlayer.js.html
@@ -0,0 +1,159 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: VideoPlayer.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: VideoPlayer.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Abstract video player which accepts, queues and plays back arbitrary video
+ * data. It is up to implementations of this class to provide some means of
+ * handling a provided Guacamole.InputStream and rendering the received data to
+ * the provided Guacamole.Display.VisibleLayer. Data received along the
+ * provided stream is to be played back immediately.
+ *
+ * @constructor
+ */
+Guacamole.VideoPlayer = function VideoPlayer() {
+
+    /**
+     * Notifies this Guacamole.VideoPlayer that all video up to the current
+     * point in time has been given via the underlying stream, and that any
+     * difference in time between queued video data and the current time can be
+     * considered latency.
+     */
+    this.sync = function sync() {
+        // Default implementation - do nothing
+    };
+
+};
+
+/**
+ * Determines whether the given mimetype is supported by any built-in
+ * implementation of Guacamole.VideoPlayer, and thus will be properly handled
+ * by Guacamole.VideoPlayer.getInstance().
+ *
+ * @param {String} mimetype
+ *     The mimetype to check.
+ *
+ * @returns {Boolean}
+ *     true if the given mimetype is supported by any built-in
+ *     Guacamole.VideoPlayer, false otherwise.
+ */
+Guacamole.VideoPlayer.isSupportedType = function isSupportedType(mimetype) {
+
+    // There are currently no built-in video players (and therefore no
+    // supported types)
+    return false;
+
+};
+
+/**
+ * Returns a list of all mimetypes supported by any built-in
+ * Guacamole.VideoPlayer, in rough order of priority. Beware that only the core
+ * mimetypes themselves will be listed. Any mimetype parameters, even required
+ * ones, will not be included in the list.
+ *
+ * @returns {String[]}
+ *     A list of all mimetypes supported by any built-in Guacamole.VideoPlayer,
+ *     excluding any parameters.
+ */
+Guacamole.VideoPlayer.getSupportedTypes = function getSupportedTypes() {
+
+    // There are currently no built-in video players (and therefore no
+    // supported types)
+    return [];
+
+};
+
+/**
+ * Returns an instance of Guacamole.VideoPlayer providing support for the given
+ * video format. If support for the given video format is not available, null
+ * is returned.
+ *
+ * @param {Guacamole.InputStream} stream
+ *     The Guacamole.InputStream to read video data from.
+ *
+ * @param {Guacamole.Display.VisibleLayer} layer
+ *     The destination layer in which this Guacamole.VideoPlayer should play
+ *     the received video data.
+ *
+ * @param {String} mimetype
+ *     The mimetype of the video data in the provided stream.
+ *
+ * @return {Guacamole.VideoPlayer}
+ *     A Guacamole.VideoPlayer instance supporting the given mimetype and
+ *     reading from the given stream, or null if support for the given mimetype
+ *     is absent.
+ */
+Guacamole.VideoPlayer.getInstance = function getInstance(stream, layer, mimetype) {
+
+    // There are currently no built-in video players
+    return null;
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.eot b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.eot
new file mode 100644
index 0000000..5d20d91
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.eot
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.svg b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.svg
new file mode 100644
index 0000000..3ed7be4
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.svg
@@ -0,0 +1,1830 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sansbold" horiz-adv-x="1169" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1417" d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM940 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150zM1258 0h-305v1118 h305v-1118z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1417" d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1258 0h-305v1556h305v-1556z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="2208" d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1571 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224 q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1730 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150zM2048 0h-305v1118h305v-1118z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="2208" d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1571 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224 q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM2048 0h-305v1556h305v-1556z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="586" d="M416 485h-244l-51 977h346zM117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z" />
+<glyph unicode="&#x22;" horiz-adv-x="967" d="M412 1462l-41 -528h-197l-41 528h279zM834 1462l-41 -528h-197l-41 528h279z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M999 844l-47 -232h258v-206h-297l-77 -406h-220l78 406h-194l-76 -406h-215l74 406h-238v206h277l47 232h-252v209h289l77 407h219l-77 -407h198l78 407h215l-78 -407h240v-209h-279zM539 612h196l47 232h-196z" />
+<glyph unicode="$" d="M1092 457q0 -159 -115 -255.5t-322 -115.5v-205h-137v201q-244 5 -428 86v264q87 -43 209.5 -76t218.5 -39v310l-67 26q-198 78 -280.5 169.5t-82.5 226.5q0 145 113.5 238.5t316.5 113.5v153h137v-149q229 -10 414 -92l-94 -234q-156 64 -320 78v-295 q195 -75 277.5 -130t121 -121t38.5 -154zM791 442q0 42 -34 71t-102 60v-249q136 23 136 118zM389 1049q0 -44 30.5 -72.5t98.5 -58.5v235q-129 -19 -129 -104z" />
+<glyph unicode="%" horiz-adv-x="1845" d="M315 1024q0 -127 22.5 -189.5t72.5 -62.5q96 0 96 252q0 250 -96 250q-50 0 -72.5 -61.5t-22.5 -188.5zM758 1026q0 -230 -89 -345.5t-261 -115.5q-165 0 -255 118.5t-90 342.5q0 457 345 457q169 0 259.5 -118.5t90.5 -338.5zM1446 1462l-811 -1462h-240l811 1462h240z M1339 440q0 -127 22.5 -189.5t72.5 -62.5q96 0 96 252q0 250 -96 250q-50 0 -72.5 -61.5t-22.5 -188.5zM1782 442q0 -229 -89 -344.5t-261 -115.5q-165 0 -255 118.5t-90 341.5q0 457 345 457q169 0 259.5 -118.5t90.5 -338.5z" />
+<glyph unicode="&#x26;" horiz-adv-x="1536" d="M1536 0h-377l-115 113q-191 -133 -432 -133q-244 0 -387 112t-143 303q0 137 60.5 233.5t207.5 180.5q-75 86 -109 164.5t-34 171.5q0 152 116.5 245t311.5 93q186 0 297.5 -86.5t111.5 -231.5q0 -119 -69 -217.5t-223 -187.5l284 -277q71 117 123 301h318 q-36 -135 -99 -263.5t-143 -227.5zM403 424q0 -86 64.5 -137t165.5 -51q126 0 227 61l-332 330q-58 -44 -91.5 -92t-33.5 -111zM762 1133q0 53 -36 83.5t-93 30.5q-67 0 -105.5 -32t-38.5 -91q0 -88 95 -194q86 48 132 94.5t46 108.5z" />
+<glyph unicode="'" horiz-adv-x="545" d="M412 1462l-41 -528h-197l-41 528h279z" />
+<glyph unicode="(" horiz-adv-x="694" d="M82 561q0 265 77.5 496t223.5 405h250q-141 -193 -213 -424t-72 -475q0 -245 73.5 -473.5t209.5 -413.5h-248q-147 170 -224 397t-77 488z" />
+<glyph unicode=")" horiz-adv-x="694" d="M612 561q0 -263 -77.5 -490t-223.5 -395h-248q135 184 209 412.5t74 474.5q0 244 -72 475t-213 424h250q147 -175 224 -406.5t77 -494.5z" />
+<glyph unicode="*" horiz-adv-x="1116" d="M688 1556l-41 -368l373 104l33 -252l-340 -24l223 -297l-227 -121l-156 313l-137 -311l-236 119l221 297l-338 26l39 250l365 -104l-41 368h262z" />
+<glyph unicode="+" d="M475 612h-387v219h387v390h219v-390h387v-219h-387v-385h-219v385z" />
+<glyph unicode="," horiz-adv-x="594" d="M459 215q-52 -202 -176 -479h-220q65 266 101 502h280z" />
+<glyph unicode="-" horiz-adv-x="659" d="M61 424v250h537v-250h-537z" />
+<glyph unicode="." horiz-adv-x="584" d="M117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z" />
+<glyph unicode="/" horiz-adv-x="846" d="M836 1462l-545 -1462h-277l545 1462h277z" />
+<glyph unicode="0" d="M1096 731q0 -383 -125.5 -567t-386.5 -184q-253 0 -381.5 190t-128.5 561q0 387 125 570.5t385 183.5q253 0 382.5 -192t129.5 -562zM381 731q0 -269 46.5 -385.5t156.5 -116.5q108 0 156 118t48 384q0 269 -48.5 386.5t-155.5 117.5q-109 0 -156 -117.5t-47 -386.5z" />
+<glyph unicode="1" d="M846 0h-309v846l3 139l5 152q-77 -77 -107 -101l-168 -135l-149 186l471 375h254v-1462z" />
+<glyph unicode="2" d="M1104 0h-1022v215l367 371q163 167 213 231.5t72 119.5t22 114q0 88 -48.5 131t-129.5 43q-85 0 -165 -39t-167 -111l-168 199q108 92 179 130t155 58.5t188 20.5q137 0 242 -50t163 -140t58 -206q0 -101 -35.5 -189.5t-110 -181.5t-262.5 -265l-188 -177v-14h637v-260z " />
+<glyph unicode="3" d="M1047 1135q0 -137 -83 -233t-233 -132v-6q177 -22 268 -107.5t91 -230.5q0 -211 -153 -328.5t-437 -117.5q-238 0 -422 79v263q85 -43 187 -70t202 -27q153 0 226 52t73 167q0 103 -84 146t-268 43h-111v237h113q170 0 248.5 44.5t78.5 152.5q0 166 -208 166 q-72 0 -146.5 -24t-165.5 -83l-143 213q200 144 477 144q227 0 358.5 -92t131.5 -256z" />
+<glyph unicode="4" d="M1137 303h-176v-303h-302v303h-624v215l641 944h285v-919h176v-240zM659 543v248q0 62 5 180t8 137h-8q-37 -82 -89 -160l-268 -405h352z" />
+<glyph unicode="5" d="M614 934q212 0 337.5 -119t125.5 -326q0 -245 -151 -377t-432 -132q-244 0 -394 79v267q79 -42 184 -68.5t199 -26.5q283 0 283 232q0 221 -293 221q-53 0 -117 -10.5t-104 -22.5l-123 66l55 745h793v-262h-522l-27 -287l35 7q61 14 151 14z" />
+<glyph unicode="6" d="M72 621q0 434 183.5 646t549.5 212q125 0 196 -15v-247q-89 20 -176 20q-159 0 -259.5 -48t-150.5 -142t-59 -267h13q99 170 317 170q196 0 307 -123t111 -340q0 -234 -132 -370.5t-366 -136.5q-162 0 -282.5 75t-186 219t-65.5 347zM600 227q99 0 152 66.5t53 189.5 q0 107 -49.5 168.5t-149.5 61.5q-94 0 -160.5 -61t-66.5 -142q0 -119 62.5 -201t158.5 -82z" />
+<glyph unicode="7" d="M227 0l549 1200h-721v260h1049v-194l-553 -1266h-324z" />
+<glyph unicode="8" d="M586 1481q210 0 338.5 -95.5t128.5 -257.5q0 -112 -62 -199.5t-200 -156.5q164 -88 235.5 -183.5t71.5 -209.5q0 -180 -141 -289.5t-371 -109.5q-240 0 -377 102t-137 289q0 125 66.5 222t213.5 171q-125 79 -180 169t-55 197q0 157 130 254t339 97zM358 389 q0 -86 60 -134t164 -48q115 0 172 49.5t57 130.5q0 67 -56.5 125.5t-183.5 124.5q-213 -98 -213 -248zM584 1255q-79 0 -127.5 -40.5t-48.5 -108.5q0 -60 38.5 -107.5t139.5 -97.5q98 46 137 94t39 111q0 69 -50 109t-128 40z" />
+<glyph unicode="9" d="M1098 838q0 -432 -182 -645t-551 -213q-130 0 -197 14v248q84 -21 176 -21q155 0 255 45.5t153 143t61 268.5h-12q-58 -94 -134 -132t-190 -38q-191 0 -301 122.5t-110 340.5q0 235 133.5 371.5t363.5 136.5q162 0 283.5 -76t186.5 -220.5t65 -344.5zM569 1231 q-96 0 -150 -66t-54 -190q0 -106 49 -168t149 -62q94 0 161 61.5t67 141.5q0 119 -62.5 201t-159.5 82z" />
+<glyph unicode=":" horiz-adv-x="584" d="M117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5zM117 969q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -81 -46.5 -125.5t-127.5 -44.5q-84 0 -130 44t-46 126z" />
+<glyph unicode=";" horiz-adv-x="594" d="M444 238l15 -23q-52 -202 -176 -479h-220q65 266 101 502h280zM117 969q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -81 -46.5 -125.5t-127.5 -44.5q-84 0 -130 44t-46 126z" />
+<glyph unicode="&#x3c;" d="M1081 203l-993 438v143l993 496v-240l-684 -317l684 -281v-239z" />
+<glyph unicode="=" d="M88 805v219h993v-219h-993zM88 418v219h993v-219h-993z" />
+<glyph unicode="&#x3e;" d="M88 442l684 281l-684 317v240l993 -496v-143l-993 -438v239z" />
+<glyph unicode="?" horiz-adv-x="977" d="M276 485v74q0 96 41 167t150 151q105 75 138.5 122t33.5 105q0 65 -48 99t-134 34q-150 0 -342 -98l-109 219q223 125 473 125q206 0 327.5 -99t121.5 -264q0 -110 -50 -190t-190 -180q-96 -71 -121.5 -108t-25.5 -97v-60h-265zM244 143q0 84 45 127t131 43 q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z" />
+<glyph unicode="@" horiz-adv-x="1837" d="M1735 752q0 -144 -46 -263.5t-130 -187.5t-195 -68q-74 0 -131 35.5t-82 93.5h-16q-108 -129 -275 -129q-177 0 -279 106.5t-102 291.5q0 211 134 340t350 129q86 0 189.5 -16.5t170.5 -39.5l-23 -489q0 -139 76 -139q64 0 102 93.5t38 244.5q0 161 -67 284.5 t-188.5 188.5t-277.5 65q-202 0 -351 -83t-228.5 -239.5t-79.5 -361.5q0 -276 147.5 -423.5t427.5 -147.5q106 0 233 23.5t250 68.5v-192q-214 -91 -475 -91q-380 0 -592.5 200t-212.5 556q0 247 108.5 448.5t309 316t461.5 114.5q220 0 393 -90t267 -256t94 -383zM711 627 q0 -211 172 -211q90 0 137 63.5t57 206.5l13 221q-51 11 -115 11q-125 0 -194.5 -78t-69.5 -213z" />
+<glyph unicode="A" horiz-adv-x="1413" d="M1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381z" />
+<glyph unicode="B" horiz-adv-x="1376" d="M184 1462h455q311 0 451.5 -88.5t140.5 -281.5q0 -131 -61.5 -215t-163.5 -101v-10q139 -31 200.5 -116t61.5 -226q0 -200 -144.5 -312t-392.5 -112h-547v1462zM494 883h180q126 0 182.5 39t56.5 129q0 84 -61.5 120.5t-194.5 36.5h-163v-325zM494 637v-381h202 q128 0 189 49t61 150q0 182 -260 182h-192z" />
+<glyph unicode="C" horiz-adv-x="1305" d="M805 1225q-175 0 -271 -131.5t-96 -366.5q0 -489 367 -489q154 0 373 77v-260q-180 -75 -402 -75q-319 0 -488 193.5t-169 555.5q0 228 83 399.5t238.5 263t364.5 91.5q213 0 428 -103l-100 -252q-82 39 -165 68t-163 29z" />
+<glyph unicode="D" horiz-adv-x="1516" d="M1397 745q0 -361 -205.5 -553t-593.5 -192h-414v1462h459q358 0 556 -189t198 -528zM1075 737q0 471 -416 471h-165v-952h133q448 0 448 481z" />
+<glyph unicode="E" horiz-adv-x="1147" d="M1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256z" />
+<glyph unicode="F" horiz-adv-x="1124" d="M489 0h-305v1462h838v-254h-533v-377h496v-253h-496v-578z" />
+<glyph unicode="G" horiz-adv-x="1483" d="M739 821h580v-758q-141 -46 -265.5 -64.5t-254.5 -18.5q-331 0 -505.5 194.5t-174.5 558.5q0 354 202.5 552t561.5 198q225 0 434 -90l-103 -248q-160 80 -333 80q-201 0 -322 -135t-121 -363q0 -238 97.5 -363.5t283.5 -125.5q97 0 197 20v305h-277v258z" />
+<glyph unicode="H" horiz-adv-x="1567" d="M1382 0h-309v631h-579v-631h-310v1462h310v-573h579v573h309v-1462z" />
+<glyph unicode="I" horiz-adv-x="678" d="M184 0v1462h310v-1462h-310z" />
+<glyph unicode="J" horiz-adv-x="678" d="M31 -430q-105 0 -183 22v258q80 -20 146 -20q102 0 146 63.5t44 198.5v1370h310v-1368q0 -256 -117 -390t-346 -134z" />
+<glyph unicode="K" horiz-adv-x="1360" d="M1360 0h-352l-383 616l-131 -94v-522h-310v1462h310v-669l122 172l396 497h344l-510 -647z" />
+<glyph unicode="L" horiz-adv-x="1157" d="M184 0v1462h310v-1206h593v-256h-903z" />
+<glyph unicode="M" horiz-adv-x="1931" d="M803 0l-352 1147h-9q19 -350 19 -467v-680h-277v1462h422l346 -1118h6l367 1118h422v-1462h-289v692q0 49 1.5 113t13.5 340h-9l-377 -1145h-284z" />
+<glyph unicode="N" horiz-adv-x="1665" d="M1481 0h-394l-636 1106h-9q19 -293 19 -418v-688h-277v1462h391l635 -1095h7q-15 285 -15 403v692h279v-1462z" />
+<glyph unicode="O" horiz-adv-x="1630" d="M1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5z" />
+<glyph unicode="P" horiz-adv-x="1286" d="M494 774h102q143 0 214 56.5t71 164.5q0 109 -59.5 161t-186.5 52h-141v-434zM1194 1006q0 -236 -147.5 -361t-419.5 -125h-133v-520h-310v1462h467q266 0 404.5 -114.5t138.5 -341.5z" />
+<glyph unicode="Q" horiz-adv-x="1630" d="M1511 733q0 -258 -91.5 -432.5t-268.5 -255.5l352 -393h-397l-268 328h-23q-336 0 -516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5z" />
+<glyph unicode="R" horiz-adv-x="1352" d="M494 813h100q147 0 217 49t70 154q0 104 -71.5 148t-221.5 44h-94v-395zM494 561v-561h-310v1462h426q298 0 441 -108.5t143 -329.5q0 -129 -71 -229.5t-201 -157.5q330 -493 430 -637h-344l-349 561h-165z" />
+<glyph unicode="S" horiz-adv-x="1128" d="M1047 406q0 -198 -142.5 -312t-396.5 -114q-234 0 -414 88v288q148 -66 250.5 -93t187.5 -27q102 0 156.5 39t54.5 116q0 43 -24 76.5t-70.5 64.5t-189.5 99q-134 63 -201 121t-107 135t-40 180q0 194 131.5 305t363.5 111q114 0 217.5 -27t216.5 -76l-100 -241 q-117 48 -193.5 67t-150.5 19q-88 0 -135 -41t-47 -107q0 -41 19 -71.5t60.5 -59t196.5 -102.5q205 -98 281 -196.5t76 -241.5z" />
+<glyph unicode="T" horiz-adv-x="1186" d="M748 0h-310v1204h-397v258h1104v-258h-397v-1204z" />
+<glyph unicode="U" horiz-adv-x="1548" d="M1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309z" />
+<glyph unicode="V" horiz-adv-x="1331" d="M1018 1462h313l-497 -1462h-338l-496 1462h313l275 -870q23 -77 47.5 -179.5t30.5 -142.5q11 92 75 322z" />
+<glyph unicode="W" horiz-adv-x="1980" d="M1608 0h-353l-198 768q-11 41 -37.5 169.5t-30.5 172.5q-6 -54 -30 -173.5t-37 -170.5l-197 -766h-352l-373 1462h305l187 -798q49 -221 71 -383q6 57 27.5 176.5t40.5 185.5l213 819h293l213 -819q14 -55 35 -168t32 -194q10 78 32 194.5t40 188.5l186 798h305z" />
+<glyph unicode="X" horiz-adv-x="1366" d="M1366 0h-354l-340 553l-340 -553h-332l485 754l-454 708h342l315 -526l309 526h334l-459 -725z" />
+<glyph unicode="Y" horiz-adv-x="1278" d="M639 860l305 602h334l-485 -893v-569h-308v559l-485 903h336z" />
+<glyph unicode="Z" horiz-adv-x="1186" d="M1137 0h-1088v201l701 1005h-682v256h1050v-200l-700 -1006h719v-256z" />
+<glyph unicode="[" horiz-adv-x="678" d="M627 -324h-484v1786h484v-211h-224v-1364h224v-211z" />
+<glyph unicode="\" horiz-adv-x="846" d="M289 1462l545 -1462h-277l-545 1462h277z" />
+<glyph unicode="]" horiz-adv-x="678" d="M51 -113h223v1364h-223v211h484v-1786h-484v211z" />
+<glyph unicode="^" horiz-adv-x="1090" d="M8 520l438 950h144l495 -950h-239l-322 643l-280 -643h-236z" />
+<glyph unicode="_" horiz-adv-x="842" d="M846 -324h-850v140h850v-140z" />
+<glyph unicode="`" horiz-adv-x="1243" d="M707 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="a" horiz-adv-x="1237" d="M870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48t-65 -134 q0 -129 148 -129q106 0 169.5 61t63.5 162v92z" />
+<glyph unicode="b" horiz-adv-x="1296" d="M782 1139q198 0 310 -154.5t112 -423.5q0 -277 -115.5 -429t-314.5 -152q-197 0 -309 143h-21l-51 -123h-233v1556h305v-362q0 -69 -12 -221h12q107 166 317 166zM684 895q-113 0 -165 -69.5t-54 -229.5v-33q0 -180 53.5 -258t169.5 -78q94 0 149.5 86.5t55.5 251.5 t-56 247.5t-153 82.5z" />
+<glyph unicode="c" horiz-adv-x="1053" d="M614 -20q-522 0 -522 573q0 285 142 435.5t407 150.5q194 0 348 -76l-90 -236q-72 29 -134 47.5t-124 18.5q-238 0 -238 -338q0 -328 238 -328q88 0 163 23.5t150 73.5v-261q-74 -47 -149.5 -65t-190.5 -18z" />
+<glyph unicode="d" horiz-adv-x="1296" d="M514 -20q-197 0 -309.5 153t-112.5 424q0 275 114.5 428.5t315.5 153.5q211 0 322 -164h10q-23 125 -23 223v358h306v-1556h-234l-59 145h-13q-104 -165 -317 -165zM621 223q117 0 171.5 68t59.5 231v33q0 180 -55.5 258t-180.5 78q-102 0 -158.5 -86.5t-56.5 -251.5 t57 -247.5t163 -82.5z" />
+<glyph unicode="e" horiz-adv-x="1210" d="M623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z" />
+<glyph unicode="f" horiz-adv-x="793" d="M778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229z" />
+<glyph unicode="g" horiz-adv-x="1157" d="M1133 1118v-155l-175 -45q48 -75 48 -168q0 -180 -125.5 -280.5t-348.5 -100.5l-55 3l-45 5q-47 -36 -47 -80q0 -66 168 -66h190q184 0 280.5 -79t96.5 -232q0 -196 -163.5 -304t-469.5 -108q-234 0 -357.5 81.5t-123.5 228.5q0 101 63 169t185 97q-47 20 -82 65.5 t-35 96.5q0 64 37 106.5t107 83.5q-88 38 -139.5 122t-51.5 198q0 183 119 283t340 100q47 0 111.5 -8.5t82.5 -12.5h390zM270 -158q0 -63 60.5 -99t169.5 -36q164 0 257 45t93 123q0 63 -55 87t-170 24h-158q-84 0 -140.5 -39.5t-56.5 -104.5zM381 752q0 -91 41.5 -144 t126.5 -53q86 0 126 53t40 144q0 202 -166 202q-168 0 -168 -202z" />
+<glyph unicode="h" horiz-adv-x="1346" d="M1192 0h-305v653q0 242 -180 242q-128 0 -185 -87t-57 -282v-526h-305v1556h305v-317q0 -37 -7 -174l-7 -90h16q102 164 324 164q197 0 299 -106t102 -304v-729z" />
+<glyph unicode="i" horiz-adv-x="625" d="M147 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150zM465 0h-305v1118h305v-1118z" />
+<glyph unicode="j" horiz-adv-x="625" d="M70 -492q-117 0 -201 25v240q70 -19 143 -19q77 0 112.5 43t35.5 127v1194h305v-1239q0 -178 -103 -274.5t-292 -96.5zM147 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150z" />
+<glyph unicode="k" horiz-adv-x="1270" d="M453 608l133 170l313 340h344l-444 -485l471 -633h-352l-322 453l-131 -105v-348h-305v1556h305v-694l-16 -254h4z" />
+<glyph unicode="l" horiz-adv-x="625" d="M465 0h-305v1556h305v-1556z" />
+<glyph unicode="m" horiz-adv-x="2011" d="M1161 0h-305v653q0 121 -40.5 181.5t-127.5 60.5q-117 0 -170 -86t-53 -283v-526h-305v1118h233l41 -143h17q45 77 130 120.5t195 43.5q251 0 340 -164h27q45 78 132.5 121t197.5 43q190 0 287.5 -97.5t97.5 -312.5v-729h-306v653q0 121 -40.5 181.5t-127.5 60.5 q-112 0 -167.5 -80t-55.5 -254v-561z" />
+<glyph unicode="n" horiz-adv-x="1346" d="M1192 0h-305v653q0 121 -43 181.5t-137 60.5q-128 0 -185 -85.5t-57 -283.5v-526h-305v1118h233l41 -143h17q51 81 140.5 122.5t203.5 41.5q195 0 296 -105.5t101 -304.5v-729z" />
+<glyph unicode="o" horiz-adv-x="1268" d="M403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z" />
+<glyph unicode="p" horiz-adv-x="1296" d="M774 -20q-197 0 -309 143h-16q16 -140 16 -162v-453h-305v1610h248l43 -145h14q107 166 317 166q198 0 310 -153t112 -425q0 -179 -52.5 -311t-149.5 -201t-228 -69zM684 895q-113 0 -165 -69.5t-54 -229.5v-33q0 -180 53.5 -258t169.5 -78q205 0 205 338 q0 165 -50.5 247.5t-158.5 82.5z" />
+<glyph unicode="q" horiz-adv-x="1296" d="M623 219q116 0 170 66.5t59 232.5v37q0 180 -55.5 258t-178.5 78q-215 0 -215 -338q0 -168 53.5 -251t166.5 -83zM514 -20q-198 0 -310 152.5t-112 424.5q0 274 114.5 428t313.5 154q106 0 185 -40t139 -124h8l27 143h258v-1610h-306v469q0 61 13 168h-13 q-49 -81 -130 -123t-187 -42z" />
+<glyph unicode="r" horiz-adv-x="930" d="M784 1139q62 0 103 -9l-23 -286q-37 10 -90 10q-146 0 -227.5 -75t-81.5 -210v-569h-305v1118h231l45 -188h15q52 94 140.5 151.5t192.5 57.5z" />
+<glyph unicode="s" horiz-adv-x="1018" d="M940 332q0 -172 -119.5 -262t-357.5 -90q-122 0 -208 16.5t-161 48.5v252q85 -40 191.5 -67t187.5 -27q166 0 166 96q0 36 -22 58.5t-76 51t-144 66.5q-129 54 -189.5 100t-88 105.5t-27.5 146.5q0 149 115.5 230.5t327.5 81.5q202 0 393 -88l-92 -220q-84 36 -157 59 t-149 23q-135 0 -135 -73q0 -41 43.5 -71t190.5 -89q131 -53 192 -99t90 -106t29 -143z" />
+<glyph unicode="t" horiz-adv-x="889" d="M631 223q80 0 192 35v-227q-114 -51 -280 -51q-183 0 -266.5 92.5t-83.5 277.5v539h-146v129l168 102l88 236h195v-238h313v-229h-313v-539q0 -65 36.5 -96t96.5 -31z" />
+<glyph unicode="u" horiz-adv-x="1346" d="M952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234z" />
+<glyph unicode="v" horiz-adv-x="1165" d="M426 0l-426 1118h319l216 -637q36 -121 45 -229h6q5 96 45 229l215 637h319l-426 -1118h-313z" />
+<glyph unicode="w" horiz-adv-x="1753" d="M1079 0l-86 391l-116 494h-7l-204 -885h-328l-318 1118h304l129 -495q31 -133 63 -367h6q4 76 35 241l16 85l138 536h336l131 -536q4 -22 12.5 -65t16.5 -91.5t14.5 -95t7.5 -74.5h6q9 72 32 197.5t33 169.5l134 495h299l-322 -1118h-332z" />
+<glyph unicode="x" horiz-adv-x="1184" d="M389 571l-360 547h346l217 -356l219 356h346l-364 -547l381 -571h-347l-235 383l-236 -383h-346z" />
+<glyph unicode="y" horiz-adv-x="1165" d="M0 1118h334l211 -629q27 -82 37 -194h6q11 103 43 194l207 629h327l-473 -1261q-65 -175 -185.5 -262t-281.5 -87q-79 0 -155 17v242q55 -13 120 -13q81 0 141.5 49.5t94.5 149.5l18 55z" />
+<glyph unicode="z" horiz-adv-x="999" d="M938 0h-883v180l518 705h-487v233h834v-198l-504 -687h522v-233z" />
+<glyph unicode="{" horiz-adv-x="807" d="M287 270q0 87 -65.5 133t-190.5 46v239q126 0 191 44t65 126v8v318q0 153 97 215.5t341 62.5v-225q-99 -3 -136.5 -38t-37.5 -103v-299q-6 -188 -234 -222v-12q234 -35 234 -212v-9v-299q0 -68 37 -103t137 -38v-226q-244 0 -341 62.5t-97 216.5v315z" />
+<glyph unicode="|" horiz-adv-x="1128" d="M455 1550h219v-2015h-219v2015z" />
+<glyph unicode="}" horiz-adv-x="807" d="M520 -45q0 -112 -41 -169t-135.5 -83.5t-261.5 -26.5v226q99 2 136.5 36t37.5 105v299v11q0 86 59 139.5t174 70.5v12q-227 34 -233 222v299q0 70 -37 104t-137 37v225q167 0 262 -26.5t135.5 -84t40.5 -167.5v-318v-10q0 -84 61.5 -126t194.5 -42v-239 q-125 0 -190.5 -41t-65.5 -138v-315z" />
+<glyph unicode="~" d="M322 672q-55 0 -117.5 -33.5t-116.5 -87.5v231q103 109 256 109q73 0 137.5 -16t139.5 -48q129 -55 227 -55q53 0 116 32t117 89v-231q-101 -109 -256 -109q-66 0 -126 13t-150 50q-131 56 -227 56z" />
+<glyph unicode="&#xa1;" horiz-adv-x="586" d="M168 606h244l51 -975h-346zM467 948q0 -84 -45 -127t-131 -43q-83 0 -128.5 44t-45.5 126q0 81 46.5 125.5t127.5 44.5q84 0 130 -44t46 -126z" />
+<glyph unicode="&#xa2;" d="M563 176q-420 59 -420 565q0 261 104.5 403t315.5 173v166h178v-158q166 -9 299 -74l-90 -235q-72 29 -134 47t-124 18q-121 0 -179 -83.5t-58 -254.5q0 -327 237 -327q82 0 148 15.5t166 60.5v-254q-127 -61 -265 -70v-188h-178v196z" />
+<glyph unicode="&#xa3;" d="M700 1483q195 0 390 -82l-93 -230q-157 64 -272 64q-78 0 -120 -44.5t-42 -127.5v-193h375v-219h-375v-143q0 -170 -151 -248h718v-260h-1048v248q103 44 141.5 101t38.5 157v145h-178v219h178v195q0 201 114.5 309.5t323.5 108.5z" />
+<glyph unicode="&#xa4;" d="M188 723q0 102 54 197l-129 127l147 147l127 -127q91 53 197 53q105 0 196 -55l127 129l150 -143l-129 -129q53 -89 53 -199q0 -107 -53 -199l125 -125l-146 -145l-127 125q-95 -51 -196 -51q-115 0 -199 51l-125 -123l-145 145l127 125q-54 93 -54 197zM395 723 q0 -77 54.5 -132.5t134.5 -55.5q81 0 136.5 55t55.5 133q0 80 -56.5 135t-135.5 55q-78 0 -133.5 -56t-55.5 -134z" />
+<glyph unicode="&#xa5;" d="M584 860l264 602h313l-383 -747h195v-178h-246v-138h246v-178h-246v-221h-287v221h-247v178h247v138h-247v178h190l-377 747h316z" />
+<glyph unicode="&#xa6;" horiz-adv-x="1128" d="M455 1550h219v-815h-219v815zM455 350h219v-815h-219v815z" />
+<glyph unicode="&#xa7;" horiz-adv-x="995" d="M121 805q0 79 36 144.5t97 105.5q-133 84 -133 233q0 131 111.5 210t293.5 79q170 0 363 -84l-82 -190q-68 32 -138.5 57.5t-148.5 25.5q-81 0 -118 -23t-37 -71q0 -49 49.5 -86t163.5 -82q163 -64 240 -148.5t77 -193.5q0 -177 -125 -260q62 -40 93.5 -92.5t31.5 -126.5 q0 -148 -119.5 -235.5t-320.5 -87.5q-203 0 -349 79v207q81 -41 180 -69.5t169 -28.5q194 0 194 117q0 39 -18.5 63t-63.5 49.5t-125 59.5q-183 74 -252 152.5t-69 195.5zM344 827q0 -67 65 -119t181 -98q78 57 78 146q0 68 -50.5 115t-183.5 96q-37 -14 -63.5 -53.5 t-26.5 -86.5z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1243" d="M279 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM682 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M895 1010q-97 0 -150 -74t-53 -205q0 -280 203 -280q57 0 123 15t123 44v-191q-120 -57 -252 -57q-204 0 -316 125t-112 346q0 220 110.5 342.5t309.5 122.5q149 0 305 -78l-74 -168q-113 58 -217 58zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275 t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM242 731q0 -164 82 -305.5t224 -223t304 -81.5q164 0 305.5 82t223 224t81.5 304q0 164 -82 305.5t-224 223t-304 81.5q-164 0 -305.5 -82t-223 -224t-81.5 -304z" />
+<glyph unicode="&#xaa;" horiz-adv-x="784" d="M561 764l-31 110q-43 -58 -105 -90t-136 -32q-117 0 -179.5 58.5t-62.5 164.5q0 109 82.5 163.5t267.5 63.5l99 4q0 117 -127 117q-81 0 -217 -61l-66 135q66 32 145.5 57t178.5 25q137 0 211.5 -71t74.5 -202v-442h-135zM252 977q0 -38 23 -56t55 -18q77 0 121.5 41.5 t44.5 106.5v36l-99 -6q-145 -10 -145 -104z" />
+<glyph unicode="&#xab;" horiz-adv-x="1260" d="M82 573l371 455l219 -119l-279 -348l279 -348l-219 -119l-371 453v26zM588 573l370 455l220 -119l-279 -348l279 -348l-220 -119l-370 453v26z" />
+<glyph unicode="&#xac;" d="M1081 248h-219v364h-774v219h993v-583z" />
+<glyph unicode="&#xad;" horiz-adv-x="659" d="M61 424zM61 424v250h537v-250h-537z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M1157 905q0 -170 -143 -233l237 -400h-254l-178 338h-47v-338h-229v916h264q181 0 265.5 -70t84.5 -213zM772 778h31q66 0 94.5 28.5t28.5 94.5q0 65 -28 92t-97 27h-29v-242zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275t101 -377q0 -197 -97 -370 t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM242 731q0 -164 82 -305.5t224 -223t304 -81.5q164 0 305.5 82t223 224t81.5 304q0 164 -82 305.5t-224 223t-304 81.5q-164 0 -305.5 -82t-223 -224t-81.5 -304z" />
+<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M1030 1556h-1036v201h1036v-201z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M92 1137q0 92 46 172t126 127t174 47q92 0 172.5 -46t127 -127t46.5 -173q0 -93 -46.5 -173.5t-126.5 -125.5t-173 -45q-145 0 -245.5 99.5t-100.5 244.5zM283 1137q0 -64 44.5 -109t110.5 -45t111 46t45 108q0 63 -45.5 110t-110.5 47q-64 0 -109.5 -46t-45.5 -111z" />
+<glyph unicode="&#xb1;" d="M475 674h-387v219h387v389h219v-389h387v-219h-387v-385h-219v385zM88 0v219h993v-219h-993z" />
+<glyph unicode="&#xb2;" horiz-adv-x="776" d="M702 586h-647v168l224 219q102 100 130.5 144.5t28.5 94.5q0 38 -24 58t-64 20q-81 0 -180 -88l-123 152q147 129 336 129q137 0 216 -66.5t79 -183.5q0 -85 -47 -160t-176 -192l-105 -95h352v-200z" />
+<glyph unicode="&#xb3;" horiz-adv-x="776" d="M666 1249q0 -143 -170 -198v-13q94 -20 146 -75t52 -134q0 -121 -88 -190.5t-274 -69.5q-143 0 -273 70v190q148 -90 271 -90q143 0 143 107q0 53 -44 79.5t-122 26.5h-112v160h92q83 0 123.5 26t40.5 83q0 38 -25 63t-76 25q-47 0 -89 -19t-99 -59l-101 141 q62 47 137.5 78t178.5 31q127 0 208 -64t81 -168z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1243" d="M332 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1352" d="M465 465q0 -121 44 -181.5t138 -60.5q126 0 183 86.5t57 282.5v526h305v-1118h-231l-43 150h-15q-42 -85 -102 -127.5t-148 -42.5q-62 0 -114 23t-84 67l5 -85l5 -157v-320h-305v1610h305v-653z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1167 -260h-161v1616h-166v-1616h-162v819q-62 -18 -146 -18q-216 0 -317.5 125t-101.5 376q0 260 109 387t341 127h604v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="584" d="M117 723q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -81 -46.5 -125.5t-127.5 -44.5q-84 0 -130 44t-46 126z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M418 -250q0 -128 -75.5 -185t-233.5 -57q-78 0 -146 21v168q27 -7 72.5 -14t70.5 -7q72 0 72 62q0 83 -166 108l78 154h193l-27 -61q74 -24 118 -74.5t44 -114.5z" />
+<glyph unicode="&#xb9;" horiz-adv-x="776" d="M584 586h-238v446l3 112l5 95q-27 -36 -75 -78l-78 -61l-109 127l301 235h191v-876z" />
+<glyph unicode="&#xba;" horiz-adv-x="795" d="M737 1116q0 -171 -91.5 -267.5t-250.5 -96.5q-153 0 -245.5 98.5t-92.5 265.5q0 169 89.5 266t252.5 97q152 0 245 -98.5t93 -264.5zM260 1116q0 -100 32.5 -150.5t104.5 -50.5t103.5 50.5t31.5 150.5t-31.5 149.5t-103.5 49.5t-104.5 -49.5t-32.5 -149.5z" />
+<glyph unicode="&#xbb;" horiz-adv-x="1260" d="M1178 547l-371 -453l-219 119l278 348l-278 348l219 119l371 -455v-26zM672 547l-371 -453l-219 119l278 348l-278 348l219 119l371 -455v-26z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1804" d="M46 0zM538 586h-238v446l3 112l5 95q-27 -36 -75 -78l-78 -61l-109 127l301 235h191v-876zM1370 1462l-811 -1462h-239l811 1462h239zM1682 152h-125v-151h-238v151h-383v154l385 577h236v-563h125v-168zM1319 320v164q0 86 6 184q-9 -26 -35.5 -80t-41.5 -77l-127 -191 h198z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1804" d="M46 0zM538 586h-238v446l3 112l5 95q-27 -36 -75 -78l-78 -61l-109 127l301 235h191v-876zM1370 1462l-811 -1462h-239l811 1462h239zM1716 1h-647v168l224 219q102 100 130.5 144.5t28.5 94.5q0 38 -24 58t-64 20q-81 0 -180 -88l-123 152q147 129 336 129 q137 0 216 -66.5t79 -183.5q0 -85 -47 -160t-176 -192l-105 -95h352v-200z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1804" d="M90 0zM697 1249q0 -143 -170 -198v-13q94 -20 146 -75t52 -134q0 -121 -88 -190.5t-274 -69.5q-143 0 -273 70v190q148 -90 271 -90q143 0 143 107q0 53 -44 79.5t-122 26.5h-112v160h92q83 0 123.5 26t40.5 83q0 38 -25 63t-76 25q-47 0 -89 -19t-99 -59l-101 141 q62 47 137.5 78t178.5 31q127 0 208 -64t81 -168zM1441 1462l-811 -1462h-239l811 1462h239zM1712 152h-125v-151h-238v151h-383v154l385 577h236v-563h125v-168zM1349 320v164q0 86 6 184q-9 -26 -35.5 -80t-41.5 -77l-127 -191h198z" />
+<glyph unicode="&#xbf;" horiz-adv-x="977" d="M713 606v-74q0 -98 -44.5 -169t-152.5 -148q-109 -78 -137.5 -122t-28.5 -107q0 -57 43.5 -94t132.5 -37q79 0 169 29t186 71l102 -221q-98 -56 -221.5 -90.5t-229.5 -34.5q-220 0 -345.5 96.5t-125.5 265.5q0 108 48.5 187t191.5 184q95 70 121.5 107t26.5 98v59h264z M745 948q0 -84 -45 -127t-131 -43q-83 0 -128.5 44t-45.5 126q0 81 46.5 125.5t127.5 44.5q84 0 130 -44t46 -126z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM713 1579q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM541 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM938 1579q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM543 1684q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16 q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM365 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM768 1743 q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM959 1567q0 -108 -71 -174t-183 -66t-180 64t-68 174q0 108 67.5 172.5t180.5 64.5q110 0 182 -66t72 -169zM801 1565 q0 45 -27 70.5t-69 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69 26t27 71z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1950" d="M1829 0h-873v348h-491l-150 -348h-315l655 1462h1174v-254h-563v-321h526v-254h-526v-377h563v-256zM578 608h378v590h-127z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1305" d="M119 0zM805 1225q-175 0 -271 -131.5t-96 -366.5q0 -489 367 -489q154 0 373 77v-260q-180 -75 -402 -75q-319 0 -488 193.5t-169 555.5q0 228 83 399.5t238.5 263t364.5 91.5q213 0 428 -103l-100 -252q-82 39 -165 68t-163 29zM959 -250q0 -128 -75.5 -185t-233.5 -57 q-78 0 -146 21v168q27 -7 72.5 -14t70.5 -7q72 0 72 62q0 83 -166 108l78 154h193l-27 -61q74 -24 118 -74.5t44 -114.5z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1147" d="M184 0zM1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256zM634 1579q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1147" d="M184 0zM1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256zM424 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xca;" horiz-adv-x="1147" d="M175 0zM1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256zM841 1579q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1147" d="M184 0zM1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256zM272 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM675 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99 q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xcc;" horiz-adv-x="678" d="M0 0zM184 0v1462h310v-1462h-310zM317 1579q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xcd;" horiz-adv-x="678" d="M167 0zM184 0v1462h310v-1462h-310zM167 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xce;" horiz-adv-x="678" d="M0 0zM184 0v1462h310v-1462h-310zM570 1579q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xcf;" horiz-adv-x="678" d="M0 0zM184 0v1462h310v-1462h-310zM-3 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM400 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5 t-40.5 100.5z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1516" d="M47 850h137v612h459q358 0 556 -189t198 -528q0 -361 -205.5 -553t-593.5 -192h-414v596h-137v254zM1075 737q0 232 -104 351.5t-314 119.5h-163v-358h237v-254h-237v-340h131q450 0 450 481z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1665" d="M184 0zM1481 0h-394l-636 1106h-9q19 -293 19 -418v-688h-277v1462h391l635 -1095h7q-15 285 -15 403v692h279v-1462zM668 1684q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149 q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM824 1579q-63 44 -185 142.5t-190 164.5v21h342 q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM658 1579v27q172 200 235 301h342v-21 q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM1047 1579q-157 93 -234 176q-78 -81 -229 -176h-203 v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM652 1684q-31 0 -59.5 -26.5t-41.5 -80.5h-149 q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM474 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37 t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM877 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xd7;" d="M428 723l-299 301l152 154l301 -299l305 299l153 -150l-305 -305l301 -303l-149 -152l-305 301l-301 -299l-150 152z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1630" d="M1511 733q0 -363 -180 -558t-516 -195q-197 0 -336 65l-90 -135l-162 108l90 136q-198 194 -198 581q0 365 180.5 557.5t517.5 192.5q198 0 344 -70l84 125l160 -104l-88 -131q194 -194 194 -572zM444 733q0 -191 56 -307l506 756q-84 45 -189 45q-185 0 -279 -124.5 t-94 -369.5zM1186 733q0 180 -51 297l-500 -751q76 -39 180 -39q371 0 371 493z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1548" d="M174 0zM1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309zM750 1579q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xda;" horiz-adv-x="1548" d="M174 0zM1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309zM602 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1548" d="M174 0zM1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309zM1006 1579q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357 q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1548" d="M174 0zM1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309zM433 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5 q-64 0 -101.5 35t-37.5 98zM836 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1278" d="M0 0zM639 860l305 602h334l-485 -893v-569h-308v559l-485 903h336zM461 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xde;" horiz-adv-x="1286" d="M1194 770q0 -229 -142.5 -353t-404.5 -124h-153v-293h-310v1462h310v-229h178q254 0 388 -119t134 -344zM494 543h100q145 0 216 52.5t71 174.5q0 107 -63.5 159t-199.5 52h-124v-438z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1456" d="M1249 1241q0 -64 -21 -112.5t-53 -86.5t-69 -67t-69 -53t-53 -45t-21 -43q0 -27 26.5 -53t92.5 -66q146 -91 198.5 -140t78 -110t25.5 -139q0 -172 -116.5 -259t-343.5 -87q-99 0 -171 14.5t-132 48.5v242q53 -36 135.5 -61t146.5 -25q168 0 168 123q0 41 -16 66.5 t-57 55.5t-115 72q-126 72 -175 131.5t-49 140.5q0 64 35 117t105 102q77 55 108 95t31 86q0 60 -63.5 100.5t-163.5 40.5q-116 0 -181 -52.5t-65 -148.5v-1128h-305v1139q0 201 146.5 314.5t404.5 113.5q244 0 391 -88.5t147 -237.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM614 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM441 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM843 1240q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM467 1346q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36 t-73 16.5z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM285 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM688 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36 q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM883 1479q0 -108 -71 -174t-183 -66t-180 64t-68 174q0 108 67.5 172.5t180.5 64.5q110 0 182 -66t72 -169zM725 1477q0 45 -27 70.5t-69 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69 26t27 71z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1878" d="M1329 -20q-137 0 -249.5 50.5t-184.5 155.5q-98 -117 -196.5 -161.5t-256.5 -44.5q-161 0 -258.5 94.5t-97.5 259.5q0 178 121 262.5t362 93.5l191 6v84q0 69 -44.5 102t-121.5 33q-140 0 -305 -77l-99 202q189 101 422 101q227 0 342 -131q66 64 152.5 96.5t206.5 32.5 q221 0 349 -137.5t128 -370.5v-148h-723q5 -130 77 -203t202 -73q196 0 380 88v-236q-79 -39 -171 -59t-226 -20zM760 518l-113 -4q-124 -4 -186 -47.5t-62 -134.5q0 -129 140 -129q101 0 161 61t60 162v92zM1307 922q-217 0 -234 -236h430q-2 112 -55 174t-141 62z" />
+<glyph unicode="&#xe7;" horiz-adv-x="1053" d="M92 0zM614 -20q-522 0 -522 573q0 285 142 435.5t407 150.5q194 0 348 -76l-90 -236q-72 29 -134 47.5t-124 18.5q-238 0 -238 -338q0 -328 238 -328q88 0 163 23.5t150 73.5v-261q-74 -47 -149.5 -65t-190.5 -18zM805 -250q0 -128 -75.5 -185t-233.5 -57q-78 0 -146 21 v168q27 -7 72.5 -14t70.5 -7q72 0 72 62q0 83 -166 108l78 154h193l-27 -61q74 -24 118 -74.5t44 -114.5z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1210" d="M92 0zM623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z M620 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1210" d="M92 0zM623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z M447 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xea;" horiz-adv-x="1210" d="M92 0zM623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z M860 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1210" d="M92 0zM623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z M297 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM700 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xec;" horiz-adv-x="625" d="M0 0zM465 0h-305v1118h305v-1118zM274 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xed;" horiz-adv-x="625" d="M145 0zM465 0h-305v1118h305v-1118zM145 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xee;" horiz-adv-x="625" d="M0 0zM465 0h-305v1118h305v-1118zM544 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xef;" horiz-adv-x="625" d="M0 0zM465 0h-305v1118h305v-1118zM-29 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM374 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5 t-40.5 100.5z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1268" d="M510 1303q-80 53 -152 92l101 176q144 -65 258 -141l225 139l100 -154l-170 -104q156 -143 230 -324.5t74 -413.5q0 -280 -145 -436.5t-400 -156.5q-245 0 -392 137t-147 372q0 233 130 369.5t351 136.5q205 0 275 -98l8 4q-67 162 -192 281l-230 -142l-100 156zM864 532 q0 108 -61 173t-168 65q-121 0 -176.5 -68.5t-55.5 -214.5q0 -140 60 -211t172 -71q123 0 176 82t53 245z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1346" d="M160 0zM1192 0h-305v653q0 121 -43 181.5t-137 60.5q-128 0 -185 -85.5t-57 -283.5v-526h-305v1118h233l41 -143h17q51 81 140.5 122.5t203.5 41.5q195 0 296 -105.5t101 -304.5v-729zM508 1346q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82 q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M612 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M467 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M864 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M469 1346q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M291 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM694 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xf7;" d="M88 612v219h993v-219h-993zM444 373q0 76 37 113.5t103 37.5t102.5 -39t36.5 -112q0 -70 -37 -111t-102 -41t-102.5 39t-37.5 113zM444 1071q0 75 37 113.5t103 38.5q67 0 103 -40.5t36 -111.5q0 -70 -37 -110.5t-102 -40.5t-102.5 39t-37.5 112z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1268" d="M1176 561q0 -273 -144 -427t-401 -154q-126 0 -234 45l-67 -101l-154 105l68 100q-152 156 -152 432q0 274 143 426t402 152q132 0 248 -52l55 82l152 -108l-58 -84q142 -155 142 -416zM403 561q0 -94 19 -166l317 475q-43 23 -106 23q-122 0 -176 -82.5t-54 -249.5z M864 561q0 81 -12 141l-309 -462q38 -15 92 -15q122 0 175.5 84.5t53.5 251.5z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1346" d="M154 0zM952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234zM620 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1346" d="M154 0zM952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234zM498 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1346" d="M154 0zM952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234zM901 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357 q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1346" d="M154 0zM952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234zM326 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5 t-103 -36.5q-64 0 -101.5 35t-37.5 98zM729 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xfd;" horiz-adv-x="1165" d="M0 0zM0 1118h334l211 -629q27 -82 37 -194h6q11 103 43 194l207 629h327l-473 -1261q-65 -175 -185.5 -262t-281.5 -87q-79 0 -155 17v242q55 -13 120 -13q81 0 141.5 49.5t94.5 149.5l18 55zM393 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5 h-203z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1296" d="M465 973q50 81 131 123.5t186 42.5q198 0 310 -154.5t112 -423.5q0 -273 -111.5 -427t-310.5 -154q-213 0 -317 137h-14l7 -62l7 -94v-453h-305v2048h305v-391l-7 -120l-7 -72h14zM684 895q-113 0 -165 -69.5t-54 -229.5v-33q0 -180 53.5 -258t169.5 -78q205 0 205 338 q0 165 -50.5 247.5t-158.5 82.5z" />
+<glyph unicode="&#xff;" horiz-adv-x="1165" d="M0 0zM0 1118h334l211 -629q27 -82 37 -194h6q11 103 43 194l207 629h327l-473 -1261q-65 -175 -185.5 -262t-281.5 -87q-79 0 -155 17v242q55 -13 120 -13q81 0 141.5 49.5t94.5 149.5l18 55zM243 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5 t-103 -36.5q-64 0 -101.5 35t-37.5 98zM646 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#x131;" horiz-adv-x="625" d="M465 0h-305v1118h305v-1118z" />
+<glyph unicode="&#x152;" horiz-adv-x="1993" d="M1872 0h-873q-38 -9 -109 -14.5t-116 -5.5q-319 0 -487 197t-168 558q0 363 169.5 556.5t487.5 193.5q61 0 127 -7t101 -16h868v-254h-563v-321h526v-254h-526v-377h563v-256zM776 1227q-166 0 -252 -125.5t-86 -368.5q0 -244 86 -368.5t250 -124.5q65 0 126 10.5 t99 28.5v907q-35 19 -101.5 30t-121.5 11z" />
+<glyph unicode="&#x153;" horiz-adv-x="2003" d="M1446 -20q-271 0 -420 155q-141 -155 -391 -155q-162 0 -286 70t-190.5 202t-66.5 309q0 277 141.5 427.5t399.5 150.5q112 0 212 -39.5t171 -116.5q144 156 383 156q244 0 380 -135t136 -373v-148h-746v-8q7 -127 81.5 -197.5t207.5 -70.5q107 0 200 21t193 67v-236 q-81 -39 -175.5 -59t-229.5 -20zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1405 922q-94 0 -156 -57.5t-71 -178.5h450q-2 111 -60.5 173.5t-162.5 62.5z" />
+<glyph unicode="&#x178;" horiz-adv-x="1278" d="M0 0zM639 860l305 602h334l-485 -893v-569h-308v559l-485 903h336zM297 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM700 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97 t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1243" d="M852 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M842 1479q0 -108 -71 -174t-183 -66t-180 64t-68 174q0 108 67.5 172.5t180.5 64.5q110 0 182 -66t72 -169zM684 1477q0 45 -27 70.5t-69 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69 26t27 71z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1243" d="M457 1346q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="659" d="M61 424v250h537v-250h-537z" />
+<glyph unicode="&#x2011;" horiz-adv-x="659" d="M61 424v250h537v-250h-537z" />
+<glyph unicode="&#x2012;" horiz-adv-x="659" d="M61 424v250h537v-250h-537z" />
+<glyph unicode="&#x2013;" horiz-adv-x="1024" d="M82 436v230h860v-230h-860z" />
+<glyph unicode="&#x2014;" horiz-adv-x="2048" d="M82 436v230h1884v-230h-1884z" />
+<glyph unicode="&#x2018;" horiz-adv-x="444" d="M39 961l-14 22q22 91 72.5 228.5t103.5 250.5h219q-66 -267 -101 -501h-280z" />
+<glyph unicode="&#x2019;" horiz-adv-x="444" d="M406 1462l14 -22q-50 -197 -176 -479h-219q69 296 100 501h281z" />
+<glyph unicode="&#x201a;" horiz-adv-x="596" d="M459 215q-52 -202 -176 -479h-220q65 266 101 502h280z" />
+<glyph unicode="&#x201c;" horiz-adv-x="911" d="M492 983q22 91 72.5 228.5t103.5 250.5h219q-66 -267 -101 -501h-280zM25 983q22 91 72.5 228.5t103.5 250.5h219q-66 -267 -101 -501h-280z" />
+<glyph unicode="&#x201d;" horiz-adv-x="911" d="M420 1440q-50 -197 -176 -479h-219q69 296 100 501h281zM887 1440q-50 -197 -176 -479h-219q69 296 100 501h280z" />
+<glyph unicode="&#x201e;" horiz-adv-x="1061" d="M459 215q-52 -202 -176 -479h-220q65 266 101 502h280zM926 215q-52 -202 -176 -479h-220q65 266 101 502h280z" />
+<glyph unicode="&#x2022;" horiz-adv-x="770" d="M98 748q0 154 74 235.5t213 81.5q137 0 212 -82t75 -235q0 -152 -75.5 -235t-211.5 -83q-138 0 -212.5 83t-74.5 235z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1751" d="M117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5zM700 143q0 84 45 127t132 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-85 0 -131 44.5t-46 125.5zM1284 143q0 84 45 127t131 43 q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="754" d="M82 573l371 455l219 -119l-279 -348l279 -348l-219 -119l-371 453v26z" />
+<glyph unicode="&#x203a;" horiz-adv-x="754" d="M672 547l-371 -453l-219 119l278 348l-278 348l219 119l371 -455v-26z" />
+<glyph unicode="&#x2044;" horiz-adv-x="266" d="M657 1462l-811 -1462h-239l811 1462h239z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="776" d="M758 737h-125v-151h-238v151h-383v154l385 577h236v-563h125v-168zM395 905v164q0 86 6 184q-9 -26 -35.5 -80t-41.5 -77l-127 -191h198z" />
+<glyph unicode="&#x20ac;" d="M803 1225q-122 0 -201 -70.5t-102 -204.5h403v-176h-418l-2 -35v-47l2 -33h355v-178h-338q51 -243 321 -243q143 0 275 57v-256q-116 -59 -293 -59q-245 0 -403 133t-199 368h-137v178h118q-4 23 -4 62l2 53h-116v176h133q37 242 199 382.5t405 140.5q188 0 352 -82 l-98 -232q-69 31 -129 48.5t-125 17.5z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1534" d="M381 741h-168v572h-197v149h564v-149h-199v-572zM956 741l-165 529h-7l4 -111v-418h-163v721h247l160 -510l170 510h240v-721h-168v408l4 121h-6l-174 -529h-142z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
+<glyph horiz-adv-x="1296" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.woff b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.woff
new file mode 100644
index 0000000..1205787
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.woff
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.eot b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.eot
new file mode 100644
index 0000000..1f639a1
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.eot
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.svg b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.svg
new file mode 100644
index 0000000..6a2607b
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.svg
@@ -0,0 +1,1830 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sansbold_italic" horiz-adv-x="1128" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1352" d="M0 0zM-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h219l-49 -229h-220l-215 -1010q-77 -371 -403 -371z M1065 1380q0 87 47.5 131.5t134.5 44.5q73 0 111 -31t38 -89q0 -80 -44 -129.5t-136 -49.5q-151 0 -151 123zM1081 0h-301l237 1118h301z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1352" d="M0 0zM-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h219l-49 -229h-220l-215 -1010q-77 -371 -403 -371z M1081 0h-301l330 1556h301z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="2048" d="M-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h395l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49 l-79 -224q-69 31 -134 31q-57 0 -91.5 -40t-47.5 -105l-12 -62h219l-49 -229h-219l-215 -1010q-77 -371 -404 -371q-104 0 -174 25v242q61 -21 115 -21q136 0 172 170l205 965h-396l-215 -1010q-77 -371 -403 -371zM1778 0h-301l237 1118h301zM1761 1380q0 87 48 131.5 t135 44.5q73 0 111 -31t38 -89q0 -80 -44 -129.5t-136 -49.5q-152 0 -152 123z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="2048" d="M-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h395l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49 l-79 -224q-69 31 -134 31q-57 0 -91.5 -40t-47.5 -105l-12 -62h219l-49 -229h-219l-215 -1010q-77 -371 -404 -371q-104 0 -174 25v242q61 -21 115 -21q136 0 172 170l205 965h-396l-215 -1010q-77 -371 -403 -371zM1778 0h-301l329 1556h301z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="586" d="M391 485h-241l157 977h340zM25 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode="&#x22;" horiz-adv-x="928" d="M549 1462l-152 -528h-196l71 528h277zM954 1462l-151 -528h-199l74 528h276z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M1036 846l-69 -232h258l-19 -206h-297l-116 -408h-220l117 408h-194l-115 -408h-215l113 408h-238l18 206h277l70 232h-252l18 209h289l119 407h217l-117 -407h199l116 407h215l-116 -407h239l-18 -209h-279zM553 614h197l69 232h-196z" />
+<glyph unicode="$" d="M1034 496q0 -184 -125.5 -291.5t-367.5 -124.5l-39 -199h-140l44 201q-209 12 -355 86v266q198 -107 404 -117l71 322q-163 61 -241 151t-78 214q0 173 127 279.5t350 121.5l35 151h139l-33 -151q166 -22 295 -90l-106 -232q-132 65 -242 74l-63 -299q131 -51 195 -99.5 t97 -113t33 -149.5zM594 322q63 9 102 45t39 98q0 46 -24.5 75.5t-59.5 43.5zM633 1157q-62 -7 -96.5 -41t-34.5 -94q0 -79 80 -111z" />
+<glyph unicode="%" horiz-adv-x="1753" d="M518 1274q-63 0 -110.5 -128.5t-47.5 -277.5q0 -96 56 -96q65 0 112 131t47 275q0 96 -57 96zM821 1165q0 -166 -56 -310t-151 -217t-217 -73q-139 0 -210.5 83.5t-71.5 236.5q0 169 55.5 311.5t148.5 214.5t216 72q137 0 211.5 -80t74.5 -238zM1554 1462l-1083 -1462 h-240l1088 1462h235zM1376 690q-39 0 -75 -56t-59 -154t-23 -195t55 -97q41 0 77 55t59.5 154.5t23.5 196.5q0 96 -58 96zM1679 590q0 -167 -54 -313.5t-148 -220.5t-215 -74q-144 0 -216.5 78.5t-72.5 222.5q0 177 53 322.5t148 219.5t219 74q137 0 211.5 -78.5 t74.5 -230.5z" />
+<glyph unicode="&#x26;" horiz-adv-x="1450" d="M1325 0h-350l-72 98q-175 -118 -403 -118q-209 0 -320.5 97.5t-111.5 280.5q0 145 78.5 248.5t273.5 200.5q-76 130 -76 258q0 195 117.5 307.5t316.5 112.5q169 0 266 -82.5t97 -224.5q0 -280 -365 -426l195 -263q44 57 80.5 121.5t78.5 173.5h300q-133 -313 -310 -497z M541 623q-88 -51 -123 -104.5t-35 -131.5q0 -65 45.5 -108t116.5 -43q115 0 221 59zM662 920q113 59 155.5 111t42.5 112q0 57 -30 82.5t-70 25.5q-66 0 -102.5 -46.5t-36.5 -119.5q0 -46 12 -92t29 -73z" />
+<glyph unicode="'" horiz-adv-x="522" d="M549 1462l-152 -528h-196l71 528h277z" />
+<glyph unicode="(" horiz-adv-x="694" d="M74 281q0 339 122.5 626.5t381.5 554.5h262q-255 -278 -377.5 -573.5t-122.5 -618.5q0 -308 117 -594h-234q-149 266 -149 605z" />
+<glyph unicode=")" horiz-adv-x="694" d="M618 858q0 -342 -124 -630.5t-379 -551.5h-262q499 545 499 1192q0 307 -116 594h233q149 -264 149 -604z" />
+<glyph unicode="*" horiz-adv-x="1116" d="M885 1522l-113 -353l387 29l-18 -254l-338 43l160 -336l-246 -73l-90 337l-197 -278l-207 164l275 248l-326 92l86 237l338 -174l33 369z" />
+<glyph unicode="+" d="M475 612h-366v219h366v369h219v-369h367v-219h-367v-364h-219v364z" />
+<glyph unicode="," horiz-adv-x="569" d="M377 238l8 -23q-118 -255 -262 -479h-225q74 167 194 502h285z" />
+<glyph unicode="-" horiz-adv-x="659" d="M41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="." horiz-adv-x="584" d="M25 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode="/" horiz-adv-x="862" d="M1014 1462l-809 -1462h-295l809 1462h295z" />
+<glyph unicode="0" d="M1110 1012q0 -470 -168.5 -751t-472.5 -281q-198 0 -300.5 122t-102.5 365q0 297 84 537t228 360.5t333 120.5q399 0 399 -473zM684 1235q-80 0 -149.5 -104t-117.5 -302t-48 -368q0 -115 27.5 -173.5t97.5 -58.5q81 0 150.5 106t116 301t46.5 386q0 111 -30.5 162 t-92.5 51z" />
+<glyph unicode="1" d="M688 0h-305l180 829q35 152 76 287q-9 -8 -61.5 -47t-262.5 -170l-133 215l566 348h249z" />
+<glyph unicode="2" d="M913 0h-962l43 213l477 424q180 159 248.5 254.5t68.5 179.5q0 75 -41 114.5t-110 39.5q-66 0 -135.5 -33.5t-171.5 -118.5l-146 203q132 112 252 159.5t250 47.5q190 0 301 -98t111 -259q0 -107 -41 -201t-122.5 -188t-266.5 -245l-269 -222v-10h568z" />
+<glyph unicode="3" d="M1104 1149q0 -156 -94.5 -262t-261.5 -135v-4q131 -26 198.5 -106.5t67.5 -201.5q0 -133 -74 -238t-212 -163.5t-327 -58.5q-239 0 -387 79v267q84 -50 182 -75.5t191 -25.5q158 0 243 63.5t85 176.5q0 172 -258 172h-138l46 221h73q167 0 263 62t96 172q0 67 -43 104 t-121 37q-134 0 -287 -100l-127 204q124 81 232.5 113.5t246.5 32.5q190 0 298 -90.5t108 -243.5z" />
+<glyph unicode="4" d="M1028 303h-170l-63 -303h-293l63 303h-590l48 234l770 925h311l-195 -919h170zM616 543l58 248q12 58 40 164t42 141h-6q-35 -63 -132 -181l-313 -372h311z" />
+<glyph unicode="5" d="M623 922q183 0 289 -103t106 -287q0 -167 -71.5 -292t-208.5 -192.5t-330 -67.5q-117 0 -218.5 23t-162.5 58v269q174 -99 352 -99q154 0 241 71t87 194q0 94 -57.5 141t-166.5 47q-102 0 -213 -33l-104 78l207 733h755l-55 -262h-489l-88 -293q72 15 127 15z" />
+<glyph unicode="6" d="M88 469q0 202 61 395.5t167.5 335t256.5 213.5t357 72q125 0 223 -27l-51 -246q-84 25 -191 25q-194 0 -313.5 -108t-185.5 -345h4q115 166 311 166q157 0 242.5 -97t85.5 -273q0 -169 -71 -313.5t-190.5 -215.5t-277.5 -71q-212 0 -320 127t-108 362zM530 227 q99 0 161.5 94t62.5 236q0 71 -33.5 113.5t-102.5 42.5q-60 0 -114.5 -35.5t-87.5 -95.5t-33 -160q0 -91 40 -143t107 -52z" />
+<glyph unicode="7" d="M78 0l737 1202h-629l56 260h975l-41 -194l-752 -1268h-346z" />
+<glyph unicode="8" d="M721 1485q123 0 215.5 -42t141 -118t48.5 -174q0 -134 -80.5 -233.5t-230.5 -151.5q217 -141 217 -365q0 -122 -63.5 -218.5t-181 -149.5t-273.5 -53q-214 0 -336.5 100t-122.5 270q0 298 348 426q-165 132 -165 299q0 119 58 212.5t168 145.5t257 52zM582 643 q-116 -45 -173 -107t-57 -153q0 -81 50 -128.5t135 -47.5q93 0 147.5 53.5t54.5 138.5q0 73 -36.5 131.5t-120.5 112.5zM694 1260q-76 0 -121 -46.5t-45 -119.5q0 -132 123 -201q185 72 185 221q0 68 -39.5 107t-102.5 39z" />
+<glyph unicode="9" d="M1092 1001q0 -280 -99 -533t-264 -370.5t-403 -117.5q-128 0 -240 32v256q111 -41 227 -41q121 0 207.5 49t144 138.5t99.5 257.5h-4q-111 -158 -295 -158q-163 0 -252.5 103.5t-89.5 285.5q0 166 73 305.5t196 208t286 68.5q203 0 308.5 -123t105.5 -361zM645 1237 q-65 0 -115.5 -42t-78 -114t-27.5 -153q0 -87 37.5 -131.5t105.5 -44.5q60 0 111.5 36.5t82 100t30.5 158.5q0 84 -35.5 137t-110.5 53z" />
+<glyph unicode=":" horiz-adv-x="584" d="M207 940q0 92 55.5 145.5t149.5 53.5q68 0 108.5 -38.5t40.5 -107.5q0 -86 -54.5 -140t-144.5 -54q-72 0 -113.5 36.5t-41.5 104.5zM25 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode=";" horiz-adv-x="584" d="M385 215q-118 -255 -262 -479h-225q74 167 194 502h285zM207 940q0 92 55.5 145.5t149.5 53.5q68 0 108.5 -38.5t40.5 -107.5q0 -86 -54.5 -140t-144.5 -54q-72 0 -113.5 36.5t-41.5 104.5z" />
+<glyph unicode="&#x3c;" d="M1061 203l-952 438v143l952 496v-240l-643 -317l643 -281v-239z" />
+<glyph unicode="=" d="M109 807v217h952v-217h-952zM109 418v219h952v-219h-952z" />
+<glyph unicode="&#x3e;" d="M109 442l643 281l-643 317v240l952 -496v-143l-952 -438v239z" />
+<glyph unicode="?" horiz-adv-x="940" d="M260 485l14 78q19 103 73.5 177t172.5 155q124 84 157.5 127t33.5 96q0 119 -133 119q-50 0 -106.5 -16t-201.5 -84l-92 221q230 125 445 125q177 0 280 -87.5t103 -244.5q0 -83 -28.5 -149.5t-82.5 -123t-190 -147.5q-64 -43 -96.5 -73t-52.5 -64.5t-38 -108.5h-258z M166 115q0 91 55 144.5t150 53.5q68 0 108.5 -38t40.5 -107q0 -87 -55 -141t-143 -54q-74 0 -115 38t-41 104z" />
+<glyph unicode="@" horiz-adv-x="1753" d="M1733 840q0 -173 -64 -321t-177.5 -231t-254.5 -83q-88 0 -144.5 38.5t-72.5 108.5h-6q-50 -77 -113 -112t-147 -35q-127 0 -198 79.5t-71 229.5q0 147 67.5 276.5t187.5 205t268 75.5q185 0 327 -55l-106 -420q-11 -44 -19 -76.5t-8 -64.5q0 -68 58 -68q66 0 124 64 t92.5 171t34.5 214q0 213 -123.5 325.5t-359.5 112.5q-203 0 -366.5 -94t-255 -266t-91.5 -392q0 -243 134 -380.5t376 -137.5q117 0 219.5 20t221.5 66v-186q-230 -90 -465 -90q-217 0 -378 85.5t-246 241.5t-85 359q0 279 120.5 497t343 341.5t497.5 123.5 q318 0 499 -163.5t181 -458.5zM995 889q-82 0 -145.5 -51.5t-100 -137t-36.5 -174.5q0 -65 24.5 -102t69.5 -37q141 0 213 270l57 222q-36 10 -82 10z" />
+<glyph unicode="A" horiz-adv-x="1286" d="M842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333z" />
+<glyph unicode="B" horiz-adv-x="1270" d="M788 1462q229 0 346 -81.5t117 -243.5q0 -150 -83 -247.5t-236 -129.5v-6q100 -26 159.5 -96.5t59.5 -180.5q0 -229 -153 -353t-423 -124h-522l309 1462h426zM545 883h149q121 0 181.5 48.5t60.5 139.5q0 137 -170 137h-152zM412 256h180q117 0 183.5 58t66.5 161 q0 162 -183 162h-165z" />
+<glyph unicode="C" horiz-adv-x="1253" d="M905 1227q-132 0 -237.5 -81t-169.5 -238.5t-64 -338.5q0 -167 68.5 -248t218.5 -81q146 0 338 77v-260q-199 -77 -400 -77q-254 0 -395 149.5t-141 423.5q0 262 104 482.5t278 335t400 114.5q125 0 222 -22.5t208 -82.5l-118 -250q-106 59 -175 78t-137 19z" />
+<glyph unicode="D" horiz-adv-x="1386" d="M1323 909q0 -280 -98 -486.5t-283.5 -314.5t-437.5 -108h-451l309 1462h396q270 0 417.5 -143t147.5 -410zM518 256q148 0 258 76t172 223.5t62 337.5q0 154 -72.5 234.5t-208.5 80.5h-115l-202 -952h106z" />
+<glyph unicode="E" horiz-adv-x="1110" d="M870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512z" />
+<glyph unicode="F" horiz-adv-x="1087" d="M358 0h-305l309 1462h814l-54 -254h-508l-79 -377h473l-56 -253h-473z" />
+<glyph unicode="G" horiz-adv-x="1413" d="M754 821h563l-162 -762q-134 -46 -248.5 -62.5t-242.5 -16.5q-259 0 -400 147t-141 422q0 268 107 484.5t301 334t448 117.5q218 0 410 -99l-115 -251q-74 40 -148 64t-161 24q-153 0 -273.5 -83t-189 -236.5t-68.5 -330.5q0 -172 72.5 -252.5t222.5 -80.5q76 0 170 24 l66 299h-267z" />
+<glyph unicode="H" horiz-adv-x="1434" d="M1135 0h-306l134 631h-471l-134 -631h-305l309 1462h306l-121 -573h471l121 573h305z" />
+<glyph unicode="I" horiz-adv-x="659" d="M53 0l312 1462h305l-312 -1462h-305z" />
+<glyph unicode="J" horiz-adv-x="678" d="M-135 -430q-94 0 -187 27v253q88 -20 164 -20q99 0 160.5 60.5t89.5 191.5l293 1380h305l-303 -1423q-52 -245 -175.5 -357t-346.5 -112z" />
+<glyph unicode="K" horiz-adv-x="1255" d="M1141 0h-338l-211 592l-125 -70l-109 -522h-305l309 1462h306l-152 -702l158 205l409 497h361l-594 -700z" />
+<glyph unicode="L" horiz-adv-x="1061" d="M53 0l309 1462h306l-256 -1206h512l-54 -256h-817z" />
+<glyph unicode="M" horiz-adv-x="1802" d="M838 369l551 1093h423l-309 -1462h-280l145 692q53 247 105 441h-5l-569 -1133h-281l-61 1133h-4q-11 -88 -38 -231t-187 -902h-275l309 1462h404l68 -1093h4z" />
+<glyph unicode="N" horiz-adv-x="1546" d="M1247 0h-342l-356 1106h-6l-4 -32q-32 -216 -66 -386l-145 -688h-275l309 1462h357l340 -1077h4q12 76 39 217t180 860h274z" />
+<glyph unicode="O" horiz-adv-x="1495" d="M1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246t56 357 q0 142 -65 219.5t-183 77.5z" />
+<glyph unicode="P" horiz-adv-x="1188" d="M522 774h56q142 0 223.5 69t81.5 185q0 180 -195 180h-74zM1190 1036q0 -241 -169.5 -378.5t-467.5 -137.5h-86l-109 -520h-305l309 1462h338q242 0 366 -106.5t124 -319.5z" />
+<glyph unicode="Q" horiz-adv-x="1495" d="M1432 938q0 -316 -122.5 -555.5t-334.5 -337.5l254 -393h-359l-178 328h-26q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87 t155.5 246t56 357q0 142 -65 219.5t-183 77.5z" />
+<glyph unicode="R" horiz-adv-x="1247" d="M530 813h78q131 0 204 57t73 174q0 82 -47.5 123t-149.5 41h-74zM477 561l-119 -561h-305l309 1462h359q237 0 356 -102t119 -299q0 -158 -83 -271.5t-239 -168.5l261 -621h-332l-207 561h-119z" />
+<glyph unicode="S" horiz-adv-x="1085" d="M946 432q0 -209 -148 -330.5t-401 -121.5q-221 0 -356 90v274q193 -108 358 -108q112 0 175 42.5t63 116.5q0 43 -13.5 75.5t-38.5 60.5t-124 102q-138 99 -194 196t-56 209q0 129 62 230.5t176.5 158t263.5 56.5q217 0 397 -99l-109 -233q-156 74 -288 74 q-83 0 -136 -45t-53 -119q0 -61 33 -106.5t148 -120.5q121 -80 181 -176.5t60 -225.5z" />
+<glyph unicode="T" horiz-adv-x="1087" d="M571 0h-305l254 1204h-352l55 258h1010l-55 -258h-353z" />
+<glyph unicode="U" horiz-adv-x="1415" d="M1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306z" />
+<glyph unicode="V" horiz-adv-x="1208" d="M535 299q78 221 110 283l432 880h316l-748 -1462h-334l-127 1462h295l51 -880q4 -45 4 -133q-2 -103 -6 -150h7z" />
+<glyph unicode="W" horiz-adv-x="1831" d="M1006 1018q-46 -146 -115 -299l-324 -719h-338l-45 1462h287l6 -798q0 -52 -4 -173t-10 -174h6q22 64 67 180.5t60 145.5l369 819h270l21 -873q0 -146 -9 -272h6q43 129 131 349l330 796h309l-647 -1462h-346l-22 721l-2 139q0 88 4 158h-4z" />
+<glyph unicode="X" horiz-adv-x="1241" d="M1124 0h-331l-172 543l-396 -543h-342l576 764l-238 698h320l153 -518l363 518h344l-545 -725z" />
+<glyph unicode="Y" horiz-adv-x="1155" d="M627 870l374 592h342l-618 -903l-119 -559h-303l119 559l-236 903h312z" />
+<glyph unicode="Z" horiz-adv-x="1098" d="M920 0h-981l38 201l777 1005h-543l53 256h936l-41 -202l-782 -1004h596z" />
+<glyph unicode="[" horiz-adv-x="678" d="M436 -324h-473l381 1786h473l-45 -211h-215l-291 -1364h215z" />
+<glyph unicode="\" horiz-adv-x="862" d="M481 1462l224 -1462h-267l-217 1462h260z" />
+<glyph unicode="]" horiz-adv-x="678" d="M-92 -113h213l291 1364h-215l45 211h473l-381 -1786h-471z" />
+<glyph unicode="^" horiz-adv-x="1081" d="M20 520l619 950h147l277 -950h-223l-174 633l-402 -633h-244z" />
+<glyph unicode="_" horiz-adv-x="819" d="M635 -324h-821l30 140h822z" />
+<glyph unicode="`" horiz-adv-x="1135" d="M934 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="a" horiz-adv-x="1217" d="M406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44z" />
+<glyph unicode="b" horiz-adv-x="1219" d="M813 1139q146 0 230.5 -108t84.5 -298t-68 -367.5t-187 -281.5t-263 -104q-194 0 -276 163h-8l-58 -143h-231l330 1556h301l-62 -288q-41 -182 -84 -299h8q78 98 142.5 134t140.5 36zM692 895q-68 0 -130 -65t-102 -180.5t-40 -250.5q0 -80 37 -128t102 -48q67 0 128 69 t98.5 189.5t37.5 237.5q0 176 -131 176z" />
+<glyph unicode="c" horiz-adv-x="989" d="M506 -20q-201 0 -308.5 107.5t-107.5 303.5q0 212 74.5 385.5t209.5 268t308 94.5q182 0 328 -72l-92 -229q-54 23 -106 40t-118 17q-85 0 -153.5 -64t-107 -175.5t-38.5 -239.5q0 -96 45.5 -144.5t126.5 -48.5q76 0 141 23.5t134 58.5v-246q-152 -79 -336 -79z" />
+<glyph unicode="d" horiz-adv-x="1217" d="M406 -20q-147 0 -231.5 107t-84.5 300q0 196 71.5 374.5t188.5 278t258 99.5q82 0 141.5 -37t112.5 -127h8l2 28q6 110 25 195l76 358h301l-330 -1556h-229l14 145h-4q-71 -87 -148.5 -126t-170.5 -39zM532 223q66 0 128.5 68.5t100.5 182.5t38 245q0 80 -37.5 128 t-102.5 48q-68 0 -129.5 -72t-98 -190t-36.5 -234q0 -176 137 -176z" />
+<glyph unicode="e" horiz-adv-x="1141" d="M696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5t147.5 -52.5 q87 0 158 19t172 67v-227q-172 -86 -390 -86z" />
+<glyph unicode="f" horiz-adv-x="764" d="M-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h219l-49 -229h-220l-215 -1010q-77 -371 -403 -371z" />
+<glyph unicode="g" horiz-adv-x="1108" d="M1186 1116l-35 -166l-174 -41q16 -52 16 -118q0 -195 -121 -308.5t-329 -113.5q-59 0 -99 10q-84 -27 -84 -78q0 -34 30 -49t89 -23l137 -18q163 -21 237.5 -84.5t74.5 -183.5q0 -211 -156 -323t-446 -112q-208 0 -324.5 75.5t-116.5 207.5q0 102 68.5 175.5t214.5 121.5 q-74 47 -74 133q0 71 44.5 122.5t146.5 98.5q-65 49 -96 112t-31 153q0 199 125.5 315.5t341.5 116.5q83 0 166 -23h395zM365 -6q-106 -14 -160.5 -57t-54.5 -109q0 -115 194 -115q151 0 228 45t77 127q0 39 -32.5 60t-137.5 35zM614 948q-77 0 -124.5 -76.5t-47.5 -191.5 q0 -119 103 -119q75 0 121.5 76.5t46.5 193.5t-99 117z" />
+<glyph unicode="h" horiz-adv-x="1237" d="M977 0h-301l137 653q16 68 16 119q0 123 -108 123q-92 0 -167 -114t-118 -318l-98 -463h-301l330 1556h301q-39 -181 -60 -278t-86 -309h8q62 77 138 123.5t176 46.5q138 0 213.5 -83.5t75.5 -238.5q0 -73 -23 -180z" />
+<glyph unicode="i" horiz-adv-x="608" d="M322 1380q0 87 47.5 131.5t134.5 44.5q73 0 111 -31t38 -89q0 -80 -44 -129.5t-136 -49.5q-151 0 -151 123zM338 0h-301l237 1118h301z" />
+<glyph unicode="j" horiz-adv-x="608" d="M-90 -492q-104 0 -174 25v242q61 -21 114 -21q137 0 173 170l253 1194h302l-265 -1239q-77 -371 -403 -371zM324 1380q0 87 47.5 131.5t134.5 44.5q73 0 111 -31t38 -89q0 -80 -44 -129.5t-136 -49.5q-151 0 -151 123z" />
+<glyph unicode="k" horiz-adv-x="1163" d="M920 1118h344l-498 -504l285 -614h-336l-183 420l-120 -72l-74 -348h-301l330 1556h301l-148 -694q-8 -41 -29 -117l-28 -102h4z" />
+<glyph unicode="l" horiz-adv-x="608" d="M338 0h-301l330 1556h301z" />
+<glyph unicode="m" horiz-adv-x="1853" d="M844 1139q219 0 262 -228h6q68 110 160.5 169t197.5 59q136 0 207.5 -85t71.5 -237q0 -76 -23 -180l-133 -637h-301l138 653q16 68 16 119q0 123 -98 123q-92 0 -166.5 -112t-118.5 -318l-96 -465h-301l137 653q16 68 16 119q0 123 -98 123q-92 0 -167 -114t-118 -318 l-98 -463h-301l237 1118h230l-21 -207h6q146 228 355 228z" />
+<glyph unicode="n" horiz-adv-x="1237" d="M977 0h-301l137 653q16 68 16 119q0 123 -108 123q-92 0 -167 -114t-118 -318l-98 -463h-301l237 1118h230l-21 -207h6q146 228 355 228q138 0 213.5 -83.5t75.5 -238.5q0 -73 -23 -180z" />
+<glyph unicode="o" horiz-adv-x="1198" d="M805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5q196 0 310 -118 t114 -325z" />
+<glyph unicode="p" horiz-adv-x="1219" d="M813 1139q146 0 230.5 -107.5t84.5 -300.5q0 -191 -68.5 -367.5t-187.5 -280t-262 -103.5q-83 0 -143 37t-111 126h-8q-12 -159 -43 -295l-72 -340h-301l342 1610h230l-17 -170h9q138 191 317 191zM692 895q-68 0 -131.5 -67.5t-102 -180t-38.5 -248.5q0 -80 37 -128 t102 -48q67 0 128 69t98.5 189.5t37.5 237.5q0 176 -131 176z" />
+<glyph unicode="q" horiz-adv-x="1217" d="M391 -20q-88 0 -156 47.5t-106.5 138.5t-38.5 219q0 198 72 377.5t189 278t257 98.5q86 0 152.5 -37.5t124.5 -126.5h8l57 143h232l-342 -1610h-301q47 218 73 337.5t84 304.5h-8q-72 -94 -143 -132t-154 -38zM535 223q64 0 127.5 70t100 181t36.5 245q0 80 -37.5 128 t-102.5 48q-68 0 -129.5 -72t-98 -190t-36.5 -234q0 -88 36.5 -132t103.5 -44z" />
+<glyph unicode="r" horiz-adv-x="862" d="M842 1139q59 0 96 -11l-66 -290q-45 16 -100 16q-116 0 -203.5 -91.5t-124.5 -262.5l-106 -500h-301l237 1118h230l-21 -207h6q147 228 353 228z" />
+<glyph unicode="s" horiz-adv-x="969" d="M829 369q0 -188 -124.5 -288.5t-346.5 -100.5q-107 0 -186.5 15t-148.5 50v248q157 -90 319 -90q80 0 131 32.5t51 88.5q0 43 -37 77t-131 86q-121 68 -169 135.5t-48 159.5q0 170 110.5 263.5t315.5 93.5q201 0 363 -95l-99 -215q-140 84 -258 84q-57 0 -92 -25.5 t-35 -68.5q0 -39 32 -68.5t120 -74.5q123 -63 178 -137t55 -170z" />
+<glyph unicode="t" horiz-adv-x="840" d="M514 223q65 0 162 35v-225q-111 -53 -266 -53q-150 0 -220.5 63t-70.5 195q0 50 12 112l115 539h-152l29 147l196 84l132 236h194l-49 -238h283l-50 -229h-282l-115 -539q-6 -30 -6 -53q0 -74 88 -74z" />
+<glyph unicode="u" horiz-adv-x="1237" d="M262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213z" />
+<glyph unicode="v" horiz-adv-x="1049" d="M455 301q55 153 92 223l297 594h323l-604 -1118h-323l-138 1118h295l45 -586q7 -133 7 -231h6z" />
+<glyph unicode="w" horiz-adv-x="1614" d="M856 860q-62 -178 -123 -319l-233 -541h-324l-51 1118h281l4 -495l-4 -167l-7 -171h4q6 20 14 41.5t51 136.5t46 119l231 536h328v-536q0 -142 -10 -297h6l28 80q73 208 95 258l219 495h307l-530 -1118h-330l-6 520q0 155 10 340h-6z" />
+<glyph unicode="x" horiz-adv-x="1087" d="M379 573l-225 545h321l115 -334l244 334h354l-467 -561l244 -557h-326l-125 342l-264 -342h-350z" />
+<glyph unicode="y" horiz-adv-x="1063" d="M102 1118h295l56 -518q14 -122 14 -293h6q20 51 44 119.5t65 153.5l260 538h327l-680 -1278q-177 -332 -483 -332q-90 0 -147 19v240q68 -13 116 -13q84 0 147.5 48t117.5 149l26 49z" />
+<glyph unicode="z" horiz-adv-x="932" d="M748 0h-795l35 180l575 705h-397l51 233h750l-43 -200l-566 -685h439z" />
+<glyph unicode="{" horiz-adv-x="727" d="M201 319q0 140 -209 140l45 229q122 0 192.5 41.5t92.5 138.5l61 285q38 170 131 239.5t270 69.5h84l-49 -225q-90 -2 -130.5 -34.5t-55.5 -106.5l-66 -297q-45 -207 -276 -236v-8q85 -26 126.5 -82.5t41.5 -134.5q0 -44 -15 -113l-36 -178q-7 -28 -7 -51q0 -54 33.5 -74 t91.5 -20v-226h-53q-167 0 -253.5 63.5t-86.5 184.5q0 57 14 125l39 184q15 69 15 86z" />
+<glyph unicode="|" d="M455 1550h219v-2015h-219v2015z" />
+<glyph unicode="}" horiz-adv-x="727" d="M256 1462q340 0 340 -248q0 -56 -14 -124l-39 -185q-15 -69 -15 -86q0 -139 209 -139l-45 -229q-122 0 -192.5 -42t-91.5 -139l-62 -284q-37 -170 -130.5 -240t-270.5 -70h-45v226q93 3 137 35.5t59 105.5l66 297q25 111 95 166t181 69v9q-168 51 -168 217q0 43 15 112 l37 179q6 30 6 51q0 54 -36.5 74t-109.5 20l41 225h33z" />
+<glyph unicode="~" d="M342 672q-54 0 -116.5 -33t-116.5 -88v231q101 109 256 109q64 0 117 -14t139 -50q64 -27 111 -41t95 -14q51 0 112 30.5t122 90.5v-231q-103 -109 -256 -109q-59 0 -109 11.5t-147 51.5q-89 38 -127 47t-80 9z" />
+<glyph unicode="&#xa1;" horiz-adv-x="586" d="M182 606h242l-158 -977h-340zM549 977q0 -92 -55.5 -145.5t-149.5 -53.5q-68 0 -108.5 38t-40.5 108q0 85 54 139.5t144 54.5q73 0 114.5 -37t41.5 -104z" />
+<glyph unicode="&#xa2;" d="M575 -20h-188l49 210q-134 36 -203 136t-69 258q0 193 62.5 355t178 262.5t267.5 123.5l33 158h188l-35 -158q118 -14 225 -65l-92 -230q-53 23 -105 40t-118 17q-133 0 -216 -143t-83 -336q0 -96 45 -144t127 -48q75 0 140 23.5t134 58.5v-246q-136 -71 -299 -80z" />
+<glyph unicode="&#xa3;" d="M872 1485q195 0 369 -86l-113 -232q-141 68 -237 68q-75 0 -123 -39.5t-68 -132.5l-47 -229h299l-45 -220h-299l-18 -84q-42 -195 -209 -270h655l-55 -260h-993l49 246q196 48 244 264l22 104h-192l45 220h192l49 247q41 197 162 300.5t313 103.5z" />
+<glyph unicode="&#xa4;" d="M190 723q0 102 54 197l-129 127l147 147l127 -127q91 53 197 53q105 0 196 -55l127 129l150 -143l-129 -129q53 -89 53 -199q0 -107 -53 -199l125 -125l-146 -145l-127 125q-95 -51 -196 -51q-115 0 -199 51l-125 -123l-145 145l127 125q-54 93 -54 197zM397 723 q0 -77 54.5 -132.5t134.5 -55.5q81 0 136.5 55t55.5 133q0 80 -56.5 135t-135.5 55q-78 0 -133.5 -56t-55.5 -134z" />
+<glyph unicode="&#xa5;" d="M608 872l371 590h311l-506 -747h203l-39 -178h-252l-28 -138h252l-37 -178h-252l-47 -221h-291l47 221h-252l37 178h252l29 138h-252l39 178h196l-192 747h297z" />
+<glyph unicode="&#xa6;" d="M455 1550h219v-815h-219v815zM455 350h219v-815h-219v815z" />
+<glyph unicode="&#xa7;" horiz-adv-x="995" d="M150 760q0 89 47.5 163t154.5 142q-42 34 -70 84.5t-28 107.5q0 149 117 234.5t313 85.5q172 0 344 -88l-82 -193q-147 84 -282 84q-144 0 -144 -106q0 -43 40.5 -76t127.5 -72q242 -106 242 -303q0 -188 -193 -303q38 -35 64 -85.5t26 -108.5q0 -161 -126 -253.5 t-345 -92.5q-204 0 -336 75v224q172 -105 345 -105q99 0 144.5 35t45.5 92q0 39 -33 72.5t-127 79.5q-117 57 -181 131t-64 176zM506 967q-51 -25 -82 -70.5t-31 -99.5t43.5 -96.5t143.5 -88.5q49 31 75.5 78.5t26.5 95.5q0 109 -176 181z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1135" d="M397 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM799 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M932 1010q-111 0 -163 -73t-52 -214q0 -134 55.5 -203t159.5 -69q43 0 108.5 15.5t124.5 43.5v-191q-131 -57 -262 -57q-196 0 -307 122.5t-111 336.5q0 225 117.5 351t325.5 126q142 0 284 -72l-75 -174q-114 58 -205 58zM125 731q0 200 100 375t275 276t377 101 q199 0 373.5 -99t276 -275.5t101.5 -377.5q0 -199 -98.5 -373t-272.5 -276t-380 -102q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM266 731q0 -164 81.5 -305t224 -223t305.5 -82q167 0 308 83t221.5 223.5t80.5 303.5t-80.5 303.5t-222 223.5t-307.5 83 q-164 0 -306.5 -82.5t-223.5 -223.5t-81 -304z" />
+<glyph unicode="&#xaa;" horiz-adv-x="772" d="M369 752q-103 0 -160 70t-57 198q0 117 46 228t123 171t177 60q120 0 180 -103h6l39 90h154l-158 -702h-154l8 92h-2q-80 -104 -202 -104zM442 903q45 0 84 41.5t65.5 120t26.5 154.5q0 106 -88 106q-73 0 -123.5 -96t-50.5 -215q0 -111 86 -111z" />
+<glyph unicode="&#xab;" horiz-adv-x="1151" d="M72 569l401 463l191 -155l-279 -334l135 -350l-246 -103l-202 461v18zM559 569l402 463l190 -155l-279 -334l136 -350l-246 -103l-203 461v18z" />
+<glyph unicode="&#xac;" d="M1061 248h-219v364h-733v219h952v-583z" />
+<glyph unicode="&#xad;" horiz-adv-x="659" d="M41 424zM41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M1237 899q0 -86 -44 -149.5t-130 -96.5l197 -360h-254l-138 297h-67v-297h-230v874h308q173 0 265.5 -67.5t92.5 -200.5zM801 758h51q72 0 113 31t41 92q0 59 -35.5 88.5t-116.5 29.5h-53v-241zM125 731q0 200 100 375t275 276t377 101q199 0 373.5 -99t276 -275.5 t101.5 -377.5q0 -199 -98.5 -373t-272.5 -276t-380 -102q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM266 731q0 -164 81.5 -305t224 -223t305.5 -82q167 0 308 83t221.5 223.5t80.5 303.5t-80.5 303.5t-222 223.5t-307.5 83q-164 0 -306.5 -82.5t-223.5 -223.5t-81 -304z " />
+<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M1030 1556h-1036l45 201h1036z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M164 1137q0 93 46.5 173.5t127.5 126.5t172 46q93 0 173.5 -47t126.5 -127t46 -172q0 -93 -46 -173t-126 -125.5t-174 -45.5q-93 0 -173 45t-126.5 125t-46.5 174zM354 1137q0 -63 45.5 -108.5t110.5 -45.5q66 0 111 46t45 108q0 63 -45.5 110t-110.5 47t-110.5 -47.5 t-45.5 -109.5z" />
+<glyph unicode="&#xb1;" d="M475 674h-366v219h366v369h219v-369h367v-219h-367v-365h-219v365zM109 0v219h952v-219h-952z" />
+<glyph unicode="&#xb2;" horiz-adv-x="776" d="M707 586h-648l35 166l273 219q111 91 141 122t44.5 59t14.5 56q0 42 -25.5 62t-60.5 20q-86 0 -188 -82l-100 158q74 57 156 87t192 30q123 0 196.5 -63t73.5 -160q0 -70 -22 -123t-70 -103.5t-189 -152.5l-129 -95h347z" />
+<glyph unicode="&#xb3;" horiz-adv-x="776" d="M813 1270q0 -87 -51 -145.5t-166 -88.5v-4q154 -33 154 -176q0 -131 -107 -209t-285 -78q-75 0 -145.5 15.5t-120.5 40.5v192q125 -72 254 -72q76 0 125 30.5t49 88.5q0 37 -26 62.5t-88 25.5h-127l34 160h90q84 0 132.5 28t48.5 85q0 40 -26 60t-71 20q-86 0 -188 -66 l-82 150q142 92 313 92q130 0 206.5 -55.5t76.5 -155.5z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1135" d="M483 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1249" d="M424 348q0 -60 31.5 -92.5t79.5 -32.5q90 0 162.5 106.5t117.5 319.5l98 469h301l-237 -1118h-229l18 176h-6q-117 -196 -266 -196q-51 0 -89.5 19.5t-58.5 47.5h-6q-8 -66 -21.5 -139t-82.5 -400h-304l342 1610h301l-135 -645q-16 -70 -16 -125z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1202 -260h-162v1616h-166v-1616h-161v819q-62 -18 -146 -18q-216 0 -318 125t-102 376q0 256 107.5 385t343.5 129h604v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="584" d="M131 553zM131 695q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M262 -250q0 -116 -83 -179t-234 -63q-86 0 -152 23v168q63 -23 125 -23q102 0 102 82q0 34 -31 56.5t-110 31.5l96 154h185l-39 -72q141 -49 141 -178z" />
+<glyph unicode="&#xb9;" horiz-adv-x="776" d="M528 1462h207l-186 -876h-246l84 397q24 109 55 207q-16 -15 -80 -60l-131 -81l-102 165z" />
+<glyph unicode="&#xba;" horiz-adv-x="754" d="M809 1194q0 -128 -48.5 -232.5t-132.5 -157t-196 -52.5q-134 0 -202 75t-68 211q0 197 104 319t277 122q129 0 197.5 -73.5t68.5 -211.5zM522 1315q-64 0 -107.5 -89.5t-43.5 -199.5q0 -111 80 -111q63 0 105 85.5t42 207.5q0 107 -76 107z" />
+<glyph unicode="&#xbb;" horiz-adv-x="1151" d="M1079 535l-401 -463l-191 155l279 334l-135 350l246 103l202 -461v-18zM592 535l-402 -463l-190 155l279 334l-136 350l246 103l203 -461v-18z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1804" d="M97 0zM1500 1462l-1084 -1462h-239l1087 1462h236zM496 1462h207l-186 -876h-246l84 397q24 109 55 207q-16 -15 -80 -60l-131 -81l-102 165zM1573 152h-119l-32 -151h-238l33 151h-373l31 174l475 557h260l-121 -563h119zM1252 320l58 231l22 74q-13 -20 -43 -58 t-211 -247h174z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1804" d="M97 0zM1588 1h-648l35 166l273 219q111 91 141 122t44.5 59t14.5 56q0 42 -25.5 62t-60.5 20q-86 0 -188 -82l-100 158q74 57 156 87t192 30q123 0 196.5 -63t73.5 -160q0 -70 -22 -123t-70 -103.5t-189 -152.5l-129 -95h347zM496 1462h207l-186 -876h-246l84 397 q24 109 55 207q-16 -15 -80 -60l-131 -81l-102 165zM1500 1462l-1084 -1462h-239l1087 1462h236z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1804" d="M133 0zM1633 1462l-1084 -1462h-239l1087 1462h236zM1634 152h-119l-32 -151h-238l33 151h-373l31 174l475 557h260l-121 -563h119zM1313 320l58 231l22 74q-13 -20 -43 -58t-211 -247h174zM854 1270q0 -87 -51 -145.5t-166 -88.5v-4q154 -33 154 -176q0 -131 -107 -209 t-285 -78q-75 0 -145.5 15.5t-120.5 40.5v192q125 -72 254 -72q76 0 125 30.5t49 88.5q0 37 -26 62.5t-88 25.5h-127l34 160h90q84 0 132.5 28t48.5 85q0 40 -26 60t-71 20q-86 0 -188 -66l-82 150q142 92 313 92q130 0 206.5 -55.5t76.5 -155.5z" />
+<glyph unicode="&#xbf;" horiz-adv-x="940" d="M678 606l-14 -78q-19 -105 -76.5 -180t-169.5 -151q-122 -83 -156.5 -126t-34.5 -98q0 -118 133 -118q50 0 106.5 16t201.5 84l92 -221q-221 -125 -445 -125q-177 0 -280 87.5t-103 244.5q0 82 28.5 148.5t83.5 124t189 146.5q93 62 128 106.5t51 106.5l8 33h258z M772 977q0 -92 -55.5 -145.5t-149.5 -53.5q-68 0 -108.5 38t-40.5 108q0 86 54.5 140t143.5 54q73 0 114.5 -37t41.5 -104z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM965 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM735 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM1235 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z " />
+<glyph unicode="&#xc3;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM999 1579q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5 t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM516 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM918 1720q0 78 42 118t120 40 q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM1087 1567q0 -107 -70 -173.5t-184 -66.5q-110 0 -179 63.5t-69 174.5q0 109 68.5 173t179.5 64q110 0 182 -65t72 -170z M930 1565q0 45 -27.5 70.5t-69.5 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69.5 26t27.5 71z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1833" d="M1593 0h-817l74 348h-426l-219 -348h-328l922 1462h1104l-54 -254h-512l-67 -321h477l-55 -254h-478l-79 -377h512zM905 608l127 600h-80l-364 -600h317z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1253" d="M123 0zM905 1227q-132 0 -237.5 -81t-169.5 -238.5t-64 -338.5q0 -167 68.5 -248t218.5 -81q146 0 338 77v-260q-199 -77 -400 -77q-254 0 -395 149.5t-141 423.5q0 262 104 482.5t278 335t400 114.5q125 0 222 -22.5t208 -82.5l-118 -250q-106 59 -175 78t-137 19z M825 -250q0 -116 -83 -179t-234 -63q-86 0 -152 23v168q63 -23 125 -23q102 0 102 82q0 34 -31 56.5t-110 31.5l96 154h185l-39 -72q141 -49 141 -178z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1110" d="M53 0zM870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512zM906 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1110" d="M53 0zM870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512zM608 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xca;" horiz-adv-x="1110" d="M53 0zM870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512zM1177 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1110" d="M53 0zM870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512zM438 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM840 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5 t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xcc;" horiz-adv-x="659" d="M53 0zM53 0l312 1462h305l-312 -1462h-305zM667 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xcd;" horiz-adv-x="659" d="M53 0zM53 0l312 1462h305l-312 -1462h-305zM414 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xce;" horiz-adv-x="659" d="M53 0zM53 0l312 1462h305l-312 -1462h-305zM937 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xcf;" horiz-adv-x="659" d="M53 0zM53 0l312 1462h305l-312 -1462h-305zM222 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM624 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1386" d="M1323 909q0 -280 -98 -486.5t-283.5 -314.5t-437.5 -108h-451l125 596h-141l55 254h139l131 612h396q270 0 417.5 -143t147.5 -410zM518 256q148 0 258 76t172 223.5t62 337.5q0 154 -72.5 234.5t-208.5 80.5h-115l-75 -358h237l-55 -254h-238l-71 -340h106z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1546" d="M53 0zM1247 0h-342l-356 1106h-6l-4 -32q-32 -216 -66 -386l-145 -688h-275l309 1462h357l340 -1077h4q12 76 39 217t180 860h274zM1114 1579q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36 t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM1053 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM753 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM1308 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM1071 1579q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM585 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM987 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xd7;" d="M428 723l-299 301l152 154l301 -299l305 299l153 -150l-305 -305l301 -303l-149 -152l-305 301l-301 -299l-150 152z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1495" d="M1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-180 0 -304 71l-108 -137l-154 115l121 151q-98 138 -98 357q0 265 99 487.5t273 341.5t402 119q182 0 305 -76l105 131l151 -117l-117 -145q91 -134 91 -340zM870 1233q-126 0 -229 -91.5t-160 -252.5t-57 -352 q0 -32 8 -101l596 754q-69 43 -158 43zM1133 930l-5 80l-589 -740q59 -37 153 -37q124 0 226 89t158.5 247.5t56.5 360.5z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1415" d="M141 0zM1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306zM1002 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311 q36 -148 115 -303v-25z" />
+<glyph unicode="&#xda;" horiz-adv-x="1415" d="M141 0zM1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306zM757 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5 t-194 -158.5h-209v25z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1415" d="M141 0zM1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306zM1284 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217 v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1415" d="M141 0zM1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306zM565 1720q0 78 42.5 118t119.5 40q133 0 133 -108 q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM967 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1155" d="M186 0zM627 870l374 592h342l-618 -903l-119 -559h-303l119 559l-236 903h312zM606 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xde;" horiz-adv-x="1188" d="M1143 807q0 -243 -170.5 -378.5t-466.5 -135.5h-86l-62 -293h-305l309 1462h306l-50 -229h35q242 0 366 -106.5t124 -319.5zM475 547h55q139 0 222.5 66.5t83.5 185.5q0 180 -195 180h-74z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1350" d="M846 1567q208 0 331 -90t123 -240q0 -114 -49 -192t-178 -152q-73 -42 -96 -68.5t-23 -54.5q0 -23 22 -49.5t79 -69.5q107 -83 144.5 -150.5t37.5 -150.5q0 -170 -123.5 -270t-337.5 -100q-187 0 -297 61v240q128 -78 258 -78q101 0 148 33t47 86q0 40 -26.5 75 t-108.5 97q-94 72 -129 130t-35 126q0 84 45 145t162 127q66 37 104.5 76t38.5 96q0 62 -39.5 98.5t-124.5 36.5q-96 0 -156 -51.5t-85 -171.5l-254 -1219q-43 -198 -147 -288.5t-277 -90.5q-90 0 -160 25v242q61 -21 115 -21q133 0 170 178l254 1207q47 224 182 326 t385 102z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM869 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM598 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM1120 1240h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM884 1241q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM397 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM799 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM1023 1479q0 -107 -70 -173.5t-184 -66.5q-110 0 -179 63.5t-69 174.5q0 109 68.5 173t179.5 64q110 0 182 -65t72 -170zM866 1477q0 45 -27.5 70.5t-69.5 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69.5 26t27.5 71z " />
+<glyph unicode="&#xe6;" horiz-adv-x="1786" d="M1206 -20q-109 0 -179.5 27t-117.5 87l-16 -94h-188l14 145h-6q-71 -88 -146.5 -126.5t-167.5 -38.5q-146 0 -227.5 109t-81.5 296q0 200 68.5 375.5t185 277t258.5 101.5q96 0 160.5 -38.5t114.5 -125.5h6l57 143h188l-18 -90q44 49 120.5 80t168.5 31 q157 0 246.5 -83.5t89.5 -221.5q0 -187 -167 -288.5t-476 -101.5h-52l-2 -19v-19q0 -96 55.5 -147.5t159.5 -51.5q66 0 152 23t162 63v-227q-179 -86 -361 -86zM518 223q72 0 134 68t99 184.5t37 243.5q0 80 -33 128t-102 48q-68 0 -128 -69t-95 -185.5t-35 -241.5 q0 -84 32.5 -130t90.5 -46zM1341 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95z" />
+<glyph unicode="&#xe7;" horiz-adv-x="989" d="M90 0zM506 -20q-201 0 -308.5 107.5t-107.5 303.5q0 212 74.5 385.5t209.5 268t308 94.5q182 0 328 -72l-92 -229q-54 23 -106 40t-118 17q-85 0 -153.5 -64t-107 -175.5t-38.5 -239.5q0 -96 45.5 -144.5t126.5 -48.5q76 0 141 23.5t134 58.5v-246q-152 -79 -336 -79z M653 -250q0 -116 -83 -179t-234 -63q-86 0 -152 23v168q63 -23 125 -23q102 0 102 82q0 34 -31 56.5t-110 31.5l96 154h185l-39 -72q141 -49 141 -178z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1141" d="M90 0zM696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5 t147.5 -52.5q87 0 158 19t172 67v-227q-172 -86 -390 -86zM849 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1141" d="M90 0zM696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5 t147.5 -52.5q87 0 158 19t172 67v-227q-172 -86 -390 -86zM528 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xea;" horiz-adv-x="1141" d="M90 0zM696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5 t147.5 -52.5q87 0 158 19t172 67v-227q-172 -86 -390 -86zM1101 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1141" d="M90 0zM696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5 t147.5 -52.5q87 0 158 19t172 67v-227q-172 -86 -390 -86zM365 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM767 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xec;" horiz-adv-x="608" d="M37 0zM338 0h-301l237 1118h301zM579 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xed;" horiz-adv-x="608" d="M37 0zM338 0h-301l237 1118h301zM291 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xee;" horiz-adv-x="608" d="M36 0zM338 0h-301l237 1118h301zM845 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xef;" horiz-adv-x="608" d="M37 0zM338 0h-301l237 1118h301zM126 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM528 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1182" d="M618 1309q-34 34 -124 80l118 186q134 -61 232 -139l237 131l76 -152l-192 -106q81 -107 113 -235t32 -279q0 -249 -69.5 -432.5t-203.5 -283t-323 -99.5q-216 0 -329 110t-113 316q0 165 64.5 301t180.5 212t265 76q83 0 151.5 -31t114.5 -94h6q-20 213 -117 310 l-231 -131l-88 147zM528 205q66 0 122.5 55.5t89 148.5t32.5 193q0 77 -38.5 122.5t-108.5 45.5q-73 0 -130 -53t-88.5 -143t-31.5 -197q0 -81 39 -126.5t114 -45.5z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1237" d="M37 0zM977 0h-301l137 653q16 68 16 119q0 123 -108 123q-92 0 -167 -114t-118 -318l-98 -463h-301l237 1118h230l-21 -207h6q146 228 355 228q138 0 213.5 -83.5t75.5 -238.5q0 -73 -23 -180zM909 1241q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28 t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM845 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM571 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM1109 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM865 1241q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM386 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM788 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xf7;" d="M109 612v219h952v-219h-952zM444 373q0 76 37 113.5t103 37.5t102.5 -39t36.5 -112q0 -70 -37 -111t-102 -41t-102.5 39t-37.5 113zM444 1071q0 75 37 113.5t103 38.5q67 0 103 -40.5t36 -111.5q0 -70 -37 -110.5t-102 -40.5t-102.5 39t-37.5 112z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1198" d="M1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-123 0 -225 53l-109 -135l-141 108l119 148q-72 107 -72 256q0 213 71.5 379.5t206.5 258t316 91.5q131 0 227 -56l70 88l145 -110l-84 -105q66 -107 66 -260zM662 903q-81 0 -144.5 -62.5t-98 -169.5t-34.5 -233 v-12l365 453q-35 24 -88 24zM543 215q114 0 193 133t79 318v16l-358 -444q11 -8 35.5 -15.5t50.5 -7.5z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1237" d="M111 0zM262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213zM845 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311 q36 -148 115 -303v-25z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1237" d="M111 0zM262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213zM610 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209 v25z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1237" d="M111 0zM262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213zM1143 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25 q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1237" d="M111 0zM262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213zM411 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5 t-121 -43.5q-135 0 -135 110zM813 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xfd;" horiz-adv-x="1063" d="M0 0zM102 1118h295l56 -518q14 -122 14 -293h6q20 51 44 119.5t65 153.5l260 538h327l-680 -1278q-177 -332 -483 -332q-90 0 -147 19v240q68 -13 116 -13q84 0 147.5 48t117.5 149l26 49zM497 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1219" d="M813 1139q150 0 232.5 -106.5t82.5 -301.5q0 -199 -69 -381t-182 -276t-250 -94q-178 0 -271 163h-8q-12 -159 -43 -295l-72 -340h-301l435 2048h301l-66 -307q-29 -131 -80 -280h8q131 170 283 170zM682 895q-71 0 -130 -65t-95.5 -184.5t-36.5 -246.5q0 -80 33.5 -128 t105.5 -48q69 0 129 65t97.5 183.5t37.5 247.5q0 88 -37.5 132t-103.5 44z" />
+<glyph unicode="&#xff;" horiz-adv-x="1063" d="M0 0zM102 1118h295l56 -518q14 -122 14 -293h6q20 51 44 119.5t65 153.5l260 538h327l-680 -1278q-177 -332 -483 -332q-90 0 -147 19v240q68 -13 116 -13q84 0 147.5 48t117.5 149l26 49zM310 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5 q-135 0 -135 110zM712 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#x131;" horiz-adv-x="608" d="M338 0h-301l237 1118h301z" />
+<glyph unicode="&#x152;" horiz-adv-x="1845" d="M1606 0h-760q-93 -20 -180 -20q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q140 0 209 -23h809l-53 -254h-512l-68 -321h477l-55 -254h-477l-80 -377h512zM688 240q88 0 158 32l194 916q-62 39 -168 39q-121 0 -222 -91.5t-158.5 -251.5 t-57.5 -347q0 -147 66.5 -222t187.5 -75z" />
+<glyph unicode="&#x153;" horiz-adv-x="1806" d="M1198 -20q-116 0 -208 38.5t-138 106.5q-63 -68 -147 -106.5t-207 -38.5q-187 0 -297.5 117t-110.5 317q0 216 69 380.5t200 254.5t309 90q209 0 313 -160q154 160 399 160q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-476 -101.5h-51l-2 -21v-20q0 -91 51 -143.5 t147 -52.5q87 0 158 19t172 67v-227q-93 -46 -185.5 -66t-203.5 -20zM645 893q-71 0 -127 -60.5t-90.5 -176.5t-34.5 -242q0 -91 36.5 -140t109.5 -49q109 0 179 134.5t70 336.5q0 96 -37 146.5t-106 50.5zM1362 922q-88 0 -165.5 -78.5t-102.5 -196.5h45q155 0 241 48.5 t86 131.5q0 95 -104 95z" />
+<glyph unicode="&#x178;" horiz-adv-x="1155" d="M186 0zM627 870l374 592h342l-618 -903l-119 -559h-303l119 559l-236 903h312zM432 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM834 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5 q-135 0 -135 110z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1135" d="M1120 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M1034 1479q0 -107 -70 -173.5t-184 -66.5q-110 0 -179 63.5t-69 174.5q0 109 68.5 173t179.5 64q110 0 182 -65t72 -170zM877 1477q0 45 -27.5 70.5t-69.5 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69.5 26t27.5 71z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1135" d="M866 1241q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="659" d="M41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="&#x2011;" horiz-adv-x="659" d="M41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="&#x2012;" horiz-adv-x="659" d="M41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="&#x2013;" horiz-adv-x="983" d="M41 436l49 230h852l-49 -230h-852z" />
+<glyph unicode="&#x2014;" horiz-adv-x="1966" d="M41 436l49 230h1835l-49 -230h-1835z" />
+<glyph unicode="&#x2018;" horiz-adv-x="440" d="M123 961l-8 22q103 227 262 479h225q-91 -213 -194 -501h-285z" />
+<glyph unicode="&#x2019;" horiz-adv-x="440" d="M586 1462l8 -22q-103 -227 -262 -479h-226q89 206 195 501h285z" />
+<glyph unicode="&#x201a;" horiz-adv-x="569" d="M377 238l8 -23q-103 -227 -262 -479h-225q88 207 194 502h285z" />
+<glyph unicode="&#x201c;" horiz-adv-x="887" d="M569 961l-8 22q103 227 262 479h226q-97 -227 -195 -501h-285zM123 961l-8 22q103 227 262 479h225q-91 -213 -194 -501h-285z" />
+<glyph unicode="&#x201d;" horiz-adv-x="887" d="M586 1462l8 -22q-103 -227 -262 -479h-226q89 206 195 501h285zM1032 1462l8 -22q-103 -227 -262 -479h-225q23 53 46.5 111t148.5 390h284z" />
+<glyph unicode="&#x201e;" horiz-adv-x="1018" d="M377 238l8 -23q-103 -227 -262 -479h-225q88 207 194 502h285zM825 238l9 -23q-100 -221 -263 -479h-225q24 57 49 118.5t146 383.5h284z" />
+<glyph unicode="&#x2022;" horiz-adv-x="739" d="M104 686q0 106 42.5 194t120 136.5t182.5 48.5q120 0 182.5 -67t62.5 -191q0 -177 -91.5 -277t-248.5 -100q-117 0 -183.5 67t-66.5 189z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1706" d="M25 0zM25 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5zM586 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5zM1147 115q0 90 53.5 144t150.5 54 q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="664" d="M72 569l401 463l191 -155l-279 -334l135 -350l-246 -103l-202 461v18z" />
+<glyph unicode="&#x203a;" horiz-adv-x="664" d="M592 535l-402 -463l-190 155l279 334l-136 350l246 103l203 -461v-18z" />
+<glyph unicode="&#x2044;" horiz-adv-x="256" d="M791 1462l-1084 -1462h-239l1087 1462h236z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="776" d="M776 737h-119l-32 -151h-238l33 151h-373l31 174l475 557h260l-121 -563h119zM455 905l58 231l22 74q-13 -20 -43 -58t-211 -247h174z" />
+<glyph unicode="&#x20ac;" d="M899 1237q-97 0 -176 -74.5t-135 -212.5h348l-39 -176h-360q-11 -34 -25 -115h299l-37 -178h-280q0 -120 44.5 -181.5t147.5 -61.5q133 0 283 63v-258q-126 -63 -330 -63q-446 0 -446 501h-152l37 178h127q9 67 22 115h-125l39 176h135q87 252 250.5 393.5t374.5 141.5 q100 0 179 -23t165 -80l-125 -223q-87 49 -131 63.5t-90 14.5z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1534" d="M471 741h-168v572h-197v149h564v-149h-199v-572zM1047 741l-166 529h-7l5 -111v-418h-164v721h248l159 -510l170 510h240v-721h-168v408l4 121h-6l-174 -529h-141z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
+<glyph horiz-adv-x="1217" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.woff b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.woff
new file mode 100644
index 0000000..ed760c0
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.woff
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.eot b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.eot
new file mode 100644
index 0000000..0c8a0ae
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.eot
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.svg b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.svg
new file mode 100644
index 0000000..e1075dc
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.svg
@@ -0,0 +1,1830 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sansitalic" horiz-adv-x="1128" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1165" d="M0 0zM-104 -492q-69 0 -125 21v141q64 -22 112 -22q76 0 117 62t66 177l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5t241.5 82.5q40 0 98 -11.5t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h238l-25 -127h-237l-232 -1098 q-39 -189 -120 -276t-213 -87zM870 0h-168l234 1096h168zM983 1376q0 56 32 91.5t83 35.5q88 0 88 -90q0 -55 -33.5 -93t-77.5 -38q-40 0 -66 24.5t-26 69.5z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1165" d="M0 0zM-104 -492q-69 0 -125 21v141q64 -22 112 -22q76 0 117 62t66 177l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5t241.5 82.5q40 0 98 -11.5t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h238l-25 -127h-237l-232 -1098 q-39 -189 -120 -276t-213 -87zM868 0h-168l332 1556h168z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="1815" d="M545 -492q-71 0 -125 21v141q61 -22 115 -22q68 0 111 57.5t69 181.5l227 1082h-481l-232 -1098q-39 -189 -120 -276t-213 -87q-69 0 -125 21v141q64 -22 112 -22q70 0 114 58t69 181l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5t241.5 82.5q40 0 98 -11.5 t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h482l24 108q45 197 126 280t243 83q41 0 97.5 -11t92.5 -26l-45 -129q-76 29 -137 29q-89 0 -135 -51t-74 -175l-24 -108h239l-26 -127h-238l-231 -1098q-43 -195 -123.5 -279t-210.5 -84z M1522 0h-168l233 1096h168zM1634 1376q0 54 32 90.5t83 36.5q88 0 88 -90q0 -55 -33.5 -93t-77.5 -38q-38 0 -65 24.5t-27 69.5z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="1815" d="M1520 0h-168l331 1556h168zM545 -492q-71 0 -125 21v141q61 -22 115 -22q68 0 111 57.5t69 181.5l227 1082h-481l-232 -1098q-39 -189 -120 -276t-213 -87q-69 0 -125 21v141q64 -22 112 -22q70 0 114 58t69 181l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5 t241.5 82.5q40 0 98 -11.5t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h482l24 108q45 197 126 280t243 83q41 0 97.5 -11t92.5 -26l-45 -129q-76 29 -137 29q-89 0 -135 -51t-74 -175l-24 -108h239l-26 -127h-238l-231 -1098 q-43 -195 -123.5 -279t-210.5 -84z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="530" d="M555 1462l-274 -1059h-109q49 307 176 1059h207zM43 78q0 76 39.5 120t107.5 44q45 0 73 -27.5t28 -81.5q0 -68 -39 -115t-105 -47q-49 0 -76.5 28t-27.5 79z" />
+<glyph unicode="&#x22;" horiz-adv-x="791" d="M485 1462l-153 -528h-107l72 528h188zM834 1462l-154 -528h-107l72 528h189z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M1036 899l-98 -340h285l-13 -129h-309l-125 -430h-139l129 430h-303l-127 -430h-133l121 430h-261l13 129h284l101 340h-277l13 127h301l123 436h139l-125 -436h305l127 436h133l-125 -436h264l-12 -127h-291zM500 559h303l96 340h-303z" />
+<glyph unicode="$" d="M942 492q0 -162 -112.5 -263t-309.5 -123l-49 -225h-133l49 223q-195 14 -315 72v154q82 -41 175.5 -63.5t166.5 -22.5l98 452q-139 49 -201.5 123.5t-62.5 188.5q0 159 108 255t299 113l39 176h133l-39 -178q159 -12 283 -76l-63 -135q-121 63 -248 72l-94 -440 q149 -55 212.5 -125t63.5 -178zM549 250q107 13 170 75t63 154q0 54 -33 96t-114 74zM627 1235q-108 -11 -167 -69t-59 -156q0 -53 34.5 -97.5t107.5 -70.5z" />
+<glyph unicode="%" horiz-adv-x="1624" d="M1468 1462l-1085 -1462h-152l1086 1462h151zM1284 772q-67 0 -119.5 -64.5t-84 -188.5t-31.5 -240q0 -173 106 -173q65 0 117 65t86.5 198.5t34.5 236.5q0 166 -109 166zM1532 621q0 -107 -31.5 -236t-82 -217.5t-121 -138t-156.5 -49.5q-110 0 -171 74.5t-61 219.5 q0 166 50.5 318.5t136.5 228.5t200 76q116 0 176 -71.5t60 -204.5zM543 1358q-66 0 -119 -63t-85 -187.5t-32 -243.5q0 -172 107 -172q52 0 94 39.5t73.5 114t50.5 175t19 171.5q0 166 -108 166zM791 1206q0 -108 -32 -237.5t-82.5 -217.5t-120.5 -137t-157 -49 q-109 0 -170 75t-61 220q0 166 50.5 318.5t136.5 228.5t200 76q116 0 176 -72t60 -205z" />
+<glyph unicode="&#x26;" horiz-adv-x="1372" d="M737 1348q-105 0 -163 -60t-58 -170q0 -120 82 -235q139 71 191 110t83 85t31 104q0 77 -42.5 121.5t-123.5 44.5zM471 119q87 0 168 33t195 124l-306 433q-128 -67 -184 -116t-85.5 -107.5t-29.5 -131.5q0 -106 66.5 -170.5t175.5 -64.5zM66 342q0 148 90 257.5 t303 211.5q-103 165 -103 309q0 164 106 264.5t281 100.5q149 0 236.5 -79t87.5 -212q0 -78 -32.5 -137t-87.5 -108t-127.5 -90t-153.5 -83l278 -389q127 110 199 295h168q-101 -236 -283 -412l203 -270h-201l-117 166q-120 -100 -230 -143t-247 -43q-168 0 -269 96 t-101 266z" />
+<glyph unicode="'" horiz-adv-x="444" d="M485 1462l-153 -528h-107l72 528h188z" />
+<glyph unicode="(" horiz-adv-x="584" d="M82 272q0 339 120 627t384 563h157q-246 -270 -371.5 -570t-125.5 -618q0 -339 114 -598h-131q-147 266 -147 596z" />
+<glyph unicode=")" horiz-adv-x="584" d="M500 864q0 -341 -121.5 -629.5t-382.5 -558.5h-156q496 551 496 1188q0 341 -113 598h131q146 -269 146 -598z" />
+<glyph unicode="*" horiz-adv-x="1130" d="M854 1528l-123 -383l422 18l-8 -157l-393 47l180 -383l-166 -52l-113 406l-258 -344l-116 121l309 284l-373 109l55 154l371 -185l41 400z" />
+<glyph unicode="+" d="M516 651h-389v142h389v391h141v-391h390v-142h-390v-387h-141v387z" />
+<glyph unicode="," horiz-adv-x="492" d="M291 238l8 -23q-113 -235 -270 -479h-129q126 286 204 502h187z" />
+<glyph unicode="-" horiz-adv-x="639" d="M55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="." horiz-adv-x="518" d="M43 74q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77z" />
+<glyph unicode="/" horiz-adv-x="717" d="M893 1462l-813 -1462h-174l813 1462h174z" />
+<glyph unicode="0" d="M1092 1014q0 -295 -78.5 -539t-214 -369.5t-314.5 -125.5q-176 0 -270 127.5t-94 369.5q0 270 82 514.5t216.5 369t307.5 124.5q365 0 365 -471zM717 1341q-113 0 -209 -115.5t-155.5 -323t-59.5 -423.5q0 -172 50 -264t161 -92q115 0 209 114t150.5 328t56.5 453 q0 323 -203 323z" />
+<glyph unicode="1" d="M588 0h-172l196 913q59 261 88 359q-50 -53 -139 -111l-178 -110l-80 127l449 284h149z" />
+<glyph unicode="2" d="M911 0h-899l31 147l465 420q102 93 176.5 163.5t123 133t72 124t23.5 136.5q0 99 -60 157t-163 58q-77 0 -150.5 -28.5t-162.5 -96.5l-82 115q191 154 413 154q176 0 278.5 -88.5t102.5 -243.5q0 -111 -39.5 -204t-131 -197t-294.5 -281l-352 -307v-8h678z" />
+<glyph unicode="3" d="M1073 1159q0 -156 -101 -264.5t-280 -140.5v-9q124 -23 195 -106.5t71 -208.5q0 -133 -62 -234.5t-181 -158.5t-283 -57q-210 0 -385 79v164q94 -49 199 -75.5t190 -26.5q162 0 252 79.5t90 217.5q0 131 -79 198.5t-220 67.5h-131l31 143h139q165 0 274 87t109 227 q0 92 -58 146t-157 54q-80 0 -157 -27t-175 -93l-80 118q195 144 424 144q179 0 277 -87t98 -237z" />
+<glyph unicode="4" d="M1067 334h-233l-72 -334h-164l74 334h-656l29 158l834 978h196l-207 -983h232zM705 487q46 220 78 373t116 445h-8q-17 -29 -66.5 -96.5t-72.5 -96.5l-533 -625h486z" />
+<glyph unicode="5" d="M598 893q182 0 289.5 -104.5t107.5 -282.5q0 -161 -73 -283t-204 -182.5t-308 -60.5q-193 0 -330 79v164q164 -102 334 -102q191 0 298 96t107 268q0 126 -73.5 199.5t-204.5 73.5q-48 0 -97 -6.5t-139 -30.5l-74 57l197 684h668l-33 -153h-522l-127 -439q87 23 184 23z " />
+<glyph unicode="6" d="M133 424q0 209 60.5 415t163.5 351.5t246 219t327 73.5q111 0 184 -23l-35 -145q-68 22 -170 22q-212 0 -356.5 -149t-212.5 -443h8q59 79 146.5 126t193.5 47q154 0 244 -98.5t90 -270.5q0 -161 -66.5 -294.5t-180.5 -204t-261 -70.5q-182 0 -281.5 115t-99.5 329z M532 121q94 0 167.5 54t114 149t40.5 208q0 248 -221 248q-66 0 -128 -28.5t-110 -76t-72 -104.5t-24 -155q0 -137 60.5 -216t172.5 -79z" />
+<glyph unicode="7" d="M174 0l768 1313h-719l31 149h891l-27 -139l-764 -1323h-180z" />
+<glyph unicode="8" d="M741 1485q174 0 271.5 -86.5t97.5 -235.5q0 -129 -78 -225t-266 -176q127 -78 180 -165t53 -202q0 -122 -60 -217.5t-172.5 -146.5t-264.5 -51q-190 0 -298 98.5t-108 267.5q0 148 95 256t296 184q-95 69 -135.5 144.5t-40.5 171.5q0 111 54.5 198.5t153.5 136t222 48.5z M608 700q-185 -60 -261.5 -143.5t-76.5 -202.5q0 -107 69 -170t181 -63q139 0 222 74t83 196q0 99 -52 174t-165 135zM729 1341q-114 0 -182 -65.5t-68 -175.5q0 -82 39 -144t127 -116q161 60 228 131.5t67 173.5q0 90 -57.5 143t-153.5 53z" />
+<glyph unicode="9" d="M1067 1034q0 -194 -56 -406.5t-147.5 -360t-221.5 -217.5t-302 -70q-136 0 -242 34v158q134 -47 246 -47q202 0 327 141t189 441h-10q-51 -75 -132.5 -118.5t-180.5 -43.5q-169 0 -261 98.5t-92 288.5q0 153 64.5 280.5t180 199t259.5 71.5q180 0 279.5 -114.5 t99.5 -334.5zM682 1341q-150 0 -241 -113t-91 -290q0 -124 54.5 -190t162.5 -66q76 0 140 28.5t108.5 81.5t65 114t20.5 151q0 131 -59 207.5t-160 76.5z" />
+<glyph unicode=":" horiz-adv-x="518" d="M43 74q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77zM203 956q0 77 40 122.5t111 45.5q97 0 97 -104q0 -73 -41.5 -119.5t-106.5 -46.5q-46 0 -73 26.5t-27 75.5z" />
+<glyph unicode=";" horiz-adv-x="518" d="M291 238l8 -23q-113 -235 -270 -479h-129q126 286 204 502h187zM203 956q0 77 40 122.5t111 45.5q97 0 97 -104q0 -73 -41.5 -119.5t-106.5 -46.5q-46 0 -73 26.5t-27 75.5z" />
+<glyph unicode="&#x3c;" d="M1040 242l-919 422v98l919 479v-149l-747 -371l747 -328v-151z" />
+<glyph unicode="=" d="M127 858v139h920v-139h-920zM127 444v142h920v-142h-920z" />
+<glyph unicode="&#x3e;" d="M121 393l745 328l-745 371v149l919 -479v-98l-919 -422v151z" />
+<glyph unicode="?" horiz-adv-x="874" d="M260 403q22 130 72.5 213.5t165.5 174.5q128 100 168 144t63 94t23 112q0 93 -51.5 143.5t-147.5 50.5q-81 0 -155 -25.5t-140 -56.5l-61 129q92 51 192 76t182 25q167 0 259 -84t92 -238q0 -123 -65.5 -226.5t-225.5 -223.5q-125 -91 -169 -147.5t-67 -160.5h-135z M158 74q0 77 40 122.5t111 45.5q44 0 70.5 -26t26.5 -79q0 -73 -41.5 -119.5t-106.5 -46.5q-46 0 -73 26t-27 77z" />
+<glyph unicode="@" horiz-adv-x="1735" d="M1679 852q0 -179 -55 -324t-155 -227t-222 -82q-197 0 -213 184h-8q-111 -184 -291 -184q-115 0 -180.5 75.5t-65.5 209.5q0 157 68 284t188.5 199t260.5 72q65 0 127.5 -12t150.5 -48q-64 -242 -98 -368t-31 -172q0 -117 102 -117q78 0 141.5 67t100.5 183.5t37 243.5 q0 239 -128 367t-370 128q-228 0 -406.5 -107t-277 -295.5t-98.5 -416.5q0 -270 143.5 -418.5t409.5 -148.5q197 0 420 86v-127q-219 -90 -443 -90q-314 0 -494.5 184.5t-180.5 505.5q0 261 126.5 485.5t343.5 347.5t486 123q191 0 329 -75.5t210.5 -213.5t72.5 -319z M985 938q-94 0 -174 -55t-126 -153t-46 -212q0 -93 33 -134.5t98 -41.5q187 0 272 315l70 258q-63 23 -127 23z" />
+<glyph unicode="A" horiz-adv-x="1137" d="M813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394z" />
+<glyph unicode="B" horiz-adv-x="1225" d="M770 1462q432 0 432 -336q0 -141 -87 -238t-245 -126v-10q115 -32 176.5 -110.5t61.5 -188.5q0 -212 -152 -332.5t-407 -120.5h-463l309 1462h375zM434 836h248q156 0 249 73t93 199q0 104 -66.5 155.5t-209.5 51.5h-211zM287 145h266q181 0 278 80.5t97 227.5 q0 116 -74.5 177.5t-214.5 61.5h-236z" />
+<glyph unicode="C" horiz-adv-x="1198" d="M942 1331q-174 0 -311.5 -97t-218 -284.5t-80.5 -408.5q0 -187 97.5 -298.5t268.5 -111.5q139 0 322 57v-149q-86 -31 -164 -45t-188 -14q-242 0 -380 149.5t-138 407.5q0 261 105.5 485.5t283.5 342.5t403 118q197 0 348 -80l-69 -141q-138 69 -279 69z" />
+<glyph unicode="D" horiz-adv-x="1364" d="M1300 877q0 -261 -105 -461t-300 -308t-457 -108h-352l309 1462h342q276 0 419.5 -149.5t143.5 -435.5zM449 147q202 0 355 91.5t234.5 258.5t81.5 382t-103 325.5t-302 110.5h-178l-250 -1168h162z" />
+<glyph unicode="E" horiz-adv-x="1047" d="M821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565z" />
+<glyph unicode="F" horiz-adv-x="967" d="M258 0h-172l309 1462h735l-30 -153h-568l-110 -533h528l-32 -153h-529z" />
+<glyph unicode="G" horiz-adv-x="1386" d="M821 766h459l-154 -711q-216 -75 -419 -75q-264 0 -410.5 144.5t-146.5 403.5q0 269 101.5 489.5t281.5 343t399 122.5q117 0 219.5 -20t206.5 -64l-66 -152q-77 34 -165.5 59t-194.5 25q-169 0 -307.5 -101.5t-215.5 -283.5t-77 -407q0 -190 102.5 -299t286.5 -109 q154 0 260 39l96 444h-289z" />
+<glyph unicode="H" horiz-adv-x="1389" d="M1085 0h-167l143 688h-660l-145 -688h-170l309 1462h170l-131 -622h660l133 622h168z" />
+<glyph unicode="I" horiz-adv-x="559" d="M86 0l311 1462h168l-311 -1462h-168z" />
+<glyph unicode="J" horiz-adv-x="547" d="M-166 -385q-105 0 -153 25l6 147q69 -20 145 -20q100 0 165.5 62.5t90.5 182.5l307 1450h170l-309 -1468q-79 -379 -422 -379z" />
+<glyph unicode="K" horiz-adv-x="1141" d="M1034 0h-186q-72 181 -146.5 359.5t-146.5 361.5l-174 -131l-125 -590h-170l309 1462h170l-151 -710l700 710h209l-639 -637z" />
+<glyph unicode="L" horiz-adv-x="971" d="M86 0l309 1462h170l-276 -1308h565l-33 -154h-735z" />
+<glyph unicode="M" horiz-adv-x="1714" d="M676 0l-166 1296h-8q-7 -72 -28.5 -197.5t-37.5 -199.5l-190 -899h-162l309 1462h244l149 -1204h9l659 1204h266l-303 -1462h-174q126 590 193 905.5t94 392.5h-6l-717 -1298h-131z" />
+<glyph unicode="N" horiz-adv-x="1438" d="M1139 0h-181l-460 1223h-6q-32 -221 -74 -418l-172 -805h-162l309 1462h180l459 -1220h6q30 224 72 405l174 815h164z" />
+<glyph unicode="O" horiz-adv-x="1475" d="M1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5t70 403 q0 199 -94 310.5t-261 111.5z" />
+<glyph unicode="P" horiz-adv-x="1159" d="M1159 1085q0 -248 -164 -379t-481 -131h-135l-123 -575h-170l309 1462h330q214 0 324 -94.5t110 -282.5zM410 721h133q216 0 328 91t112 267q0 125 -69.5 180.5t-213.5 55.5h-163z" />
+<glyph unicode="Q" horiz-adv-x="1475" d="M874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q158 0 279 100t187.5 280.5t66.5 399.5q0 199 -94 310.5t-261 111.5zM725 -18l-17 -2h-16q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424 q0 -333 -139 -576t-375 -321l274 -358h-219z" />
+<glyph unicode="R" horiz-adv-x="1165" d="M385 608l-129 -608h-170l309 1462h320q446 0 446 -366q0 -348 -368 -449l239 -647h-186l-209 608h-252zM532 1313q-102 -494 -116 -559h168q193 0 297 85t104 244q0 121 -67.5 175.5t-219.5 54.5h-166z" />
+<glyph unicode="S" horiz-adv-x="1028" d="M913 424q0 -211 -140.5 -327.5t-395.5 -116.5q-106 0 -186.5 14.5t-151.5 48.5v170q162 -84 340 -84q162 0 257 75.5t95 207.5q0 78 -52.5 137.5t-195.5 140.5q-151 85 -209.5 170t-58.5 201q0 187 132 304.5t347 117.5q99 0 184.5 -19t180.5 -65l-66 -150 q-66 38 -148 60t-151 22q-134 0 -215.5 -69.5t-81.5 -188.5q0 -54 17 -92.5t54 -72.5t142 -95q147 -88 198.5 -138t78 -110.5t26.5 -140.5z" />
+<glyph unicode="T" horiz-adv-x="1020" d="M487 0h-172l277 1311h-406l33 151h985l-30 -151h-408z" />
+<glyph unicode="U" horiz-adv-x="1384" d="M1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170z" />
+<glyph unicode="V" horiz-adv-x="1122" d="M479 197q61 144 162 338l479 927h191l-781 -1462h-180l-162 1462h170l97 -930q20 -196 20 -335h4z" />
+<glyph unicode="W" horiz-adv-x="1745" d="M1257 0h-170l-49 965q-8 136 -8 282h-6q-25 -72 -61 -154.5t-504 -1092.5h-174l-62 1462h170l31 -901l2 -88q0 -98 -10 -258h6q89 243 156 383l405 864h178l43 -860q9 -153 9 -304l-1 -83h9q75 224 131 354l387 893h182z" />
+<glyph unicode="X" horiz-adv-x="1063" d="M956 0h-180l-213 641l-481 -641h-186l596 776l-263 686h172l203 -563l443 563h186l-555 -694z" />
+<glyph unicode="Y" horiz-adv-x="1030" d="M537 715l489 747h193l-627 -921l-113 -541h-172l119 549l-238 913h170z" />
+<glyph unicode="Z" horiz-adv-x="1087" d="M885 0h-901l28 137l924 1170h-655l32 155h858l-26 -139l-924 -1169h697z" />
+<glyph unicode="[" horiz-adv-x="586" d="M371 -324h-387l381 1786h387l-31 -141h-227l-318 -1503h227z" />
+<glyph unicode="\" horiz-adv-x="717" d="M375 1462l217 -1462h-154l-217 1462h154z" />
+<glyph unicode="]" horiz-adv-x="586" d="M-119 -182h225l320 1503h-227l30 141h389l-380 -1786h-388z" />
+<glyph unicode="^" horiz-adv-x="1059" d="M53 553l598 920h109l266 -920h-145l-201 747l-467 -747h-160z" />
+<glyph unicode="_" horiz-adv-x="807" d="M623 -324h-811l30 140h811z" />
+<glyph unicode="`" horiz-adv-x="1135" d="M903 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="a" horiz-adv-x="1157" d="M639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233t-51 -310 q0 -114 47 -170.5t132 -56.5z" />
+<glyph unicode="b" horiz-adv-x="1182" d="M545 -20q-97 0 -170.5 51t-110.5 139h-10l-70 -170h-125l330 1556h168q-51 -242 -78.5 -370.5t-75.5 -300.5h9q93 118 183.5 173.5t186.5 55.5q141 0 220 -99t79 -272q0 -209 -68.5 -386.5t-191 -277t-276.5 -99.5zM731 975q-96 0 -195.5 -95t-158 -239t-58.5 -295 q0 -110 55.5 -168.5t160.5 -58.5q99 0 184.5 81t137.5 230.5t52 317.5q0 227 -178 227z" />
+<glyph unicode="c" horiz-adv-x="922" d="M506 -20q-194 0 -301 107t-107 302q0 200 74 369t204.5 263.5t293.5 94.5q137 0 268 -51l-47 -141q-120 51 -219 51q-112 0 -204.5 -76.5t-145 -213t-52.5 -296.5q0 -128 66.5 -199t183.5 -71q72 0 136 20t126 47v-143q-124 -63 -276 -63z" />
+<glyph unicode="d" horiz-adv-x="1182" d="M639 1114q194 0 281 -190h10q17 155 45 274l78 358h166l-330 -1556h-139l22 209h-8q-101 -125 -189 -177t-182 -52q-139 0 -217 98t-78 272q0 214 72 392t194.5 275t274.5 97zM449 119q94 0 194 93.5t158.5 239t58.5 296.5q0 111 -54 169t-157 58q-101 0 -187.5 -82.5 t-139 -232t-52.5 -314.5q0 -227 179 -227z" />
+<glyph unicode="e" horiz-adv-x="1010" d="M492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35z" />
+<glyph unicode="f" horiz-adv-x="641" d="M-104 -492q-69 0 -125 21v141q64 -22 112 -22q76 0 117 62t66 177l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5t241.5 82.5q40 0 98 -11.5t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h238l-25 -127h-237l-232 -1098 q-39 -189 -120 -276t-213 -87z" />
+<glyph unicode="g" horiz-adv-x="1026" d="M1100 1096l-25 -107l-211 -24q41 -62 41 -158q0 -191 -116.5 -304.5t-311.5 -113.5q-55 0 -84 8q-139 -53 -139 -131q0 -41 33 -54.5t96 -21.5l117 -14q181 -22 262.5 -88t81.5 -194q0 -184 -146 -285t-411 -101q-194 0 -304 73.5t-110 207.5q0 105 72 182t233 131 q-78 41 -78 121q0 69 51 118.5t142 92.5q-63 32 -103 94.5t-40 145.5q0 194 119.5 318t305.5 124q78 0 154 -20h371zM35 -195q0 -77 65 -122t193 -45q182 0 284.5 63.5t102.5 179.5q0 62 -54 98t-184 50l-159 16q-120 -25 -184 -88t-64 -152zM313 680q0 -85 45 -129.5 t125 -44.5q79 0 138 42t90.5 115.5t31.5 159.5q0 82 -44 125t-126 43q-78 0 -136.5 -40.5t-91 -113t-32.5 -157.5z" />
+<glyph unicode="h" horiz-adv-x="1182" d="M729 0l148 692q18 94 18 135q0 148 -147 148q-89 0 -173.5 -59t-149 -171.5t-97.5 -271.5l-101 -473h-168l330 1556h168q-18 -82 -34.5 -159t-34 -156.5t-38 -166.5t-47.5 -189h11q94 123 185.5 176t191.5 53q131 0 202.5 -72t71.5 -204q0 -62 -23 -166 q-39 -193 -145 -672h-168z" />
+<glyph unicode="i" horiz-adv-x="520" d="M227 0h-168l234 1096h168zM340 1376q0 56 32 91.5t83 35.5q88 0 88 -90q0 -55 -33.5 -93t-77.5 -38q-40 0 -66 24.5t-26 69.5z" />
+<glyph unicode="j" horiz-adv-x="520" d="M-135 -492q-69 0 -123 21v141q61 -22 119 -22q125 0 168 205l264 1243h166l-266 -1258q-36 -171 -114.5 -250.5t-213.5 -79.5zM340 1376q0 56 32 91.5t83 35.5q86 0 86 -90q0 -55 -33.5 -93t-77.5 -38q-38 0 -64 24.5t-26 69.5z" />
+<glyph unicode="k" horiz-adv-x="999" d="M330 559l526 537h201l-469 -467l295 -629h-187l-235 524l-152 -123l-82 -401h-170l330 1556h170l-129 -602t-102 -395h4z" />
+<glyph unicode="l" horiz-adv-x="520" d="M225 0h-168l332 1556h168z" />
+<glyph unicode="m" horiz-adv-x="1786" d="M696 0l148 692q18 94 18 135q0 70 -31 109t-106 39q-84 0 -163.5 -60t-140 -171.5t-93.5 -268.5l-101 -475h-168l234 1096h139l-22 -203h10q87 119 173.5 171t178.5 52q113 0 174 -65t72 -181h8q86 125 183 185.5t196 60.5q127 0 196.5 -68t69.5 -198q0 -68 -22 -178 l-144 -672h-170l148 692q20 104 20 146q0 62 -34.5 99.5t-108.5 37.5q-81 0 -160 -58t-138.5 -164.5t-90.5 -252.5l-107 -500h-168z" />
+<glyph unicode="n" horiz-adv-x="1182" d="M729 0l148 692q20 104 20 144q0 63 -35.5 101t-113.5 38q-89 0 -173.5 -60t-149 -171t-97.5 -269l-101 -475h-168l234 1096h139l-22 -203h10q96 122 185.5 172.5t185.5 50.5q127 0 200.5 -69.5t73.5 -194.5q0 -79 -23 -180l-143 -672h-170z" />
+<glyph unicode="o" horiz-adv-x="1149" d="M643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5z" />
+<glyph unicode="p" horiz-adv-x="1182" d="M545 -20q-97 0 -170 50t-113 140h-10l-4 -38q-3 -25 -10.5 -70t-114.5 -554h-166l336 1588h139l-26 -209h8q179 227 372 227q137 0 216 -97.5t79 -273.5q0 -212 -69 -389t-191 -275.5t-276 -98.5zM731 975q-96 0 -195.5 -95t-158 -239t-58.5 -295q0 -110 55.5 -168.5 t160.5 -58.5q99 0 184.5 81t137.5 230.5t52 317.5q0 227 -178 227z" />
+<glyph unicode="q" horiz-adv-x="1182" d="M641 1116q94 0 165.5 -50.5t108.5 -141.5h13l67 172h125l-336 -1588h-166l101 480q9 45 57 221h-8q-95 -121 -185 -175t-186 -54q-140 0 -219.5 97.5t-79.5 272.5q0 212 72.5 392t196 277t274.5 97zM449 119q92 0 190 92t158.5 237t60.5 300q0 105 -54.5 166t-152.5 61 q-101 0 -189 -84.5t-140 -233t-52 -311.5q0 -227 179 -227z" />
+<glyph unicode="r" horiz-adv-x="811" d="M752 1116q69 0 120 -14l-36 -150q-53 13 -105 13q-91 0 -170.5 -60t-139 -166.5t-87.5 -236.5l-107 -502h-168l234 1096h139l-22 -203h10q72 95 119 136.5t98.5 64t114.5 22.5z" />
+<glyph unicode="s" horiz-adv-x="877" d="M735 311q0 -156 -110.5 -243.5t-311.5 -87.5q-169 0 -305 69v158q70 -42 151 -65t150 -23q126 0 190 50t64 128q0 57 -35 96t-151 107q-130 73 -184 143t-54 166q0 138 101 222.5t266 84.5q171 0 330 -74l-54 -137l-56 25q-101 43 -220 43q-93 0 -146 -43.5t-53 -112.5 q0 -56 35.5 -96t146.5 -103q107 -60 153.5 -103t69.5 -92.5t23 -111.5z" />
+<glyph unicode="t" horiz-adv-x="664" d="M395 117q55 0 144 26v-129q-34 -14 -84 -24t-80 -10q-125 0 -191.5 59.5t-66.5 177.5q0 66 18 150l127 602h-172l14 73l185 78l125 228h98l-55 -252h274l-26 -127h-273l-129 -604q-18 -87 -18 -132q0 -56 29 -86t81 -30z" />
+<glyph unicode="u" horiz-adv-x="1182" d="M451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170z" />
+<glyph unicode="v" horiz-adv-x="946" d="M223 0l-125 1096h168l64 -613q24 -258 24 -362h6q127 275 179 371l325 604h178l-591 -1096h-228z" />
+<glyph unicode="w" horiz-adv-x="1468" d="M831 0l-32 602q-4 94 -4 172v156h-9l-50 -118l-83 -189l-291 -623h-202l-43 1096h164l18 -594v-88q0 -147 -8 -269h6q47 124 137 322l295 629h182l37 -594q6 -168 6 -262v-53l-2 -42h6q28 86 83 218.5t323 732.5h178l-506 -1096h-205z" />
+<glyph unicode="x" horiz-adv-x="979" d="M467 434l-346 -434h-195l475 565l-239 531h170l174 -412l330 412h194l-455 -539l252 -557h-168z" />
+<glyph unicode="y" horiz-adv-x="946" d="M98 1096h168l74 -545q10 -69 19.5 -203.5t9.5 -216.5h6q35 87 87 200t77 156l325 609h178l-696 -1282q-93 -172 -184 -239t-219 -67q-72 0 -140 21v135q63 -18 131 -18q82 0 140.5 50.5t113.5 149.5l76 136z" />
+<glyph unicode="z" horiz-adv-x="909" d="M690 0h-719l23 117l694 854h-479l27 125h657l-29 -140l-680 -831h531z" />
+<glyph unicode="{" horiz-adv-x="715" d="M442 -324q-141 0 -216.5 52.5t-75.5 171.5q0 52 20 141q33 146 51.5 227.5t14.5 102.5q0 143 -209 143l32 143q118 0 189.5 43.5t93.5 147.5l68 326q34 160 117.5 224t254.5 64h33l-31 -141q-105 0 -151 -36.5t-66 -123.5l-71 -321q-28 -123 -91 -184t-167 -78v-5 q151 -41 151 -213q0 -59 -18 -131l-47 -211q-15 -58 -15 -98q0 -53 36.5 -77.5t119.5 -24.5v-142h-23z" />
+<glyph unicode="|" d="M541 1556h139v-2052h-139v2052z" />
+<glyph unicode="}" horiz-adv-x="715" d="M285 1462q144 0 220.5 -52.5t76.5 -170.5q0 -48 -21 -141l-49 -219q-16 -68 -16 -111q0 -143 209 -143l-33 -144q-119 0 -190 -43t-93 -147l-67 -326q-36 -164 -119 -226.5t-264 -62.5h-13v142q115 0 167 36t71 123l72 322q25 117 88 179.5t170 80.5v6q-150 42 -150 211 q0 59 18 131l50 213q14 65 14 99q0 53 -40.5 77.5t-139.5 24.5l28 141h11z" />
+<glyph unicode="~" d="M348 713q-54 0 -118.5 -34.5t-114.5 -86.5v151q98 109 243 109q69 0 127 -14.5t144 -51.5q64 -27 112.5 -41t98.5 -14q55 0 119.5 33t115.5 88v-150q-100 -110 -244 -110q-72 0 -135 16.5t-135 48.5q-75 32 -120 44t-93 12z" />
+<glyph unicode="&#xa1;" horiz-adv-x="530" d="M260 684h109l-176 -1057h-207zM250 950q0 76 40.5 122t110.5 46q44 0 70.5 -26t26.5 -80q0 -71 -40.5 -117.5t-105.5 -46.5q-48 0 -75 25.5t-27 76.5z" />
+<glyph unicode="&#xa2;" d="M582 -20h-125l43 215q-132 34 -203.5 137.5t-71.5 257.5q0 185 63.5 344t178.5 258.5t260 120.5l35 170h123l-37 -168q119 -9 217 -49l-47 -142q-109 52 -219 52q-112 0 -204.5 -76.5t-145 -213t-52.5 -296.5q0 -125 66 -198t184 -73q72 0 136 20t126 48v-143 q-123 -62 -286 -66z" />
+<glyph unicode="&#xa3;" d="M842 1481q184 0 336 -86l-66 -133q-146 79 -278 79q-213 0 -263 -237l-69 -326h370l-26 -127h-371l-47 -219q-22 -98 -66 -166.5t-124 -111.5h725l-33 -154h-953l27 141q205 46 258 289l47 221h-200l26 127h201l76 350q75 353 430 353z" />
+<glyph unicode="&#xa4;" d="M229 723q0 117 68 215l-129 129l92 92l127 -129q103 70 217 70t215 -70l129 129l92 -90l-129 -129q70 -104 70 -217q0 -119 -70 -217l127 -127l-90 -90l-129 127q-98 -68 -215 -68q-119 0 -217 70l-127 -127l-90 90l127 127q-68 96 -68 215zM358 723q0 -103 71.5 -174.5 t174.5 -71.5q104 0 177 71.5t73 174.5q0 104 -73 177t-177 73q-102 0 -174 -72.5t-72 -177.5z" />
+<glyph unicode="&#xa5;" d="M582 715l491 747h187l-533 -770h231l-28 -133h-297l-33 -160h297l-29 -133h-295l-57 -266h-154l56 266h-291l29 133h290l33 160h-291l29 133h225l-202 770h163z" />
+<glyph unicode="&#xa6;" d="M541 1556h139v-776h-139v776zM541 281h139v-777h-139v777z" />
+<glyph unicode="&#xa7;" horiz-adv-x="995" d="M174 770q0 201 238 307q-119 70 -119 203q0 127 103.5 206t279.5 79q189 0 321 -68l-53 -123q-148 60 -266 60q-102 0 -162.5 -40.5t-60.5 -109.5q0 -49 38 -83.5t162 -90.5q100 -44 149 -83.5t75 -89.5t26 -114q0 -97 -61 -180t-172 -139q114 -71 114 -189 q0 -152 -114 -237.5t-318 -85.5q-176 0 -295 61v148q56 -34 136.5 -56t156.5 -22q133 0 204 44.5t71 129.5q0 48 -50.5 89t-152.5 87q-138 61 -194 130.5t-56 166.5zM514 1010q-82 -26 -135 -87.5t-53 -131.5t50.5 -117t198.5 -111q80 44 127.5 107t47.5 131 q0 60 -49.5 105.5t-186.5 103.5z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1135" d="M457 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM821 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M928 1059q-125 0 -191.5 -87t-66.5 -241q0 -169 65 -249.5t193 -80.5q82 0 211 43v-122q-66 -28 -113 -38t-104 -10q-192 0 -297 119.5t-105 339.5q0 208 110 330.5t300 122.5q130 0 248 -60l-60 -120q-106 53 -190 53zM139 731q0 200 100 375t275 276t377 101 q197 0 370 -97t277 -272t104 -383q0 -204 -100.5 -376.5t-273 -273.5t-377.5 -101q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM244 731q0 -173 87 -323.5t237.5 -237t322.5 -86.5q174 0 323 87t236.5 235.5t87.5 324.5q0 174 -87 323t-235.5 236.5t-324.5 87.5 q-174 0 -323 -87t-236.5 -235.5t-87.5 -324.5z" />
+<glyph unicode="&#xaa;" horiz-adv-x="686" d="M498 1479q114 0 153 -103h6l37 90h86l-139 -665h-92l14 117h-4q-40 -56 -90 -93t-123 -37q-77 0 -126.5 60t-49.5 166q0 127 41.5 234.5t116.5 169t170 61.5zM381 891q61 0 112.5 49t86 137.5t34.5 167.5q0 62 -28.5 96.5t-85.5 34.5q-92 0 -154.5 -103t-62.5 -243 q0 -139 98 -139z" />
+<glyph unicode="&#xab;" horiz-adv-x="958" d="M88 584l391 374l78 -81l-297 -328l172 -387l-113 -49l-231 442v29zM483 541l367 405l86 -69l-283 -365l158 -350l-113 -49l-215 397v31z" />
+<glyph unicode="&#xac;" d="M1047 793v-529h-140v387h-780v142h920z" />
+<glyph unicode="&#xad;" horiz-adv-x="639" d="M55 469zM55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M139 731q0 200 100 375t275 276t377 101q197 0 370 -97t277 -272t104 -383q0 -204 -100.5 -376.5t-273 -273.5t-377.5 -101q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM244 731q0 -173 87 -323.5t237.5 -237t322.5 -86.5q174 0 323 87t236.5 235.5t87.5 324.5 q0 174 -87 323t-235.5 236.5t-324.5 87.5q-174 0 -323 -87t-236.5 -235.5t-87.5 -324.5zM1194 915q0 -78 -47.5 -141t-132.5 -98l227 -385h-149l-207 352h-113v-352h-127v880h229q163 0 241.5 -63t78.5 -193zM772 762h92q195 0 195 149q0 76 -47.5 107t-149.5 31h-90v-287z " />
+<glyph unicode="&#xaf;" horiz-adv-x="782" d="M1012 1556h-785l33 132h787z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M215 1171q0 128 90.5 220t220.5 92q83 0 155.5 -41.5t114.5 -114t42 -156.5q0 -128 -90.5 -218.5t-221.5 -90.5t-221 90.5t-90 218.5zM328 1171q0 -80 58 -138t140 -58q83 0 140 58.5t57 137.5q0 82 -57.5 140.5t-139.5 58.5q-80 0 -139 -58.5t-59 -140.5z" />
+<glyph unicode="&#xb1;" d="M516 643h-389v141h389v392h141v-392h390v-141h-390v-387h-141v387zM127 0v141h920v-141h-920z" />
+<glyph unicode="&#xb2;" horiz-adv-x="717" d="M657 586h-561l23 106l264 228q115 100 158.5 149.5t63.5 93t20 90.5q0 53 -31 85t-90 32q-90 0 -195 -80l-59 90q125 101 274 101q109 0 171.5 -56.5t62.5 -150.5q0 -99 -52.5 -179.5t-197.5 -205.5l-221 -187h395z" />
+<glyph unicode="&#xb3;" horiz-adv-x="717" d="M549 1036q69 -17 108 -68t39 -120q0 -132 -91 -205.5t-253 -73.5q-125 0 -233 56v127q125 -72 239 -72q205 0 205 170q0 137 -178 137h-90l22 107h95q97 0 155 41t58 112q0 60 -34.5 90.5t-93.5 30.5q-102 0 -196 -68l-55 93q109 88 268 88q114 0 178 -56t64 -151 q0 -180 -207 -234v-4z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1135" d="M532 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1194" d="M295 266q0 -147 147 -147q89 0 172 59t148.5 171t99.5 269l105 478h163l-233 -1096h-139l24 205h-12q-93 -121 -183 -173t-188 -52q-112 0 -163 96h-9q-11 -78 -22.5 -148t-83.5 -420h-164l336 1588h168l-148 -695q-18 -92 -18 -135z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1206 -260h-114v1661h-213v-1661h-115v819q-62 -18 -146 -18q-216 0 -317.5 125t-101.5 376q0 260 109 387t341 127h557v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="518" d="M170 587zM170 690q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M211 -276q0 -98 -81 -157t-214 -59q-41 0 -86 9v100q38 -6 68 -6q174 0 174 110q0 46 -39 67.5t-99 29.5l101 182h106l-61 -121q131 -38 131 -155z" />
+<glyph unicode="&#xb9;" horiz-adv-x="717" d="M537 1462h118l-186 -876h-135l112 526q25 103 58 225q-25 -25 -50 -46.5t-145 -100.5l-51 90z" />
+<glyph unicode="&#xba;" horiz-adv-x="688" d="M745 1219q0 -191 -88.5 -311t-240.5 -120q-113 0 -180.5 71t-67.5 196q0 117 42 215.5t117.5 153.5t174.5 55q117 0 180 -67t63 -193zM500 1376q-102 0 -160.5 -87.5t-58.5 -229.5q0 -85 38 -127.5t107 -42.5q94 0 152.5 88.5t58.5 232.5q0 166 -137 166z" />
+<glyph unicode="&#xbb;" horiz-adv-x="958" d="M872 485l-393 -370l-78 82l297 323l-172 391l113 50l233 -447v-29zM477 528l-368 -401l-86 70l282 360l-158 354l113 50l217 -402v-31z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1518" d="M123 0zM1362 1462l-1086 -1462h-153l1085 1462h154zM483 1462h118l-186 -876h-135l112 526q25 103 58 225q-25 -25 -50 -46.5t-145 -100.5l-51 90zM1327 203h-129l-43 -202h-127l43 202h-365l23 101l481 579h133l-121 -563h127zM1095 320q69 322 90 395 q-20 -36 -110 -149l-205 -246h225z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1518" d="M66 0zM427 1462h118l-186 -876h-135l112 526q25 103 58 225q-25 -25 -50 -46.5t-145 -100.5l-51 90zM1305 1462l-1086 -1462h-153l1085 1462h154zM1343 1h-561l23 106l264 228q115 100 158.5 149.5t63.5 93t20 90.5q0 53 -31 85t-90 32q-90 0 -195 -80l-59 90 q125 101 274 101q109 0 171.5 -56.5t62.5 -150.5q0 -99 -52.5 -179.5t-197.5 -205.5l-221 -187h395z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1565" d="M87 0zM517 1036q69 -17 108 -68t39 -120q0 -132 -91 -205.5t-253 -73.5q-125 0 -233 56v127q125 -72 239 -72q205 0 205 170q0 137 -178 137h-90l22 107h95q97 0 155 41t58 112q0 60 -34.5 90.5t-93.5 30.5q-102 0 -196 -68l-55 93q109 88 268 88q114 0 178 -56t64 -151 q0 -180 -207 -234v-4zM1512 1462l-1086 -1462h-153l1085 1462h154zM1477 203h-129l-43 -202h-127l43 202h-365l23 101l481 579h133l-121 -563h127zM1245 320q69 322 90 395q-20 -36 -110 -149l-205 -246h225z" />
+<glyph unicode="&#xbf;" horiz-adv-x="874" d="M657 680q-22 -130 -72 -212t-165 -175l-95 -75q-159 -127 -159 -275q0 -93 51.5 -144t147.5 -51q80 0 154 25.5t140 56.5l62 -129q-90 -48 -189 -74t-186 -26q-168 0 -259 83.5t-91 237.5q0 124 66 228t225 223q132 98 172.5 152.5t62.5 154.5h135zM760 1010 q0 -77 -40.5 -122.5t-111.5 -45.5q-43 0 -69.5 26t-26.5 78q0 71 40 118.5t107 47.5q47 0 74 -25.5t27 -76.5z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM863 1579h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM679 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM1080 1579h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27 z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM934 1581q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18 t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM523 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM887 1716q0 46 28 79.5 t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM991 1585q0 -99 -60 -157t-159 -58q-101 0 -160 57.5t-59 155.5q0 94 62 152.5t157 58.5q101 0 160 -57t59 -152zM887 1583 q0 53 -32 84t-83 31q-49 0 -82 -31t-33 -84q0 -54 29.5 -84.5t85.5 -30.5q51 0 83 30.5t32 84.5z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1673" d="M1448 0h-737l98 465h-438l-293 -465h-197l938 1462h938l-33 -153h-565l-100 -469h528l-28 -150h-529l-115 -538h566zM840 621l147 688h-84l-434 -688h371z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1198" d="M150 0zM942 1331q-174 0 -311.5 -97t-218 -284.5t-80.5 -408.5q0 -187 97.5 -298.5t268.5 -111.5q139 0 322 57v-149q-86 -31 -164 -45t-188 -14q-242 0 -380 149.5t-138 407.5q0 261 105.5 485.5t283.5 342.5t403 118q197 0 348 -80l-69 -141q-138 69 -279 69zM758 -276 q0 -98 -81 -157t-214 -59q-41 0 -86 9v100q38 -6 68 -6q174 0 174 110q0 46 -39 67.5t-99 29.5l101 182h106l-61 -121q131 -38 131 -155z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1047" d="M86 0zM821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565zM898 1579h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1047" d="M86 0zM821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565zM657 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xca;" horiz-adv-x="1047" d="M86 0zM821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565zM1084 1579h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1047" d="M86 0zM821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565zM523 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM887 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34 q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xcc;" horiz-adv-x="559" d="M86 0zM86 0l311 1462h168l-311 -1462h-168zM593 1579h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xcd;" horiz-adv-x="559" d="M86 0zM86 0l311 1462h168l-311 -1462h-168zM412 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xce;" horiz-adv-x="559" d="M86 0zM86 0l311 1462h168l-311 -1462h-168zM808 1579h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xcf;" horiz-adv-x="559" d="M86 0zM86 0l311 1462h168l-311 -1462h-168zM265 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM629 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1364" d="M1300 877q0 -261 -105 -461t-300 -308t-457 -108h-352l135 649h-149l32 150h150l141 663h342q276 0 419.5 -149.5t143.5 -435.5zM449 147q202 0 355 91.5t234.5 258.5t81.5 382t-103 325.5t-302 110.5h-178l-111 -516h330l-33 -150h-330l-106 -502h162z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1438" d="M84 0zM1139 0h-181l-460 1223h-6q-32 -221 -74 -418l-172 -805h-162l309 1462h180l459 -1220h6q30 224 72 405l174 815h164zM1102 1581q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5 t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM1007 1579h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM821 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM1227 1579h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM1067 1581q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM664 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM1028 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xd7;" d="M487 723l-319 321l98 99l320 -320l323 320l99 -96l-324 -324l322 -322l-97 -96l-323 320l-320 -318l-96 96z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1475" d="M1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-200 0 -332 96l-129 -160l-112 92l137 170q-106 136 -106 371q0 264 96 482t263.5 336t377.5 118q99 0 178.5 -27t151.5 -84l131 166l114 -92l-149 -184q48 -62 73 -156t25 -201zM874 1333q-157 0 -281 -101 t-192.5 -281t-68.5 -398q0 -135 41 -227l737 919q-90 88 -236 88zM1229 911q0 118 -33 205l-733 -911q91 -74 233 -74q152 0 272.5 97.5t190.5 279.5t70 403z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1384" d="M164 0zM1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170zM991 1579h-104q-61 61 -128.5 154 t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xda;" horiz-adv-x="1384" d="M164 0zM1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170zM823 1606q56 60 125.5 151.5t106.5 149.5 h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1384" d="M164 0zM1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170zM1217 1579h-103q-57 48 -161 189 q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1384" d="M164 0zM1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170zM643 1716q0 46 28 79.5t74 33.5 q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM1007 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1030" d="M188 0zM537 715l489 747h193l-627 -921l-113 -541h-172l119 549l-238 913h170zM616 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xde;" horiz-adv-x="1159" d="M1106 829q0 -248 -164 -379t-483 -131h-133l-70 -319h-170l309 1462h170l-53 -256h160q213 0 323.5 -95t110.5 -282zM354 465h135q215 0 328 91t113 267q0 126 -70 181t-215 55h-166z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1182" d="M-133 -492q-69 0 -123 21v143q61 -22 111 -22q65 0 107 47.5t65 157.5l280 1314q43 200 156 299t307 99q162 0 252 -71t90 -196q0 -57 -21 -106.5t-61.5 -95t-178.5 -150.5q-110 -83 -110 -151q0 -56 95 -122q47 -34 101 -87.5t79.5 -110t25.5 -123.5 q0 -175 -108.5 -274.5t-292.5 -99.5q-175 0 -268 71v160q51 -41 118.5 -66.5t129.5 -25.5q113 0 181 58t68 159q0 40 -10.5 71t-33.5 59t-89 83q-88 69 -122.5 124t-34.5 115q0 53 18.5 96t49.5 78.5t124 104.5q80 56 111 87.5t48 65t17 70.5q0 64 -52.5 100.5t-141.5 36.5 q-119 0 -186 -62.5t-95 -190.5l-274 -1303q-40 -189 -121 -276t-211 -87z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM824 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM600 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM1005 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM856 1243q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM454 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM818 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM951 1456q0 -99 -60 -157t-159 -58q-101 0 -160 57.5t-59 155.5q0 94 62 152.5t157 58.5q101 0 160 -57t59 -152zM847 1454q0 53 -32 84t-83 31q-49 0 -82 -31t-33 -84q0 -54 29.5 -84.5t85.5 -30.5q51 0 83 30.5t32 84.5z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1669" d="M1165 -20q-108 0 -189.5 39.5t-121.5 119.5l-31 -139h-114l26 209h-8q-109 -132 -191.5 -180.5t-177.5 -48.5q-122 0 -191 99t-69 269q0 206 70.5 385t191.5 281t263 102q82 0 145 -48.5t102 -143.5h11l67 172h109l-31 -146q123 166 332 166q119 0 192.5 -68t73.5 -184 q0 -182 -166.5 -283.5t-472.5 -101.5h-39l-4 -80q0 -131 62.5 -204.5t193.5 -73.5q55 0 116.5 16.5t178.5 67.5v-150q-164 -75 -328 -75zM412 119q95 0 188.5 91.5t153 240.5t59.5 299q0 103 -45.5 164t-122.5 61q-99 0 -187 -86.5t-138 -231.5t-50 -309q0 -114 37 -171.5 t105 -57.5zM1325 973q-117 0 -211 -94.5t-141 -260.5h14q226 0 348.5 58.5t122.5 169.5q0 61 -35 94t-98 33z" />
+<glyph unicode="&#xe7;" horiz-adv-x="922" d="M98 0zM506 -20q-194 0 -301 107t-107 302q0 200 74 369t204.5 263.5t293.5 94.5q137 0 268 -51l-47 -141q-120 51 -219 51q-112 0 -204.5 -76.5t-145 -213t-52.5 -296.5q0 -128 66.5 -199t183.5 -71q72 0 136 20t126 47v-143q-124 -63 -276 -63zM592 -276q0 -98 -81 -157 t-214 -59q-41 0 -86 9v100q38 -6 68 -6q174 0 174 110q0 46 -39 67.5t-99 29.5l101 182h106l-61 -121q131 -38 131 -155z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1010" d="M98 0zM492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35zM777 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1010" d="M98 0zM492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35zM585 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xea;" horiz-adv-x="1010" d="M98 0zM492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35zM966 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1010" d="M98 0zM492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35zM413 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM777 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34 q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xec;" horiz-adv-x="520" d="M59 0zM227 0h-168l234 1096h168zM492 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xed;" horiz-adv-x="520" d="M59 0zM227 0h-168l234 1096h168zM324 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xee;" horiz-adv-x="520" d="M59 0zM227 0h-168l234 1096h168zM708 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xef;" horiz-adv-x="520" d="M59 0zM227 0h-168l234 1096h168zM161 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM525 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1165" d="M676 1343q-66 58 -146 113l95 117q118 -84 188 -154l260 146l64 -105l-240 -133q87 -115 126.5 -240.5t39.5 -269.5q0 -253 -71.5 -447t-203 -292t-311.5 -98q-182 0 -284.5 104t-102.5 289q0 160 67.5 298t187 217t267.5 79q105 0 181.5 -45.5t111.5 -124.5l6 2v17 q0 136 -36.5 240t-110.5 197l-270 -149l-56 108zM487 121q107 0 190 56t134 168t51 226q0 118 -65.5 187t-178.5 69q-109 0 -189 -57.5t-123.5 -161t-43.5 -231.5q0 -126 57.5 -191t167.5 -65z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1182" d="M59 0zM729 0l148 692q20 104 20 144q0 63 -35.5 101t-113.5 38q-89 0 -173.5 -60t-149 -171t-97.5 -269l-101 -475h-168l234 1096h139l-22 -203h10q96 122 185.5 172.5t185.5 50.5q127 0 200.5 -69.5t73.5 -194.5q0 -79 -23 -180l-143 -672h-170zM871 1243 q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM798 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM589 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM997 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM844 1243q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM433 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM797 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xf7;" d="M127 651v142h920v-142h-920zM475 373q0 121 111 121q53 0 82.5 -30.5t29.5 -90.5q0 -58 -30 -89.5t-82 -31.5t-81.5 31t-29.5 90zM475 1071q0 121 111 121q53 0 82.5 -30.5t29.5 -90.5q0 -58 -30 -89.5t-82 -31.5t-81.5 31t-29.5 90z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1149" d="M1047 705q0 -189 -69.5 -360t-191.5 -266t-276 -95q-146 0 -246 65l-98 -125l-105 82l109 135q-68 103 -68 265q0 194 73.5 361t195.5 255t272 88q146 0 252 -68l104 129l105 -79l-119 -129q62 -97 62 -258zM647 971q-108 0 -195.5 -73t-137.5 -202t-50 -280 q0 -92 17 -137l518 645q-54 47 -152 47zM885 688q0 84 -13 119l-514 -641q57 -45 158 -45q103 0 188.5 71.5t133 200.5t47.5 295z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1182" d="M113 0zM451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170zM800 1241h-104q-61 61 -128.5 154t-95.5 153v21 h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1182" d="M113 0zM451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170zM636 1268q56 60 125.5 151.5t106.5 149.5h190 v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1182" d="M113 0zM451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170zM1024 1241h-103q-57 48 -161 189 q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1182" d="M113 0zM451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170zM457 1378q0 46 28 79.5t74 33.5q78 0 78 -80 q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM821 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xfd;" horiz-adv-x="946" d="M0 0zM98 1096h168l74 -545q10 -69 19.5 -203.5t9.5 -216.5h6q35 87 87 200t77 156l325 609h178l-696 -1282q-93 -172 -184 -239t-219 -67q-72 0 -140 21v135q63 -18 131 -18q82 0 140.5 50.5t113.5 149.5l76 136zM500 1268q56 60 125.5 151.5t106.5 149.5h190v-21 q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1182" d="M545 -20q-98 0 -172 51t-113 139h-10q-8 -104 -25 -176l-102 -486h-166l432 2048h168q-95 -441 -115 -522t-39 -149h9q101 125 189 177t183 52q139 0 218 -97.5t79 -273.5q0 -212 -69 -389t-191 -275.5t-276 -98.5zM731 975q-96 0 -195.5 -95t-158 -239t-58.5 -295 q0 -110 55.5 -168.5t160.5 -58.5q99 0 184.5 81t137.5 230.5t52 317.5q0 227 -178 227z" />
+<glyph unicode="&#xff;" horiz-adv-x="946" d="M0 0zM98 1096h168l74 -545q10 -69 19.5 -203.5t9.5 -216.5h6q35 87 87 200t77 156l325 609h178l-696 -1282q-93 -172 -184 -239t-219 -67q-72 0 -140 21v135q63 -18 131 -18q82 0 140.5 50.5t113.5 149.5l76 136zM335 1378q0 46 28 79.5t74 33.5q78 0 78 -80 q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM699 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#x131;" horiz-adv-x="520" d="M227 0h-168l234 1096h168z" />
+<glyph unicode="&#x152;" horiz-adv-x="1751" d="M1524 0h-674q-78 -20 -158 -20q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q152 0 237 -23h709l-31 -153h-565l-100 -469h528l-31 -150h-528l-115 -538h565zM696 131q69 0 123 19l246 1161q-76 22 -191 22q-157 0 -281 -101t-192.5 -281t-68.5 -398 q0 -199 98 -310.5t266 -111.5z" />
+<glyph unicode="&#x153;" horiz-adv-x="1769" d="M1251 -20q-270 0 -356 225q-69 -107 -171.5 -164t-225.5 -57q-184 0 -292 114t-108 308q0 193 75 360t201 255.5t281 88.5q270 0 359 -225q75 109 177.5 170t221.5 61q139 0 217 -65.5t78 -186.5q0 -183 -164.5 -284t-468.5 -101h-41l-4 -80q0 -131 61.5 -204.5 t190.5 -73.5q75 0 145 24.5t150 59.5v-150q-162 -75 -326 -75zM649 969q-109 0 -196 -73t-135 -202t-48 -284q0 -141 62 -214t172 -73q177 0 278 160.5t101 427.5q0 124 -59.5 191t-174.5 67zM1413 973q-125 0 -220.5 -94.5t-139.5 -260.5h18q231 0 351 61t120 177 q0 48 -32 82.5t-97 34.5z" />
+<glyph unicode="&#x178;" horiz-adv-x="1030" d="M188 0zM537 715l489 747h193l-627 -921l-113 -541h-172l119 549l-238 913h170zM452 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM816 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22 t-23.5 62z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1135" d="M1014 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M989 1456q0 -99 -60 -157t-159 -58q-101 0 -160 57.5t-59 155.5q0 94 62 152.5t157 58.5q101 0 160 -57t59 -152zM885 1454q0 53 -32 84t-83 31q-49 0 -82 -31t-33 -84q0 -54 29.5 -84.5t85.5 -30.5q51 0 83 30.5t32 84.5z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1135" d="M838 1243q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="639" d="M55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="&#x2011;" horiz-adv-x="639" d="M55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="&#x2012;" horiz-adv-x="639" d="M55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="&#x2013;" horiz-adv-x="983" d="M55 469l35 160h823l-34 -160h-824z" />
+<glyph unicode="&#x2014;" horiz-adv-x="1966" d="M55 469l35 160h1806l-34 -160h-1807z" />
+<glyph unicode="&#x2018;" horiz-adv-x="348" d="M129 961l-6 22q98 211 270 479h127q-147 -345 -203 -501h-188z" />
+<glyph unicode="&#x2019;" horiz-adv-x="348" d="M516 1462l8 -22q-40 -91 -111 -218.5t-159 -260.5h-129q134 298 203 501h188z" />
+<glyph unicode="&#x201a;" horiz-adv-x="492" d="M291 238l8 -23q-113 -235 -270 -479h-129q126 286 204 502h187z" />
+<glyph unicode="&#x201c;" horiz-adv-x="719" d="M500 961l-8 22q80 181 272 479h127q-162 -379 -203 -501h-188zM129 961l-6 22q98 211 270 479h127q-147 -345 -203 -501h-188z" />
+<glyph unicode="&#x201d;" horiz-adv-x="719" d="M516 1462l8 -22q-40 -91 -111 -218.5t-159 -260.5h-129q134 298 203 501h188zM885 1462l10 -22q-94 -206 -274 -479h-127q57 126 115.5 272.5t86.5 228.5h189z" />
+<glyph unicode="&#x201e;" horiz-adv-x="858" d="M291 238l8 -23q-113 -235 -270 -479h-129q126 286 204 502h187zM659 238l9 -23q-95 -205 -271 -479h-129q140 316 203 502h188z" />
+<glyph unicode="&#x2022;" horiz-adv-x="774" d="M199 684q0 145 73.5 231t198.5 86q92 0 139 -49t47 -141q0 -141 -74 -230t-202 -89q-89 0 -135.5 49.5t-46.5 142.5z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1563" d="M43 0zM563 74q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77zM1085 74q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77zM43 74q0 77 40.5 122.5 t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="580" d="M88 578l391 380l78 -81l-297 -334l172 -381l-113 -49l-231 436v29z" />
+<glyph unicode="&#x203a;" horiz-adv-x="580" d="M492 496l-392 -381l-77 82l296 333l-172 381l113 50l232 -437v-28z" />
+<glyph unicode="&#x2044;" horiz-adv-x="268" d="M752 1462l-1086 -1462h-153l1085 1462h154z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="717" d="M713 788h-129l-43 -202h-127l43 202h-365l23 101l481 579h133l-121 -563h127zM481 905q69 322 90 395q-20 -36 -110 -149l-205 -246h225z" />
+<glyph unicode="&#x20ac;" d="M928 1329q-140 0 -254 -99t-189 -298h426l-26 -133h-441q-21 -65 -32 -164h381l-29 -131h-361q0 -373 297 -373q123 0 256 55v-147q-127 -59 -278 -59q-212 0 -328.5 133.5t-116.5 378.5v12h-170l27 131h154q8 80 30 164h-151l27 133h159q97 267 259.5 408t369.5 141 q89 0 160 -21.5t141 -70.5l-80 -138q-113 78 -231 78z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1534" d="M438 741h-121v617h-196v104h516v-104h-199v-617zM1014 741l-189 551h-6q4 -52 4 -121v-430h-118v721h180l182 -557l193 557h170v-721h-121v430q0 73 4 121h-6l-197 -551h-96z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1095" d="M0 1095h1095v-1095h-1095v1095z" />
+<glyph horiz-adv-x="1182" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.woff b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.woff
new file mode 100644
index 0000000..ff652e6
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.woff
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Light-webfont.eot b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Light-webfont.eot
new file mode 100644
index 0000000..1486840
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Light-webfont.eot
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Light-webfont.svg b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Light-webfont.svg
new file mode 100644
index 0000000..11a472c
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Light-webfont.svg
@@ -0,0 +1,1831 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sanslight" horiz-adv-x="1169" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1077" d="M29 0zM586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM895 0h-99v1087h99v-1087zM782 1389q0 96 63 96q31 0 48.5 -25t17.5 -71q0 -45 -17.5 -71 t-48.5 -26q-63 0 -63 97z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1077" d="M29 0zM586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM895 0h-99v1556h99v-1556z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="1692" d="M29 0zM586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM1200 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5 q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM1510 0h-99v1087h99v-1087zM1397 1389q0 96 63 96q31 0 48.5 -25t17.5 -71q0 -45 -17.5 -71t-48.5 -26q-63 0 -63 97z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="1692" d="M29 0zM586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM1200 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5 q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM1510 0h-99v1556h99v-1556z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="492" d="M276 377h-61l-29 1085h119zM164 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="&#x22;" horiz-adv-x="723" d="M260 1462l-33 -528h-61l-33 528h127zM590 1462l-33 -528h-61l-33 528h127z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M967 928l-76 -398h303v-79h-320l-86 -451h-90l88 451h-360l-86 -451h-88l86 451h-283v79h299l76 398h-297v80h311l86 454h91l-89 -454h365l88 454h86l-88 -454h285v-80h-301zM440 530h363l78 398h-363z" />
+<glyph unicode="$" d="M991 440q0 -133 -99 -217t-274 -106v-236h-81v232q-92 2 -200.5 22.5t-172.5 50.5v103q75 -36 179.5 -61t193.5 -25v508q-145 44 -215 88t-102 104t-32 146q0 124 94.5 208.5t254.5 104.5v192h81v-190q197 -9 351 -72l-33 -90q-141 62 -318 72v-486q213 -66 293 -144 t80 -204zM881 444q0 85 -63 140.5t-200 95.5v-471q122 13 192.5 75t70.5 160zM297 1049q0 -86 57 -141t183 -93v453q-119 -16 -179.5 -76t-60.5 -143z" />
+<glyph unicode="%" horiz-adv-x="1653" d="M211 1026q0 -186 45 -279.5t141 -93.5q193 0 193 373q0 184 -49.5 276.5t-143.5 92.5q-96 0 -141 -92.5t-45 -276.5zM688 1026q0 -226 -75 -343.5t-216 -117.5q-133 0 -208.5 120.5t-75.5 340.5q0 223 72 340t212 117q139 0 215 -120.5t76 -336.5zM1063 438 q0 -185 45 -277.5t141 -92.5q193 0 193 370q0 369 -193 369q-96 0 -141 -91.5t-45 -277.5zM1540 438q0 -226 -74 -343.5t-215 -117.5q-136 0 -211 121.5t-75 339.5q0 225 73.5 341t212.5 116q137 0 213 -120t76 -337zM1280 1462l-811 -1462h-96l811 1462h96z" />
+<glyph unicode="&#x26;" horiz-adv-x="1460" d="M123 371q0 138 73.5 235t274.5 205l-75 82q-66 71 -98 139t-32 142q0 143 95.5 227t256.5 84q155 0 245.5 -81t90.5 -224q0 -105 -70 -192.5t-253 -194.5l452 -457q61 72 104 157t75 201h96q-63 -246 -209 -426l266 -268h-135l-193 197q-92 -90 -164 -131.5t-157.5 -63.5 t-194.5 -22q-209 0 -328.5 103t-119.5 288zM578 70q128 0 234.5 43.5t209.5 146.5l-483 485q-136 -72 -196.5 -122.5t-88 -109.5t-27.5 -138q0 -143 93 -224t258 -81zM373 1176q0 -79 40 -146t152 -174q159 85 221 159t62 169q0 94 -62 152.5t-168 58.5q-114 0 -179.5 -58 t-65.5 -161z" />
+<glyph unicode="'" horiz-adv-x="393" d="M260 1462l-33 -528h-61l-33 528h127z" />
+<glyph unicode="(" horiz-adv-x="557" d="M82 561q0 265 77.5 496t223.5 405h113q-148 -182 -227 -412.5t-79 -486.5q0 -483 304 -887h-111q-147 170 -224 397t-77 488z" />
+<glyph unicode=")" horiz-adv-x="557" d="M475 561q0 -263 -77.5 -490t-223.5 -395h-111q304 404 304 887q0 257 -79 487.5t-227 411.5h113q147 -175 224 -406.5t77 -494.5z" />
+<glyph unicode="*" horiz-adv-x="1128" d="M631 1556l-37 -405l405 104l21 -131l-395 -39l247 -340l-124 -71l-191 379l-180 -379l-125 71l242 340l-390 39l19 131l401 -104l-39 405h146z" />
+<glyph unicode="+" d="M625 764h434v-82h-434v-432h-82v432h-432v82h432v434h82v-434z" />
+<glyph unicode="," horiz-adv-x="440" d="M295 238l12 -21q-75 -265 -174 -481h-65q77 275 110 502h117z" />
+<glyph unicode="-" horiz-adv-x="659" d="M92 512v82h475v-82h-475z" />
+<glyph unicode="." horiz-adv-x="487" d="M162 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="/" horiz-adv-x="698" d="M674 1462l-545 -1462h-104l544 1462h105z" />
+<glyph unicode="0" d="M1055 735q0 -385 -117.5 -570t-355.5 -185q-229 0 -348 190.5t-119 564.5q0 382 115.5 566t351.5 184q231 0 352 -190.5t121 -559.5zM223 735q0 -340 89 -502.5t270 -162.5q189 0 275.5 168t86.5 497q0 324 -86.5 492t-275.5 168t-274 -168t-85 -492z" />
+<glyph unicode="1" d="M682 0h-98v1065q0 145 12 301q-15 -15 -31 -29t-309 -243l-57 71l397 297h86v-1462z" />
+<glyph unicode="2" d="M1028 0h-915v88l389 406q164 170 230 260t97 172t31 172q0 131 -86 213t-223 82q-183 0 -350 -133l-54 69q183 154 406 154q191 0 300.5 -102t109.5 -281q0 -145 -73.5 -280.5t-268.5 -334.5l-375 -385v-4h782v-96z" />
+<glyph unicode="3" d="M979 1118q0 -136 -85.5 -229t-229.5 -119v-6q176 -22 268 -112t92 -242q0 -205 -139.5 -317.5t-401.5 -112.5q-223 0 -389 83v99q84 -44 188.5 -69t196.5 -25q221 0 332 89.5t111 252.5q0 145 -113.5 223t-333.5 78h-158v96h160q182 0 288.5 86.5t106.5 234.5 q0 122 -86.5 195.5t-226.5 73.5q-109 0 -199 -30.5t-202 -104.5l-49 67q85 71 205 112.5t243 41.5q202 0 312 -95.5t110 -269.5z" />
+<glyph unicode="4" d="M1141 373h-252v-373h-94v373h-752v67l725 1030h121v-1011h252v-86zM795 459v418q0 302 14 507h-8q-20 -37 -123 -188l-516 -737h633z" />
+<glyph unicode="5" d="M537 879q234 0 368.5 -113t134.5 -311q0 -225 -140 -350t-386 -125q-109 0 -207 21.5t-164 61.5v103q108 -55 192 -76.5t179 -21.5q192 0 308 101.5t116 274.5q0 163 -113 256t-307 93q-130 0 -272 -39l-60 39l58 669h704v-96h-610l-45 -516q156 29 244 29z" />
+<glyph unicode="6" d="M131 623q0 285 77.5 479.5t220 288.5t343.5 94q94 0 172 -23v-88q-73 27 -176 27q-247 0 -384.5 -178t-154.5 -518h13q76 98 174 148t207 50q205 0 320.5 -117t115.5 -323q0 -224 -121.5 -353.5t-327.5 -129.5q-222 0 -350.5 169.5t-128.5 473.5zM610 68q164 0 255 103 t91 294q0 168 -90 262t-245 94q-102 0 -189.5 -45t-139.5 -119.5t-52 -152.5q0 -111 49.5 -213.5t134 -162.5t186.5 -60z" />
+<glyph unicode="7" d="M334 0l602 1366h-827v96h946v-73l-604 -1389h-117z" />
+<glyph unicode="8" d="M582 1487q186 0 299.5 -95t113.5 -257q0 -112 -70.5 -198t-228.5 -159q192 -79 270 -173t78 -228q0 -181 -126.5 -289t-339.5 -108q-221 0 -339 101t-118 294q0 131 83 230t257 169q-161 76 -227 160.5t-66 202.5q0 105 53 184.5t148.5 122.5t212.5 43zM223 360 q0 -138 93.5 -214t261.5 -76q164 0 264 80.5t100 218.5q0 124 -78.5 201.5t-302.5 162.5q-184 -71 -261 -157t-77 -216zM580 1397q-141 0 -226.5 -69.5t-85.5 -190.5q0 -70 31.5 -123.5t91 -97t199.5 -101.5q163 63 234 139t71 183q0 120 -84.5 190t-230.5 70z" />
+<glyph unicode="9" d="M1036 842q0 -288 -75.5 -482t-220 -287t-349.5 -93q-104 0 -192 26v86q43 -14 103.5 -21.5t92.5 -7.5q247 0 387 178.5t156 520.5h-12q-73 -96 -174 -147.5t-211 -51.5q-203 0 -316.5 112t-113.5 318q0 220 124.5 356t323.5 136q144 0 252 -75.5t166.5 -221.5t58.5 -346z M559 1397q-158 0 -252 -106.5t-94 -291.5q0 -174 87 -264t249 -90q101 0 188.5 45t139 119.5t51.5 151.5q0 117 -46.5 219t-130 159.5t-192.5 57.5z" />
+<glyph unicode=":" horiz-adv-x="487" d="M162 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98zM162 971q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode=";" horiz-adv-x="487" d="M303 238l12 -21q-75 -265 -174 -481h-65q29 97 62 245.5t48 256.5h117zM162 971q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode="&#x3c;" d="M1059 266l-948 416v61l948 474v-95l-823 -405l823 -355v-96z" />
+<glyph unicode="=" d="M111 885v82h948v-82h-948zM111 477v82h948v-82h-948z" />
+<glyph unicode="&#x3e;" d="M111 362l823 355l-823 405v95l948 -474v-61l-948 -416v96z" />
+<glyph unicode="?" horiz-adv-x="862" d="M293 377v37q0 123 37.5 201t138.5 167l91 79q72 61 103 121t31 138q0 127 -83.5 202t-219.5 75q-79 0 -148 -17.5t-149 -56.5l-37 80q110 48 184.5 64t153.5 16q183 0 288 -98.5t105 -270.5q0 -68 -18 -119t-50.5 -94.5t-78.5 -84t-102 -87.5q-64 -54 -98.5 -98.5 t-50 -93.5t-15.5 -146v-14h-82zM260 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="@" horiz-adv-x="1815" d="M1702 725q0 -228 -90.5 -366t-245.5 -138q-89 0 -144.5 54t-64.5 147h-4q-43 -100 -124 -150.5t-189 -50.5q-148 0 -229 96.5t-81 270.5q0 202 120.5 330.5t314.5 128.5q138 0 286 -41l-22 -464v-30q0 -104 35 -156.5t116 -52.5q103 0 168.5 116.5t65.5 303.5 q0 194 -79 340t-225.5 224.5t-334.5 78.5q-230 0 -405.5 -99.5t-270 -281.5t-94.5 -418q0 -322 167 -497.5t474 -175.5q93 0 188.5 18t231.5 70v-99q-203 -80 -414 -80q-349 0 -544 200.5t-195 557.5q0 256 108.5 460.5t307 317.5t448.5 113q215 0 380.5 -89t255 -254.5 t89.5 -383.5zM633 590q0 -143 55 -215t174 -72q255 0 273 346l16 291q-79 27 -193 27q-149 0 -237 -102.5t-88 -274.5z" />
+<glyph unicode="A" horiz-adv-x="1229" d="M911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174z" />
+<glyph unicode="B" horiz-adv-x="1284" d="M207 1462h401q271 0 398 -92t127 -278q0 -127 -77.5 -211.5t-226.5 -108.5v-6q175 -26 257.5 -110.5t82.5 -235.5q0 -202 -134 -311t-380 -109h-448v1462zM309 811h322q206 0 299.5 68.5t93.5 214.5t-105.5 212t-314.5 66h-295v-561zM309 721v-631h344q406 0 406 330 q0 301 -428 301h-322z" />
+<glyph unicode="C" horiz-adv-x="1272" d="M831 1391q-275 0 -433 -176t-158 -482q0 -313 149 -486t426 -173q184 0 338 47v-90q-145 -51 -362 -51q-308 0 -485 199t-177 556q0 223 84.5 393t243 262.5t368.5 92.5q214 0 383 -80l-41 -92q-160 80 -336 80z" />
+<glyph unicode="D" horiz-adv-x="1446" d="M1317 745q0 -368 -193 -556.5t-567 -188.5h-350v1462h395q350 0 532.5 -183t182.5 -534zM1206 741q0 314 -159.5 472.5t-468.5 158.5h-269v-1282h242q655 0 655 651z" />
+<glyph unicode="E" horiz-adv-x="1130" d="M1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94z" />
+<glyph unicode="F" horiz-adv-x="1028" d="M309 0h-102v1462h801v-94h-699v-620h660v-95h-660v-653z" />
+<glyph unicode="G" horiz-adv-x="1481" d="M782 737h539v-667q-212 -90 -477 -90q-346 0 -530.5 195.5t-184.5 553.5q0 223 91.5 395.5t262 266.5t391.5 94q239 0 429 -88l-41 -92q-190 88 -394 88q-289 0 -458.5 -178.5t-169.5 -481.5q0 -330 161 -496.5t473 -166.5q202 0 343 57v514h-435v96z" />
+<glyph unicode="H" horiz-adv-x="1473" d="M1266 0h-103v719h-854v-719h-102v1462h102v-649h854v649h103v-1462z" />
+<glyph unicode="I" horiz-adv-x="516" d="M207 0v1462h102v-1462h-102z" />
+<glyph unicode="J" horiz-adv-x="506" d="M-33 -369q-92 0 -151 27v88q78 -20 149 -20q242 0 242 264v1472h102v-1462q0 -369 -342 -369z" />
+<glyph unicode="K" horiz-adv-x="1190" d="M1190 0h-125l-561 772l-195 -172v-600h-102v1462h102v-760l162 162l573 598h130l-599 -618z" />
+<glyph unicode="L" horiz-adv-x="1051" d="M207 0v1462h102v-1366h697v-96h-799z" />
+<glyph unicode="M" horiz-adv-x="1767" d="M850 0l-545 1350h-8q8 -124 8 -254v-1096h-98v1462h158l518 -1286h6l518 1286h154v-1462h-103v1108q0 116 12 240h-8l-547 -1348h-65z" />
+<glyph unicode="N" horiz-adv-x="1477" d="M1270 0h-103l-866 1298h-8q12 -232 12 -350v-948h-98v1462h102l865 -1296h6q-9 180 -9 342v954h99v-1462z" />
+<glyph unicode="O" horiz-adv-x="1565" d="M1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483z" />
+<glyph unicode="P" horiz-adv-x="1198" d="M1087 1042q0 -212 -144 -325t-408 -113h-226v-604h-102v1462h358q522 0 522 -420zM309 692h201q247 0 357 81.5t110 264.5q0 169 -104 250.5t-322 81.5h-242v-678z" />
+<glyph unicode="Q" horiz-adv-x="1565" d="M1436 733q0 -294 -126 -486.5t-349 -246.5l333 -348h-166l-282 330l-33 -2h-31q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5 t-401.5 168.5q-261 0 -402.5 -170t-141.5 -483z" />
+<glyph unicode="R" horiz-adv-x="1217" d="M309 637v-637h-102v1462h348q272 0 402 -100.5t130 -302.5q0 -147 -77.5 -248t-235.5 -145l397 -666h-122l-377 637h-363zM309 725h279q185 0 287 82.5t102 243.5q0 167 -100 243t-326 76h-242v-645z" />
+<glyph unicode="S" horiz-adv-x="1116" d="M1014 377q0 -183 -134.5 -290t-357.5 -107q-268 0 -411 59v102q158 -67 403 -67q180 0 285.5 82.5t105.5 216.5q0 83 -35 137.5t-114 99.5t-232 97q-224 77 -309.5 166.5t-85.5 238.5q0 164 128.5 267.5t330.5 103.5q206 0 387 -78l-37 -88q-182 76 -348 76 q-162 0 -258 -75t-96 -204q0 -81 29.5 -133t96.5 -93.5t230 -99.5q171 -59 257 -114.5t125.5 -126t39.5 -170.5z" />
+<glyph unicode="T" horiz-adv-x="1073" d="M588 0h-103v1366h-475v96h1053v-96h-475v-1366z" />
+<glyph unicode="U" horiz-adv-x="1473" d="M1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102z" />
+<glyph unicode="V" horiz-adv-x="1182" d="M1071 1462h111l-547 -1462h-90l-545 1462h109l368 -995q84 -225 113 -338q20 75 79 233z" />
+<glyph unicode="W" horiz-adv-x="1827" d="M1372 0h-84l-321 1128q-40 139 -60 228q-16 -87 -45.5 -200t-322.5 -1156h-86l-402 1462h107l256 -942q15 -57 28 -105.5t23.5 -91t19 -82t15.5 -79.5q24 136 102 413l250 887h113l293 -1018q51 -176 73 -284q13 72 33.5 153t308.5 1149h103z" />
+<glyph unicode="X" horiz-adv-x="1102" d="M1102 0h-117l-432 682l-440 -682h-113l492 762l-447 700h115l395 -626l401 626h109l-453 -698z" />
+<glyph unicode="Y" horiz-adv-x="1081" d="M543 662l428 800h110l-487 -897v-565h-105v557l-489 905h117z" />
+<glyph unicode="Z" horiz-adv-x="1180" d="M1098 0h-1016v76l856 1290h-817v96h954v-76l-858 -1290h881v-96z" />
+<glyph unicode="[" horiz-adv-x="653" d="M602 -324h-428v1786h428v-94h-330v-1597h330v-95z" />
+<glyph unicode="\" horiz-adv-x="698" d="M127 1462l547 -1462h-103l-546 1462h102z" />
+<glyph unicode="]" horiz-adv-x="653" d="M51 -229h330v1597h-330v94h428v-1786h-428v95z" />
+<glyph unicode="^" d="M88 561l465 912h68l460 -912h-100l-395 791l-398 -791h-100z" />
+<glyph unicode="_" horiz-adv-x="842" d="M846 -266h-850v82h850v-82z" />
+<glyph unicode="`" horiz-adv-x="1182" d="M776 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="a" horiz-adv-x="1085" d="M842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5z" />
+<glyph unicode="b" horiz-adv-x="1219" d="M641 1108q228 0 343.5 -143.5t115.5 -419.5q0 -271 -121.5 -418t-341.5 -147q-116 0 -209 48t-147 136h-9l-28 -164h-62v1556h99v-391q0 -88 -4 -162l-3 -85h7q62 98 149.5 144t210.5 46zM639 1018q-192 0 -275 -110t-83 -363v-17q0 -246 86.5 -353t269.5 -107 q178 0 268 124.5t90 354.5q0 471 -356 471z" />
+<glyph unicode="c" horiz-adv-x="973" d="M616 -20q-233 0 -365 147t-132 410q0 270 137 420.5t375 150.5q141 0 270 -49l-27 -88q-141 47 -245 47q-200 0 -303 -123.5t-103 -355.5q0 -220 103 -344.5t288 -124.5q148 0 275 53v-92q-104 -51 -273 -51z" />
+<glyph unicode="d" horiz-adv-x="1219" d="M580 1108q118 0 204 -43t154 -147h6q-6 126 -6 247v391h98v-1556h-65l-25 166h-8q-124 -186 -356 -186q-225 0 -344 140t-119 408q0 282 118 431t343 149zM580 1018q-178 0 -267.5 -125t-89.5 -363q0 -462 359 -462q184 0 270 107t86 353v17q0 252 -84.5 362.5 t-273.5 110.5z" />
+<glyph unicode="e" horiz-adv-x="1124" d="M621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5z" />
+<glyph unicode="f" horiz-adv-x="614" d="M586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86z" />
+<glyph unicode="g" horiz-adv-x="1071" d="M1030 1087v-69l-225 -14q90 -112 90 -246q0 -157 -104.5 -254.5t-280.5 -97.5q-74 0 -104 6q-59 -31 -90 -73t-31 -89q0 -52 39.5 -76t132.5 -24h190q177 0 271 -71.5t94 -211.5q0 -172 -139.5 -265.5t-397.5 -93.5q-205 0 -317.5 79t-112.5 220q0 112 69.5 186 t188.5 101q-49 21 -78.5 59.5t-29.5 88.5q0 109 139 192q-95 39 -148 122.5t-53 191.5q0 163 103.5 261.5t279.5 98.5q107 0 166 -21h348zM150 -184q0 -224 333 -224q428 0 428 273q0 98 -67 142t-217 44h-178q-299 0 -299 -235zM233 748q0 -126 76.5 -195.5t204.5 -69.5 q136 0 208.5 69t72.5 200q0 139 -74.5 208.5t-208.5 69.5q-130 0 -204.5 -74.5t-74.5 -207.5z" />
+<glyph unicode="h" horiz-adv-x="1208" d="M940 0v705q0 164 -69 238.5t-214 74.5q-195 0 -285.5 -98.5t-90.5 -319.5v-600h-99v1556h99v-495l-5 -139h7q61 98 154 142t231 44q370 0 370 -397v-711h-98z" />
+<glyph unicode="i" horiz-adv-x="463" d="M281 0h-99v1087h99v-1087zM168 1389q0 96 63 96q31 0 48.5 -25t17.5 -71q0 -45 -17.5 -71t-48.5 -26q-63 0 -63 97z" />
+<glyph unicode="j" horiz-adv-x="463" d="M37 -492q-80 0 -135 25v86q69 -20 129 -20q151 0 151 176v1312h99v-1298q0 -135 -63.5 -208t-180.5 -73zM168 1389q0 96 63 96q31 0 48.5 -25t17.5 -71q0 -45 -17.5 -71t-48.5 -26q-63 0 -63 97z" />
+<glyph unicode="k" horiz-adv-x="991" d="M279 477l555 610h120l-428 -464l465 -623h-119l-413 549l-178 -162v-387h-99v1556h99v-780l-7 -299h5z" />
+<glyph unicode="l" horiz-adv-x="463" d="M281 0h-99v1556h99v-1556z" />
+<glyph unicode="m" horiz-adv-x="1808" d="M1540 0v713q0 159 -62 232t-190 73q-167 0 -247 -92t-80 -289v-637h-101v743q0 275 -252 275q-171 0 -249 -99.5t-78 -318.5v-600h-99v1087h82l21 -149h6q45 81 128 125.5t183 44.5q257 0 330 -193h4q53 93 142.5 143t203.5 50q178 0 267 -95t89 -302v-711h-98z" />
+<glyph unicode="n" horiz-adv-x="1208" d="M940 0v705q0 164 -69 238.5t-214 74.5q-195 0 -285.5 -98.5t-90.5 -319.5v-600h-99v1087h84l19 -149h6q106 170 377 170q370 0 370 -397v-711h-98z" />
+<glyph unicode="o" horiz-adv-x="1200" d="M1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5t-97.5 -349.5z " />
+<glyph unicode="p" horiz-adv-x="1219" d="M647 -20q-251 0 -366 188h-7l3 -84q4 -74 4 -162v-414h-99v1579h84l19 -155h6q112 176 358 176q220 0 335.5 -144.5t115.5 -420.5q0 -268 -121.5 -415.5t-331.5 -147.5zM645 68q167 0 258.5 124t91.5 347q0 479 -346 479q-190 0 -279 -104.5t-89 -340.5v-32 q0 -255 85.5 -364t278.5 -109z" />
+<glyph unicode="q" horiz-adv-x="1219" d="M569 -20q-214 0 -332 142t-118 410q0 275 118 425.5t338 150.5q236 0 353 -174h6l18 153h84v-1579h-98v414q0 122 6 248h-6q-118 -190 -369 -190zM571 68q198 0 282.5 109t84.5 366v12q0 245 -85 354t-271 109q-176 0 -267.5 -124t-91.5 -364q0 -229 89.5 -345.5 t258.5 -116.5z" />
+<glyph unicode="r" horiz-adv-x="797" d="M610 1108q69 0 148 -14l-19 -95q-68 17 -141 17q-139 0 -228 -118t-89 -298v-600h-99v1087h84l10 -196h7q67 120 143 168.5t184 48.5z" />
+<glyph unicode="s" horiz-adv-x="954" d="M856 283q0 -146 -111 -224.5t-315 -78.5q-218 0 -346 67v107q164 -82 346 -82q161 0 244.5 53.5t83.5 142.5q0 82 -66.5 138t-218.5 110q-163 59 -229 101.5t-99.5 96t-33.5 130.5q0 122 102.5 193t286.5 71q176 0 334 -66l-37 -90q-160 66 -297 66q-133 0 -211 -44 t-78 -122q0 -85 60.5 -136t236.5 -114q147 -53 214 -95.5t100.5 -96.5t33.5 -127z" />
+<glyph unicode="t" horiz-adv-x="686" d="M469 68q94 0 164 16v-80q-72 -24 -166 -24q-144 0 -212.5 77t-68.5 242v702h-161v58l161 45l50 246h51v-263h319v-86h-319v-688q0 -125 44 -185t138 -60z" />
+<glyph unicode="u" horiz-adv-x="1208" d="M268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98z" />
+<glyph unicode="v" horiz-adv-x="940" d="M420 0l-420 1087h102l281 -739q56 -142 84 -248h6q41 136 84 250l281 737h102l-420 -1087h-100z" />
+<glyph unicode="w" horiz-adv-x="1481" d="M1051 0l-238 727q-23 74 -59 217h-6l-21 -74l-45 -145l-242 -725h-98l-311 1087h106l174 -630q61 -234 80 -344h6q59 234 86 311l224 663h90l213 -661q72 -235 88 -311h6q8 65 80 348l166 624h100l-295 -1087h-104z" />
+<glyph unicode="x" horiz-adv-x="1020" d="M449 559l-379 528h114l324 -458l321 458h109l-373 -528l400 -559h-115l-342 485l-344 -485h-109z" />
+<glyph unicode="y" horiz-adv-x="940" d="M0 1087h102l230 -610q105 -281 133 -379h6q42 129 137 385l230 604h102l-487 -1263q-59 -154 -99 -208t-93.5 -81t-129.5 -27q-57 0 -127 21v86q58 -16 125 -16q51 0 90 24t70.5 74.5t73 160t53.5 142.5z" />
+<glyph unicode="z" horiz-adv-x="944" d="M858 0h-776v63l645 936h-598v88h727v-63l-649 -936h651v-88z" />
+<glyph unicode="{" horiz-adv-x="723" d="M389 -27q0 -102 59.5 -152.5t202.5 -53.5v-91q-195 0 -277.5 75t-82.5 231v337q0 205 -230 209v80q122 2 176 51t54 148v350q0 299 360 305v-90q-138 -5 -200 -58t-62 -157v-305q0 -130 -44 -194t-142 -85v-8q97 -20 141.5 -83.5t44.5 -186.5v-322z" />
+<glyph unicode="|" horiz-adv-x="1108" d="M508 1561h92v-2067h-92v2067z" />
+<glyph unicode="}" horiz-adv-x="723" d="M334 295q0 123 44.5 186.5t141.5 83.5v8q-97 20 -141.5 84t-44.5 195v305q0 103 -61.5 156.5t-200.5 58.5v90q174 0 267 -77.5t93 -227.5v-350q0 -100 54.5 -148.5t175.5 -50.5v-80q-230 -4 -230 -209v-337q0 -155 -82.5 -230.5t-277.5 -75.5v91q141 2 201.5 52.5 t60.5 153.5v322z" />
+<glyph unicode="~" d="M334 745q-49 0 -108 -30.5t-115 -89.5v94q108 110 233 110q61 0 115 -13.5t155 -57.5q126 -58 220 -58q56 0 109.5 30.5t115.5 94.5v-96q-48 -49 -104.5 -81t-129.5 -32q-116 0 -270 72q-124 57 -221 57z" />
+<glyph unicode="&#xa1;" horiz-adv-x="492" d="M215 711h61l29 -1086h-119zM166 1010q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode="&#xa2;" d="M602 190q-186 30 -288.5 175t-102.5 380q0 232 102.5 381.5t288.5 182.5v174h82v-166h14q131 0 275 -55l-31 -84q-134 51 -237 51q-187 0 -288.5 -122.5t-101.5 -358.5q0 -225 100.5 -349.5t280.5 -124.5q131 0 267 58v-92q-110 -56 -267 -56h-12v-204h-82v210z" />
+<glyph unicode="&#xa3;" d="M412 676v-256q0 -116 -35 -196t-113 -128h809v-96h-995v84q110 21 171.5 110t61.5 224v258h-211v82h211v297q0 204 98 315t281 111q175 0 330 -68l-35 -86q-157 66 -295 66q-141 0 -209.5 -81t-68.5 -253v-301h411v-82h-411z" />
+<glyph unicode="&#xa4;" d="M991 723q0 -151 -90 -256l139 -141l-59 -60l-137 142q-110 -93 -260 -93q-153 0 -260 93l-138 -142l-59 60l139 141q-90 106 -90 256q0 147 90 258l-139 141l59 60l138 -142q103 93 260 93q155 0 260 -93l137 142l59 -60l-139 -141q90 -111 90 -258zM584 395 q134 0 228.5 95.5t94.5 232.5q0 136 -95 233t-228 97q-134 0 -229 -97t-95 -233t94.5 -232t229.5 -96z" />
+<glyph unicode="&#xa5;" d="M586 666l428 796h110l-432 -788h283v-82h-338v-205h338v-82h-338v-305h-105v305h-337v82h337v205h-337v82h278l-430 788h117z" />
+<glyph unicode="&#xa6;" horiz-adv-x="1108" d="M508 1561h92v-764h-92v764zM508 258h92v-764h-92v764z" />
+<glyph unicode="&#xa7;" horiz-adv-x="1057" d="M145 813q0 83 50.5 152.5t138.5 107.5q-86 47 -125 102t-39 136q0 117 101.5 183.5t275.5 66.5q175 0 336 -64l-35 -80q-91 34 -158.5 47t-144.5 13q-134 0 -205.5 -44.5t-71.5 -119.5q0 -54 25.5 -88.5t85.5 -65.5t188 -74q192 -64 264 -132.5t72 -170.5 q0 -173 -186 -274q86 -42 129 -96t43 -136q0 -135 -113 -207.5t-311 -72.5q-92 0 -171 15t-165 52v95q182 -78 332 -78q162 0 247 49.5t85 140.5q0 55 -25 87.5t-88.5 65.5t-190.5 79q-200 73 -272 141.5t-72 169.5zM246 825q0 -65 31.5 -104t105.5 -75t250 -99 q82 41 126 98t44 121q0 62 -32 102t-108.5 77t-236.5 87q-81 -23 -130.5 -79t-49.5 -128z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1182" d="M336 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM717 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M897 1092q-142 0 -222.5 -94.5t-80.5 -264.5q0 -186 74.5 -275t220.5 -89q84 0 198 43v-88q-102 -45 -208 -45q-187 0 -288.5 115t-101.5 331q0 208 111 332.5t297 124.5q119 0 227 -52l-37 -83q-98 45 -190 45zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100 t276 -275t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM193 731q0 -178 88.5 -329.5t240.5 -240.5t330 -89t329.5 88.5t240.5 240.5t89 330q0 174 -85.5 325t-239 243t-334.5 92q-176 0 -328.5 -88.5t-241.5 -242.5t-89 -329z " />
+<glyph unicode="&#xaa;" horiz-adv-x="686" d="M512 813l-25 72q-84 -84 -202 -84q-95 0 -151 49t-56 139q0 100 80 151.5t241 59.5l95 4v43q0 77 -38 114.5t-106 37.5q-87 0 -196 -49l-33 73q117 56 231 56q228 0 228 -215v-451h-68zM168 993q0 -54 35 -85t96 -31q90 0 142.5 50t52.5 142v64l-88 -5 q-116 -6 -177 -36.5t-61 -98.5z" />
+<glyph unicode="&#xab;" horiz-adv-x="885" d="M82 543l309 393l62 -43l-254 -363l254 -362l-62 -43l-309 391v27zM442 543l310 393l61 -43l-254 -363l254 -362l-61 -43l-310 391v27z" />
+<glyph unicode="&#xac;" d="M1038 764v-494h-82v412h-845v82h927z" />
+<glyph unicode="&#xad;" horiz-adv-x="659" d="M92 512zM92 512v82h475v-82h-475z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M709 731h112q91 0 143 46.5t52 135.5q0 172 -197 172h-110v-354zM1120 918q0 -79 -38.5 -139.5t-110.5 -94.5l237 -393h-121l-210 360h-168v-360h-101v880h211q143 0 222 -62t79 -191zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275t101 -377 q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM193 731q0 -178 88.5 -329.5t240.5 -240.5t330 -89t329.5 88.5t240.5 240.5t89 330q0 174 -85.5 325t-239 243t-334.5 92q-176 0 -328.5 -88.5t-241.5 -242.5t-89 -329z" />
+<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M1030 1556h-1036v82h1036v-82z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M139 1184q0 132 86.5 215.5t212.5 83.5t212.5 -83.5t86.5 -215.5t-86.5 -215.5t-212.5 -83.5q-130 0 -214.5 83t-84.5 216zM229 1184q0 -91 61 -154t148 -63q86 0 147.5 62t61.5 155q0 92 -60 154.5t-149 62.5q-90 0 -149.5 -64t-59.5 -153z" />
+<glyph unicode="&#xb1;" d="M111 1zM111 1v82h948v-82h-948zM625 764h434v-82h-434v-432h-82v432h-432v82h432v434h82v-434z" />
+<glyph unicode="&#xb2;" horiz-adv-x="688" d="M629 586h-576v78l242 237q125 121 172 193t47 149q0 71 -46.5 112.5t-123.5 41.5q-108 0 -217 -82l-49 65q119 103 270 103q124 0 194 -63.5t70 -174.5q0 -47 -13 -89t-40 -85.5t-68.5 -90t-308.5 -306.5h447v-88z" />
+<glyph unicode="&#xb3;" horiz-adv-x="688" d="M616 1260q0 -78 -44 -131.5t-117 -75.5q186 -45 186 -211q0 -130 -88.5 -201.5t-247.5 -71.5q-144 0 -264 60v88q136 -62 266 -62q115 0 174.5 49t59.5 136q0 83 -59.5 122t-178.5 39h-131v84h135q105 0 158 43.5t53 120.5q0 67 -47 107.5t-127 40.5q-128 0 -246 -78 l-47 70q130 94 293 94q127 0 199.5 -60t72.5 -163z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1182" d="M393 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1221" d="M281 1087v-704q0 -164 69 -238.5t213 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-50 -77 -150 -123.5t-217 -46.5q-99 0 -167.5 27.5t-119.5 84.5q5 -92 5 -170v-414h-99v1579h99z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1106 -260h-100v1722h-228v-1722h-100v819q-64 -18 -146 -18q-216 0 -317.5 125t-101.5 376q0 260 109 387t341 127h543v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="487" d="M162 623zM162 721q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M393 -291q0 -100 -67.5 -150.5t-188.5 -50.5q-68 0 -94 11v88q30 -10 92 -10q78 0 119 28t41 80q0 94 -193 121l93 174h96l-66 -117q168 -37 168 -174z" />
+<glyph unicode="&#xb9;" horiz-adv-x="688" d="M350 1462h92v-876h-98v547q0 99 12 233q-26 -23 -233 -145l-47 77z" />
+<glyph unicode="&#xba;" horiz-adv-x="739" d="M670 1141q0 -161 -80 -250.5t-223 -89.5t-220 86t-77 254q0 162 78 250t223 88q142 0 220.5 -87t78.5 -251zM160 1141q0 -264 209 -264t209 264q0 131 -50 194.5t-159 63.5t-159 -63.5t-50 -194.5z" />
+<glyph unicode="&#xbb;" horiz-adv-x="885" d="M803 518l-309 -393l-62 43l254 362l-254 363l62 43l309 -391v-27zM442 518l-309 -393l-61 43l254 362l-254 363l61 43l309 -391v-27z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1516" d="M59 0zM333 1462h92v-876h-98v547q0 99 12 233q-26 -23 -233 -145l-47 77zM1148 1462l-811 -1462h-94l811 1462h94zM1392 242h-129v-241h-90v241h-413v60l407 581h96v-563h129v-78zM1173 320v221q0 132 8 232q-6 -12 -21.5 -35.5t-295.5 -417.5h309z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1516" d="M11 0zM285 1462h92v-876h-98v547q0 99 12 233q-26 -23 -233 -145l-47 77zM1073 1462l-811 -1462h-94l811 1462h94zM1403 1h-576v78l242 237q125 121 172 193t47 149q0 71 -46.5 112.5t-123.5 41.5q-108 0 -217 -82l-49 65q119 103 270 103q124 0 194 -63.5t70 -174.5 q0 -47 -13 -89t-40 -85.5t-68.5 -90t-308.5 -306.5h447v-88z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1516" d="M41 0zM616 1260q0 -78 -44 -131.5t-117 -75.5q186 -45 186 -211q0 -130 -88.5 -201.5t-247.5 -71.5q-144 0 -264 60v88q136 -62 266 -62q115 0 174.5 49t59.5 136q0 83 -59.5 122t-178.5 39h-131v84h135q105 0 158 43.5t53 120.5q0 67 -47 107.5t-127 40.5 q-128 0 -246 -78l-47 70q130 94 293 94q127 0 199.5 -60t72.5 -163zM1300 1462l-811 -1462h-94l811 1462h94zM1495 242h-129v-241h-90v241h-413v60l407 581h96v-563h129v-78zM1276 320v221q0 132 8 232q-6 -12 -21.5 -35.5t-295.5 -417.5h309z" />
+<glyph unicode="&#xbf;" horiz-adv-x="862" d="M569 711v-37q0 -125 -39.5 -204.5t-136.5 -164.5l-90 -79q-73 -61 -104 -120.5t-31 -138.5q0 -124 82 -200t221 -76q125 0 233 46l64 27l37 -79q-111 -48 -185.5 -64t-152.5 -16q-184 0 -288.5 99t-104.5 269q0 70 20 124t58.5 102t171.5 159q64 53 98.5 98.5t49.5 94 t15 145.5v15h82zM440 1010q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM720 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM504 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM328 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM784 1581q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59 q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM367 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM748 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM836 1610q0 -97 -60 -155t-157 -58t-157 58t-60 155q0 94 60 152.5t157 58.5t157 -59t60 -152zM482 1610q0 -66 37.5 -103.5t99.5 -37.5 t99.5 37.5t37.5 103.5q0 64 -39 101.5t-98 37.5q-62 0 -99.5 -38t-37.5 -101z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1653" d="M1528 0h-717v516h-475l-227 -516h-111l653 1462h877v-94h-615v-553h576v-94h-576v-627h615v-94zM377 608h434v760h-100z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1272" d="M129 0zM831 1391q-275 0 -433 -176t-158 -482q0 -313 149 -486t426 -173q184 0 338 47v-90q-145 -51 -362 -51q-308 0 -485 199t-177 556q0 223 84.5 393t243 262.5t368.5 92.5q214 0 383 -80l-41 -92q-160 80 -336 80zM911 -291q0 -100 -67.5 -150.5t-188.5 -50.5 q-68 0 -94 11v88q30 -10 92 -10q78 0 119 28t41 80q0 94 -193 121l93 174h96l-66 -117q168 -37 168 -174z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1130" d="M207 0zM1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94zM697 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1130" d="M207 0zM1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94zM463 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xca;" horiz-adv-x="1130" d="M207 0zM1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94zM315 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1130" d="M207 0zM1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94zM354 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM735 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xcc;" horiz-adv-x="516" d="M0 0zM207 0v1462h102v-1462h-102zM320 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xcd;" horiz-adv-x="516" d="M191 0zM207 0v1462h102v-1462h-102zM191 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xce;" horiz-adv-x="516" d="M0 0zM207 0v1462h102v-1462h-102zM-32 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xcf;" horiz-adv-x="516" d="M5 0zM207 0v1462h102v-1462h-102zM5 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM386 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1466" d="M1317 745q0 -368 -193 -556.5t-567 -188.5h-350v678h-160v94h160v690h395q350 0 532.5 -183t182.5 -534zM1206 741q0 314 -159.5 472.5t-468.5 158.5h-269v-600h406v-94h-406v-588h242q655 0 655 651z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1477" d="M207 0zM1270 0h-103l-866 1298h-8q12 -232 12 -350v-948h-98v1462h102l865 -1296h6q-9 180 -9 342v954h99v-1462zM897 1581q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59 q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM885 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM686 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM492 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM940 1581q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM529 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM910 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xd7;" d="M584 780l409 408l58 -58l-408 -407l406 -408l-58 -57l-407 408l-406 -408l-57 57l405 408l-407 407l57 58z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1565" d="M1436 733q0 -348 -174 -550.5t-480 -202.5q-236 0 -395 120l-86 -120l-74 59l90 127q-188 200 -188 569q0 349 175.5 549.5t479.5 200.5q232 0 392 -121l108 152l72 -60l-111 -153q191 -207 191 -570zM1325 733q0 315 -139 486l-742 -1037q133 -106 338 -106 q264 0 403.5 170t139.5 487zM240 733q0 -312 139 -483l739 1034q-133 102 -334 102q-261 0 -402.5 -170t-141.5 -483z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1473" d="M190 0zM1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102zM833 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xda;" horiz-adv-x="1473" d="M190 0zM1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102zM633 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1473" d="M190 0zM1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102zM444 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207 q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1473" d="M190 0zM1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102zM481 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM862 1727q0 46 15.5 66 t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1081" d="M0 0zM543 662l428 800h110l-487 -897v-565h-105v557l-489 905h117zM434 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xde;" horiz-adv-x="1198" d="M1087 778q0 -212 -144 -325t-408 -113h-226v-340h-102v1462h102v-264h256q522 0 522 -420zM309 428h201q247 0 357 81.5t110 264.5q0 169 -104 250.5t-322 81.5h-242v-678z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1194" d="M961 1284q0 -139 -139 -250q-81 -64 -110.5 -100.5t-29.5 -75.5q0 -44 14.5 -68t51.5 -57t102 -78q106 -75 151.5 -124.5t68 -103t22.5 -120.5q0 -156 -88 -241.5t-246 -85.5q-95 0 -174.5 18.5t-126.5 48.5v107q65 -38 148.5 -62t152.5 -24q114 0 174.5 54.5t60.5 160.5 q0 83 -39 144t-149 136q-127 87 -175 147t-48 146q0 60 32.5 110t106.5 108q74 57 106.5 105.5t32.5 106.5q0 93 -70 143t-202 50q-145 0 -226 -69t-81 -196v-1214h-99v1206q0 173 103.5 267t292.5 94q188 0 285.5 -72.5t97.5 -210.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM638 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM422 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM251 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM697 1243q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5 h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM282 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM663 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM759 1456q0 -97 -60 -155t-157 -58t-157 58t-60 155q0 94 60 152.5t157 58.5t157 -59t60 -152zM405 1456q0 -66 37.5 -103.5t99.5 -37.5t99.5 37.5t37.5 103.5q0 64 -39 101.5t-98 37.5 q-62 0 -99.5 -38t-37.5 -101z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1731" d="M1243 -20q-295 0 -397 256q-68 -133 -168 -194.5t-252 -61.5q-156 0 -242 82.5t-86 226.5q0 154 125 243t377 97l201 6v72q0 155 -61.5 234t-198.5 79q-148 0 -305 -84l-37 86q173 84 346 84q261 0 325 -211q111 213 347 213q184 0 289.5 -134.5t105.5 -363.5v-80h-715 q0 -460 348 -460q85 0 150 12t174 57v-90q-92 -41 -165 -55t-161 -14zM434 70q169 0 266 99.5t97 276.5v107l-187 -8q-219 -11 -313 -71.5t-94 -188.5q0 -102 61 -158.5t170 -56.5zM1217 1020q-284 0 -314 -402h604q0 188 -77.5 295t-212.5 107z" />
+<glyph unicode="&#xe7;" horiz-adv-x="973" d="M119 0zM616 -20q-233 0 -365 147t-132 410q0 270 137 420.5t375 150.5q141 0 270 -49l-27 -88q-141 47 -245 47q-200 0 -303 -123.5t-103 -355.5q0 -220 103 -344.5t288 -124.5q148 0 275 53v-92q-104 -51 -273 -51zM723 -291q0 -100 -67.5 -150.5t-188.5 -50.5 q-68 0 -94 11v88q30 -10 92 -10q78 0 119 28t41 80q0 94 -193 121l93 174h96l-66 -117q168 -37 168 -174z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1124" d="M119 0zM621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5zM685 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1124" d="M119 0zM621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5zM452 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xea;" horiz-adv-x="1124" d="M119 0zM621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5zM290 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1124" d="M119 0zM621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5zM331 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM712 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xec;" horiz-adv-x="463" d="M0 0zM281 0h-99v1087h99v-1087zM349 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xed;" horiz-adv-x="463" d="M107 0zM281 0h-99v1087h99v-1087zM107 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xee;" horiz-adv-x="463" d="M0 0zM281 0h-99v1087h99v-1087zM-58 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xef;" horiz-adv-x="463" d="M0 0zM281 0h-99v1087h99v-1087zM-21 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM360 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1174" d="M1055 559q0 -276 -124 -427.5t-349 -151.5q-214 0 -339.5 130t-125.5 361q0 228 126.5 357.5t342.5 129.5q108 0 187.5 -33t148.5 -96l4 2q-64 270 -269 459l-270 -157l-49 77l244 146q-86 62 -199 119l45 81q147 -69 248 -145l225 137l49 -84l-202 -121 q154 -151 230.5 -353t76.5 -431zM950 557q0 146 -97 228.5t-267 82.5q-185 0 -275 -100.5t-90 -304.5q0 -186 94.5 -289.5t268.5 -103.5q179 0 272.5 123t93.5 364z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1208" d="M182 0zM940 0v705q0 164 -69 238.5t-214 74.5q-195 0 -285.5 -98.5t-90.5 -319.5v-600h-99v1087h84l19 -149h6q106 170 377 170q370 0 370 -397v-711h-98zM779 1243q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5 t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM718 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM499 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM309 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM761 1243q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM346 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM727 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xf7;" d="M111 682v82h948v-82h-948zM504 1075q0 99 80 99q82 0 82 -99q0 -52 -23.5 -75t-58.5 -23q-34 0 -57 23t-23 75zM504 371q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1200" d="M1081 545q0 -266 -129 -415.5t-356 -149.5q-173 0 -291 98l-86 -113l-72 58l93 120q-121 153 -121 402q0 266 129 414.5t354 148.5q179 0 301 -104l96 124l74 -55l-104 -137q112 -147 112 -391zM223 545q0 -200 78 -322l543 705q-98 90 -246 90q-180 0 -277.5 -123.5 t-97.5 -349.5zM977 545q0 190 -72 309l-543 -702q94 -82 238 -82q180 0 278.5 125.5t98.5 349.5z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1208" d="M170 0zM268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98zM687 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1208" d="M170 0zM268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98zM495 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1208" d="M170 0zM268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98zM313 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70 v16z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1208" d="M170 0zM268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98zM350 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM731 1389q0 46 15.5 66t47.5 20q64 0 64 -86 t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xfd;" horiz-adv-x="940" d="M0 0zM0 1087h102l230 -610q105 -281 133 -379h6q42 129 137 385l230 604h102l-487 -1263q-59 -154 -99 -208t-93.5 -81t-129.5 -27q-57 0 -127 21v86q58 -16 125 -16q51 0 90 24t70.5 74.5t73 160t53.5 142.5zM361 1257q73 79 144.5 171.5t97.5 140.5h141v-17 q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1219" d="M281 918q114 190 368 190q220 0 335.5 -144.5t115.5 -420.5q0 -268 -121.5 -415.5t-331.5 -147.5q-251 0 -366 188h-7l3 -84q4 -74 4 -162v-414h-99v2048h99v-391l-7 -247h7zM645 68q167 0 258.5 124t91.5 347q0 479 -348 479q-193 0 -279.5 -105t-86.5 -354v-18 q0 -255 85.5 -364t278.5 -109z" />
+<glyph unicode="&#xff;" horiz-adv-x="940" d="M0 0zM0 1087h102l230 -610q105 -281 133 -379h6q42 129 137 385l230 604h102l-487 -1263q-59 -154 -99 -208t-93.5 -81t-129.5 -27q-57 0 -127 21v86q58 -16 125 -16q51 0 90 24t70.5 74.5t73 160t53.5 142.5zM214 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86 q-63 0 -63 86zM595 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#x131;" horiz-adv-x="463" d="M281 0h-99v1087h99v-1087z" />
+<glyph unicode="&#x152;" horiz-adv-x="1839" d="M1714 0h-756q-76 -16 -176 -16q-305 0 -479 200t-174 551q0 347 174.5 545.5t480.5 198.5q78 0 183 -17h747v-94h-655v-553h616v-94h-616v-627h655v-94zM782 80q109 0 174 18v1266q-62 16 -172 16q-262 0 -403 -167.5t-141 -479.5q0 -315 140.5 -484t401.5 -169z" />
+<glyph unicode="&#x153;" horiz-adv-x="1942" d="M1438 -20q-156 0 -266.5 67.5t-165.5 198.5q-59 -128 -158 -197t-252 -69q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q151 0 251 -70t157 -209q110 279 399 279q192 0 303 -134t111 -364v-80h-762q2 -230 100.5 -345t276.5 -115q93 0 163.5 13t178.5 56 v-90q-92 -40 -170 -54.5t-172 -14.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5q174 0 265 122.5t91 352.5q0 224 -93 348.5t-265 124.5q-180 0 -277.5 -123.5t-97.5 -349.5zM1409 1020q-155 0 -242 -104t-102 -298h653q0 189 -82 295.5t-227 106.5z" />
+<glyph unicode="&#x178;" horiz-adv-x="1081" d="M0 0zM543 662l428 800h110l-487 -897v-565h-105v557l-489 905h117zM288 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM669 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1182" d="M299 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M805 1456q0 -97 -60 -155t-157 -58t-157 58t-60 155q0 94 60 152.5t157 58.5t157 -59t60 -152zM451 1456q0 -66 37.5 -103.5t99.5 -37.5t99.5 37.5t37.5 103.5q0 64 -39 101.5t-98 37.5q-62 0 -99.5 -38t-37.5 -101z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1182" d="M780 1243q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="659" d="M92 512v82h475v-82h-475z" />
+<glyph unicode="&#x2011;" horiz-adv-x="659" d="M92 512v82h475v-82h-475z" />
+<glyph unicode="&#x2012;" horiz-adv-x="659" d="M92 512v82h475v-82h-475z" />
+<glyph unicode="&#x2013;" horiz-adv-x="1024" d="M82 512v82h860v-82h-860z" />
+<glyph unicode="&#x2014;" horiz-adv-x="2048" d="M82 512v82h1884v-82h-1884z" />
+<glyph unicode="&#x2018;" horiz-adv-x="297" d="M41 961l-12 20q32 112 81.5 251t92.5 230h65q-30 -101 -64.5 -257t-45.5 -244h-117z" />
+<glyph unicode="&#x2019;" horiz-adv-x="297" d="M256 1462l12 -20q-75 -265 -174 -481h-65q29 96 61 241.5t49 259.5h117z" />
+<glyph unicode="&#x201a;" horiz-adv-x="451" d="M68 0zM295 238l12 -20q-75 -265 -174 -481h-65q29 96 61 241.5t49 259.5h117z" />
+<glyph unicode="&#x201c;" horiz-adv-x="614" d="M358 961l-12 20q34 120 83 255t91 226h66q-30 -98 -63 -248.5t-48 -252.5h-117zM41 961l-12 20q32 112 81.5 251t92.5 230h65q-30 -101 -64.5 -257t-45.5 -244h-117z" />
+<glyph unicode="&#x201d;" horiz-adv-x="614" d="M256 1462l12 -20q-75 -265 -174 -481h-65q29 96 61 241.5t49 259.5h117zM573 1462l13 -20q-36 -128 -85 -261t-89 -220h-66q30 98 63 248.5t48 252.5h116z" />
+<glyph unicode="&#x201e;" horiz-adv-x="768" d="M68 0zM295 238l12 -20q-75 -265 -174 -481h-65q29 96 61 241.5t49 259.5h117zM612 238l13 -20q-36 -128 -85 -261t-89 -220h-66q30 98 63 248.5t48 252.5h116z" />
+<glyph unicode="&#x2022;" horiz-adv-x="770" d="M231 748q0 89 40.5 134.5t113.5 45.5t113.5 -47t40.5 -133q0 -85 -41 -133t-113 -48t-113 47t-41 134z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1466" d="M162 0zM162 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98zM651 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98zM1141 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="524" d="M82 543l309 393l62 -43l-254 -363l254 -362l-62 -43l-309 391v27z" />
+<glyph unicode="&#x203a;" horiz-adv-x="524" d="M442 518l-309 -393l-61 43l254 362l-254 363l61 43l309 -391v-27z" />
+<glyph unicode="&#x2044;" horiz-adv-x="246" d="M573 1462l-811 -1462h-94l811 1462h94z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="688" d="M657 827h-129v-241h-90v241h-413v60l407 581h96v-563h129v-78zM438 905v221q0 132 8 232q-6 -12 -21.5 -35.5t-295.5 -417.5h309z" />
+<glyph unicode="&#x20ac;" d="M803 1397q-174 0 -288 -125.5t-155 -364.5h502v-82h-510l-4 -104v-24q0 -65 4 -87h449v-82h-443q30 -217 147.5 -338.5t301.5 -121.5q148 0 287 65v-94q-81 -34 -150.5 -46.5t-140.5 -12.5q-228 0 -367.5 140t-181.5 408h-180v82h172q-4 38 -4 113l4 102h-172v82h184 q39 272 183 425t362 153q88 0 161 -17t148 -57l-39 -86q-132 72 -270 72z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1485" d="M313 741h-86v643h-217v78h522v-78h-219v-643zM913 741l-221 609h-6l4 -201v-408h-82v721h125l221 -606l224 606h125v-721h-86v398l4 207h-7l-227 -605h-74z" />
+<glyph unicode="&#x2212;" d="M111 682v82h948v-82h-948z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1085" d="M0 1085h1085v-1085h-1085v1085z" />
+<glyph horiz-adv-x="1219" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Light-webfont.woff b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Light-webfont.woff
new file mode 100644
index 0000000..e786074
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Light-webfont.woff
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.eot b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.eot
new file mode 100644
index 0000000..8f44592
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.eot
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.svg b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.svg
new file mode 100644
index 0000000..431d7e3
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.svg
@@ -0,0 +1,1835 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sanslight_italic" horiz-adv-x="1128" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb00;" horiz-adv-x="1155" d="M-131 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h477l35 160q35 168 116.5 244t227.5 76q73 0 166 -31 l-24 -80q-87 27 -148 27q-97 0 -154.5 -54.5t-82.5 -177.5l-35 -164h248l-17 -81h-248l-252 -1190q-34 -165 -105.5 -236.5t-193.5 -71.5q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l244 1166h-477l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1040" d="M0 0zM739 0h-98l231 1087h96zM915 1366q0 55 22 88t60 33q57 0 57 -72q0 -57 -22 -90t-57 -33q-29 0 -44.5 19.5t-15.5 54.5zM-148 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31 l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h248l-16 -81h-248l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1042" d="M0 0zM737 0h-94l334 1556h94zM-148 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h248l-16 -81h-248 l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="1616" d="M0 0zM-148 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h477l35 160q35 168 116.5 244t227.5 76 q73 0 166 -31l-24 -80q-87 27 -148 27q-97 0 -154.5 -54.5t-82.5 -177.5l-35 -164h248l-17 -81h-248l-252 -1190q-34 -165 -105.5 -236.5t-193.5 -71.5q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l244 1166h-477l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z M1315 0h-98l231 1087h96zM1491 1366q0 55 22 88t60 33q57 0 57 -72q0 -57 -22 -90t-57 -33q-29 0 -44.5 19.5t-15.5 54.5z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="1626" d="M0 0zM-148 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h477l35 160q35 168 116.5 244t227.5 76 q73 0 166 -31l-24 -80q-87 27 -148 27q-97 0 -154.5 -54.5t-82.5 -177.5l-35 -164h248l-17 -81h-248l-252 -1190q-34 -165 -105.5 -236.5t-193.5 -71.5q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l244 1166h-477l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z M1321 0h-94l334 1556h94z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="502" d="M248 377h-62l203 1085h119zM80 57q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-68 -34.5q-67 0 -67 73z" />
+<glyph unicode="&#x22;" horiz-adv-x="721" d="M455 1462l-146 -528h-61l80 528h127zM784 1462l-145 -528h-61l79 528h127z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M389 530l119 398h-297l8 80h311l134 454h90l-136 -454h365l135 454h86l-135 -454h285l-8 -80h-302l-118 -398h303l-8 -79h-320l-133 -451h-90l135 451h-360l-134 -451h-88l134 451h-283l8 79h299zM475 530h363l120 398h-362z" />
+<glyph unicode="$" d="M928 467q0 -151 -110.5 -243t-297.5 -103l-53 -240h-82l51 240q-79 2 -158 18t-137 43v94q65 -34 153.5 -53.5t160.5 -19.5l110 512q-110 53 -153 91t-66.5 87.5t-23.5 116.5q0 155 105.5 250.5t272.5 99.5l41 192h80l-41 -192q149 -5 277 -68l-35 -78q-110 61 -256 70 l-109 -514q124 -60 172.5 -99.5t73.5 -88.5t25 -115zM537 203q142 7 223.5 74.5t81.5 183.5q0 76 -48 129.5t-157 97.5zM686 1284q-134 -9 -205 -80t-71 -186q0 -78 37 -128.5t137 -96.5z" />
+<glyph unicode="%" horiz-adv-x="1556" d="M1458 1462l-1139 -1462h-106l1135 1462h110zM1520 612q0 -175 -50 -327t-136 -230t-197 -78q-112 0 -172 75.5t-60 223.5q0 160 52 312t138 229.5t193 77.5q121 0 176.5 -71.5t55.5 -211.5zM1284 821q-80 0 -146.5 -72.5t-106.5 -202.5t-40 -263q0 -116 41 -174t113 -58 q130 0 209.5 166.5t79.5 386.5q0 109 -36 163t-114 54zM760 1198q0 -175 -50 -327t-136 -230t-197 -78q-112 0 -172 75.5t-60 223.5q0 160 52 312t138 229.5t193 77.5q232 0 232 -283zM524 1407q-79 0 -145 -71.5t-107 -203t-41 -264.5q0 -115 41 -173t113 -58 q84 0 148.5 72t102.5 204t38 277q0 109 -36 163t-114 54z" />
+<glyph unicode="&#x26;" horiz-adv-x="1331" d="M748 1395q-125 0 -194 -68t-69 -192q0 -132 109 -281q203 89 279.5 163.5t76.5 182.5q0 91 -56.5 143t-145.5 52zM465 63q108 0 211.5 42.5t222.5 146.5l-352 493q-164 -79 -232 -134.5t-103.5 -124t-35.5 -158.5q0 -119 78 -192t211 -73zM78 324q0 162 99 277.5 t325 215.5l-41 67q-78 128 -78 251q0 157 101 253.5t264 96.5q145 0 227 -76.5t82 -206.5q0 -85 -41 -154t-121 -128t-256 -138l330 -463q73 75 135.5 176.5t91.5 186.5h111q-102 -247 -285 -436l184 -246h-123l-131 184q-121 -108 -242 -156t-266 -48q-167 0 -266.5 94 t-99.5 250z" />
+<glyph unicode="'" horiz-adv-x="403" d="M461 1462l-146 -528h-61l80 528h127z" />
+<glyph unicode="(" horiz-adv-x="526" d="M104 270q0 343 122 633t382 559h105q-259 -276 -384.5 -568t-125.5 -618q0 -317 127 -600h-80q-146 262 -146 594z" />
+<glyph unicode=")" horiz-adv-x="526" d="M453 868q0 -345 -123.5 -636t-380.5 -556h-105q257 274 383.5 566.5t126.5 619.5q0 148 -28.5 294t-98.5 306h80q146 -262 146 -594z" />
+<glyph unicode="*" horiz-adv-x="1137" d="M834 1540l-109 -405l438 8l-8 -107l-416 29l181 -401l-115 -37l-135 417l-285 -348l-78 78l318 318l-392 125l39 102l394 -168l47 408z" />
+<glyph unicode="+" d="M563 672h-401v100h401v404h101v-404h401v-100h-401v-400h-101v400z" />
+<glyph unicode="," horiz-adv-x="451" d="M250 238l8 -23q-34 -92 -114 -233.5t-160 -245.5h-74q79 132 141 271t88 231h111z" />
+<glyph unicode="-" horiz-adv-x="629" d="M82 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="." horiz-adv-x="485" d="M82 55q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73z" />
+<glyph unicode="/" horiz-adv-x="641" d="M827 1462l-817 -1462h-110l815 1462h112z" />
+<glyph unicode="0" d="M1075 1016q0 -201 -41 -405t-116.5 -346t-183.5 -213.5t-242 -71.5q-176 0 -264.5 126.5t-88.5 387.5q0 186 44.5 381.5t124 334t187 207t240.5 68.5q340 0 340 -469zM723 1397q-134 0 -241.5 -113t-173.5 -329t-66 -451q0 -222 62.5 -329t197.5 -107q139 0 244 112 t166 337t61 489q0 199 -59.5 295t-190.5 96z" />
+<glyph unicode="1" d="M537 0h-105l225 1055q19 92 74 293q-42 -36 -75.5 -61t-249.5 -161l-52 78l406 258h90z" />
+<glyph unicode="2" d="M909 0h-870l22 104l449 402q198 177 284 276.5t126.5 186.5t40.5 180q0 112 -66 178t-197 66q-176 0 -333 -129l-54 73q180 146 394 146q173 0 268.5 -85t95.5 -237q0 -110 -43.5 -208.5t-141.5 -211.5t-311 -303l-383 -338v-4h736z" />
+<glyph unicode="3" d="M1049 1174q0 -162 -106 -275t-286 -143v-4q117 -24 185.5 -115.5t68.5 -226.5q0 -134 -64 -233t-179.5 -148t-274.5 -49q-96 0 -184.5 20.5t-153.5 52.5v101q172 -86 344 -86q197 0 303.5 89.5t106.5 252.5q0 145 -89 223t-247 78h-117l21 96h110q209 0 333 95.5 t124 258.5q0 114 -63.5 175t-188.5 61q-167 0 -344 -131l-49 75q84 67 188 104.5t218 37.5q161 0 252.5 -82.5t91.5 -226.5z" />
+<glyph unicode="4" d="M1071 371h-264l-80 -371h-96l80 371h-688l20 96l881 1010h118l-215 -1018h265zM729 459q79 369 119 558.5t86 354.5h-4q-66 -91 -129 -166l-651 -747h579z" />
+<glyph unicode="5" d="M582 879q188 0 292.5 -102t104.5 -279q0 -237 -148 -377.5t-407 -140.5q-84 0 -177.5 20t-158.5 51v107q170 -90 340 -90q208 0 328.5 114.5t120.5 313.5q0 140 -85 219.5t-225 79.5q-133 0 -243 -41l-66 49l193 659h624l-18 -96h-541l-149 -516q98 29 215 29z" />
+<glyph unicode="6" d="M170 428q0 283 105 544.5t269.5 385t383.5 123.5q123 0 182 -21l-18 -90q-86 23 -170 23q-233 0 -393.5 -174t-233.5 -502h8q68 94 164 143t211 49q161 0 250.5 -100.5t89.5 -282.5q0 -156 -60 -281t-171 -195t-257 -70q-171 0 -265.5 119t-94.5 329zM543 68 q112 0 196.5 58.5t130 162t45.5 229.5q0 146 -67 224.5t-195 78.5q-81 0 -154 -31.5t-129 -87t-78 -115t-22 -173.5q0 -164 72.5 -255t200.5 -91z" />
+<glyph unicode="7" d="M244 0l796 1366h-766l23 96h858l-20 -110l-779 -1352h-112z" />
+<glyph unicode="8" d="M737 1485q163 0 258 -85t95 -229q0 -138 -84 -234.5t-285 -172.5q130 -78 190 -170.5t60 -208.5t-58 -208t-165.5 -144.5t-260.5 -52.5q-178 0 -283.5 92.5t-105.5 253.5q0 159 100.5 268.5t321.5 187.5q-100 72 -144 152t-44 180q0 159 114 265t291 106zM610 733 q-218 -73 -313.5 -167.5t-95.5 -225.5q0 -136 77.5 -206.5t219.5 -70.5q168 0 270 91t102 233q0 104 -62 189t-198 157zM727 1399q-130 0 -214.5 -82t-84.5 -203q0 -91 41.5 -159t157.5 -142q192 62 279 144t87 206q0 109 -70.5 172.5t-195.5 63.5z" />
+<glyph unicode="9" d="M1059 1032q0 -288 -101.5 -548t-263.5 -382t-393 -122q-114 0 -186 22v90q87 -29 192 -29q474 0 627 674h-8q-140 -192 -367 -192q-162 0 -255 105t-93 284q0 155 59.5 281t170.5 196t257 70q174 0 267.5 -115.5t93.5 -333.5zM686 1393q-112 0 -197.5 -58.5 t-130.5 -162.5t-45 -230q0 -145 67.5 -225t192.5 -80q83 0 157.5 32.5t129 87.5t76.5 114t22 176q0 166 -71 256t-201 90z" />
+<glyph unicode=":" horiz-adv-x="485" d="M260 989q0 57 25.5 89t68.5 32q66 0 66 -72q0 -55 -25 -89t-67 -34q-68 0 -68 74zM102 55q0 56 25.5 88.5t69.5 32.5q65 0 65 -72q0 -55 -25.5 -88.5t-66.5 -33.5q-68 0 -68 73z" />
+<glyph unicode=";" horiz-adv-x="485" d="M287 238l8 -23q-35 -96 -118.5 -242t-156.5 -237h-73q79 132 141 271t88 231h111zM266 989q0 57 25.5 89t68.5 32q66 0 66 -72q0 -55 -25 -89t-67 -34q-68 0 -68 74z" />
+<glyph unicode="&#x3c;" d="M1051 262l-914 414v74l914 471v-103l-801 -399l801 -350v-107z" />
+<glyph unicode="=" d="M168 885v100h903v-100h-903zM168 461v98h903v-98h-903z" />
+<glyph unicode="&#x3e;" d="M170 369l801 350l-801 399v103l915 -471v-74l-915 -414v107z" />
+<glyph unicode="?" horiz-adv-x="799" d="M242 362l6 29q29 132 82 206.5t157 147.5q118 84 175 145.5t86.5 127.5t29.5 141q0 108 -67.5 170t-182.5 62q-139 0 -307 -101l-39 86q85 49 171.5 78t187.5 29q159 0 250.5 -84.5t91.5 -229.5q0 -127 -66 -234t-231 -226q-85 -61 -132.5 -108.5t-73 -95t-46.5 -143.5 h-92zM170 59q0 56 25 88.5t69 32.5q66 0 66 -71q0 -54 -24.5 -88.5t-67.5 -34.5q-68 0 -68 73z" />
+<glyph unicode="@" horiz-adv-x="1724" d="M1688 858q0 -179 -56 -323.5t-154.5 -227t-211.5 -82.5q-98 0 -154.5 55t-56.5 144h-4q-54 -97 -132.5 -148t-168.5 -51q-112 0 -178 73t-66 202q0 156 63 283t178 198.5t261 71.5q122 0 252 -52l-84 -315q-39 -140 -39 -221q0 -71 34.5 -111.5t100.5 -40.5 q86 0 160 73.5t117.5 198t43.5 251.5q0 156 -65 277t-187 188t-292 67q-235 0 -424.5 -108.5t-295.5 -304t-106 -439.5q0 -288 155 -449t435 -161q207 0 420 82v-90q-210 -82 -428 -82q-203 0 -357.5 82.5t-238.5 239t-84 370.5q0 276 121.5 493.5t337 337t473.5 119.5 q189 0 330.5 -72.5t221 -213t79.5 -314.5zM1008 969q-113 0 -204.5 -59t-142.5 -165.5t-51 -238.5q0 -92 40.5 -142.5t113.5 -50.5q101 0 180.5 89t124.5 255l78 289q-66 23 -139 23z" />
+<glyph unicode="A" horiz-adv-x="1059" d="M805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449z" />
+<glyph unicode="B" horiz-adv-x="1202" d="M412 1462h379q190 0 290.5 -84t100.5 -241q0 -153 -90 -249t-254 -124v-4q125 -31 188.5 -113.5t63.5 -204.5q0 -205 -140.5 -323.5t-390.5 -118.5h-457zM377 811h278q206 0 313 81t107 238q0 119 -78 180.5t-229 61.5h-272zM358 721l-135 -631h342q201 0 309.5 87.5 t108.5 256.5q0 145 -90 216t-275 71h-260z" />
+<glyph unicode="C" horiz-adv-x="1169" d="M961 1389q-197 0 -351.5 -104.5t-245 -304.5t-90.5 -441q0 -225 110.5 -346t317.5 -121q140 0 304 51v-94q-156 -49 -316 -49q-252 0 -386 145t-134 410q0 266 104.5 488t284.5 341t402 119q177 0 307 -68l-45 -90q-55 30 -124.5 47t-137.5 17z" />
+<glyph unicode="D" horiz-adv-x="1350" d="M1288 879q0 -253 -109.5 -461.5t-300.5 -313t-446 -104.5h-330l310 1462h305q282 0 426.5 -147.5t144.5 -435.5zM430 90q226 0 394.5 94.5t261 275.5t92.5 412q0 498 -476 498h-206l-275 -1280h209z" />
+<glyph unicode="E" horiz-adv-x="1067" d="M829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627z" />
+<glyph unicode="F" horiz-adv-x="981" d="M205 0h-103l310 1462h708l-20 -94h-604l-134 -620h570l-21 -95h-569z" />
+<glyph unicode="G" horiz-adv-x="1374" d="M856 735h406l-150 -682q-211 -73 -405 -73q-257 0 -397 146t-140 421q0 265 105 483.5t283.5 335.5t395.5 117q113 0 203 -19t184 -59l-38 -94q-110 46 -189.5 62t-167.5 16q-184 0 -339 -107.5t-244 -301.5t-89 -433q0 -229 114.5 -352t326.5 -123q155 0 309 47l117 526 h-303z" />
+<glyph unicode="H" horiz-adv-x="1366" d="M1063 0h-100l151 719h-760l-149 -719h-103l310 1462h102l-139 -649h760l137 649h100z" />
+<glyph unicode="I" horiz-adv-x="504" d="M102 0l310 1462h98l-309 -1462h-99z" />
+<glyph unicode="J" horiz-adv-x="477" d="M-180 -360q-48 0 -88 8t-56 16l11 92q57 -20 137 -20q213 0 262 241l309 1485h105l-314 -1491q-35 -170 -125 -250.5t-241 -80.5z" />
+<glyph unicode="K" horiz-adv-x="1122" d="M979 0h-111l-342 788l-190 -153l-131 -635h-103l310 1462h102l-158 -723l133 121l680 602h138l-699 -610z" />
+<glyph unicode="L" horiz-adv-x="938" d="M102 0l310 1462h102l-289 -1366h621l-23 -96h-721z" />
+<glyph unicode="M" horiz-adv-x="1669" d="M772 205l733 1257h150l-301 -1462h-101l191 901q79 369 100 447h-6l-780 -1348h-51l-222 1348h-6q-20 -154 -78 -426l-196 -922h-96l309 1462h143l205 -1257h6z" />
+<glyph unicode="N" horiz-adv-x="1372" d="M1069 0h-86l-516 1284h-8q-23 -149 -48 -273t-214 -1011h-95l310 1462h80l522 -1294h8q23 176 74 416l188 878h94z" />
+<glyph unicode="O" horiz-adv-x="1464" d="M1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300t79 430.5 q0 240 -104.5 364t-310.5 124z" />
+<glyph unicode="P" horiz-adv-x="1145" d="M1145 1102q0 -500 -610 -500h-201l-129 -602h-103l310 1462h315q202 0 310 -92.5t108 -267.5zM350 694h191q252 0 373.5 96.5t121.5 305.5q0 274 -329 274h-211z" />
+<glyph unicode="Q" horiz-adv-x="1464" d="M1403 911q0 -216 -70 -418t-186.5 -324t-274.5 -167l267 -350h-142l-231 332l-74 -4q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128 q169 0 300 98.5t210 300t79 430.5q0 240 -104.5 364t-310.5 124z" />
+<glyph unicode="R" horiz-adv-x="1145" d="M336 633l-131 -633h-103l310 1462h303q430 0 430 -360q0 -182 -103.5 -303t-281.5 -152q201 -591 221 -647h-111l-211 633h-323zM358 725h252q208 0 317 95.5t109 281.5q0 268 -329 268h-211z" />
+<glyph unicode="S" horiz-adv-x="1020" d="M895 403q0 -126 -65.5 -224.5t-179.5 -148.5t-269 -50q-88 0 -172.5 17t-171.5 58v109q163 -92 348 -92q188 0 295.5 86.5t107.5 232.5q0 61 -17 104.5t-52.5 78.5t-91 68t-131.5 75q-150 76 -209.5 164t-59.5 206t59 207.5t165 139t237 49.5q99 0 180 -17.5t168 -60.5 l-32 -94q-66 40 -151.5 63t-164.5 23q-163 0 -259.5 -82.5t-96.5 -218.5q0 -103 49 -170t182 -133q154 -79 213.5 -130t89 -113t29.5 -147z" />
+<glyph unicode="T" horiz-adv-x="985" d="M438 0h-102l289 1368h-432l20 94h973l-19 -94h-440z" />
+<glyph unicode="U" horiz-adv-x="1370" d="M1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101z" />
+<glyph unicode="V" horiz-adv-x="1079" d="M457 147q51 111 124 247l572 1068h117l-799 -1462h-88l-182 1462h100l117 -950q26 -217 35 -365h4z" />
+<glyph unicode="W" horiz-adv-x="1702" d="M1018 1341q-27 -76 -62 -153.5t-563 -1187.5h-82l-73 1462h100l47 -1031l4 -165l-2 -86h6q85 226 170 398l434 884h105l61 -878q19 -266 19 -410h6q30 86 61.5 163t493.5 1125h108q-169 -365 -330.5 -731t-328.5 -731h-78l-78 1075q-11 142 -11 219l1 47h-8z" />
+<glyph unicode="X" horiz-adv-x="971" d="M879 0h-107l-254 678l-526 -678h-127l608 766l-272 696h106l240 -626l483 626h119l-555 -719z" />
+<glyph unicode="Y" horiz-adv-x="965" d="M494 645l544 817h117l-631 -932l-108 -530h-105l119 545l-237 917h100z" />
+<glyph unicode="Z" d="M913 0h-925l22 92l1069 1276h-764l23 94h887l-19 -88l-1069 -1280h799z" />
+<glyph unicode="[" horiz-adv-x="537" d="M369 -324h-426l376 1786h429l-19 -90h-330l-340 -1605h330z" />
+<glyph unicode="\" horiz-adv-x="641" d="M295 1462l242 -1462h-82l-246 1462h86z" />
+<glyph unicode="]" horiz-adv-x="537" d="M203 1462h426l-377 -1786h-428l18 91h330l340 1605h-330z" />
+<glyph unicode="^" horiz-adv-x="1047" d="M70 569l587 906h91l260 -906h-105l-217 809l-500 -809h-116z" />
+<glyph unicode="_" horiz-adv-x="801" d="M625 -291h-807l18 86h807z" />
+<glyph unicode="`" horiz-adv-x="1135" d="M766 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="a" horiz-adv-x="1133" d="M655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82t-164 -245.5 t-64 -325.5q0 -152 50 -223.5t151 -71.5z" />
+<glyph unicode="b" horiz-adv-x="1151" d="M500 -16q-113 0 -186 59t-97 166h-6l-55 -209h-80l327 1556h95q-131 -628 -162 -751h6q93 156 199 229.5t231 73.5q281 0 281 -375q0 -203 -76 -380t-201 -273t-276 -96zM750 1018q-91 0 -180 -61.5t-160.5 -169.5t-106.5 -235t-35 -206q0 -129 64 -202.5t166 -73.5 q124 0 224 83t164 245t64 325q0 152 -49 223.5t-151 71.5z" />
+<glyph unicode="c" horiz-adv-x="887" d="M477 -20q-174 0 -274.5 110.5t-100.5 306.5q0 193 73.5 361.5t198.5 257t290 88.5q134 0 241 -43l-28 -90q-107 47 -218 47q-129 0 -232.5 -77t-162.5 -222t-59 -320q0 -158 73.5 -243.5t208.5 -85.5q71 0 131.5 13t131.5 46v-92q-116 -57 -273 -57z" />
+<glyph unicode="d" horiz-adv-x="1133" d="M655 1104q230 0 279 -219h4q12 66 143 671h99l-330 -1556h-82l45 274h-6q-173 -294 -424 -294q-281 0 -281 374q0 193 71.5 370t197.5 278.5t284 101.5zM406 70q89 0 178.5 62.5t160 168t106.5 231t36 209.5q0 126 -61.5 201.5t-168.5 75.5q-124 0 -224 -83t-164 -242.5 t-64 -327.5q0 -295 201 -295z" />
+<glyph unicode="e" horiz-adv-x="928" d="M469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5t-162.5 -308.5h49 q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5z" />
+<glyph unicode="f" horiz-adv-x="578" d="M-131 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h248l-16 -81h-248l-252 -1190q-33 -161 -104 -234.5 t-195 -73.5z" />
+<glyph unicode="g" horiz-adv-x="1040" d="M1100 1087l-17 -79l-243 -11q26 -28 43.5 -84t17.5 -114q0 -109 -54.5 -206.5t-148 -145.5t-213.5 -48q-63 0 -77 9q-80 -33 -124 -73t-44 -81t31.5 -64.5t113.5 -31.5l121 -11q346 -31 346 -264q0 -112 -65 -197.5t-187 -131.5t-291 -46q-186 0 -291.5 72t-105.5 203 q0 236 309 334q-78 42 -78 123q0 123 191 202q-71 36 -110.5 105.5t-39.5 157.5q0 111 53.5 204t148 146t206.5 53q69 0 147 -21h361zM14 -207q0 -101 81 -150t224 -49q203 0 317 74.5t114 204.5q0 85 -62.5 130.5t-218.5 57.5l-160 15q-157 -45 -226 -114.5t-69 -168.5z M285 711q0 -112 58.5 -170t164.5 -58q88 0 154 37t102.5 114t36.5 169q0 104 -56 161.5t-157 57.5q-93 0 -161 -43t-105 -116t-37 -152z" />
+<glyph unicode="h" horiz-adv-x="1143" d="M764 0l149 692q21 92 21 156q0 80 -43.5 125t-134.5 45q-112 0 -210.5 -67t-166 -188t-103.5 -286l-102 -477h-98l332 1556h96l-86 -411q-44 -200 -66 -279h6q78 113 186.5 175.5t229.5 62.5q124 0 192 -65t68 -183q0 -70 -24 -182l-148 -674h-98z" />
+<glyph unicode="i" horiz-adv-x="475" d="M174 0h-98l231 1087h96zM350 1366q0 55 22 88t60 33q57 0 57 -72q0 -57 -22 -90t-57 -33q-29 0 -44.5 19.5t-15.5 54.5z" />
+<glyph unicode="j" horiz-adv-x="475" d="M-166 -492q-62 0 -113 19v92q47 -22 113 -22q82 0 128.5 51.5t72.5 177.5l266 1261h96l-268 -1271q-35 -165 -106.5 -236.5t-188.5 -71.5zM350 1366q0 55 22 88t60 33q57 0 57 -72q0 -57 -22 -90t-57 -33q-29 0 -44.5 19.5t-15.5 54.5z" />
+<glyph unicode="k" horiz-adv-x="944" d="M270 477l609 610h125l-474 -469l297 -618h-106l-264 559l-205 -188l-80 -371h-96l330 1556h96l-166 -780l-70 -299h4z" />
+<glyph unicode="l" horiz-adv-x="475" d="M170 0h-94l334 1556h94z" />
+<glyph unicode="m" horiz-adv-x="1751" d="M711 0l147 674q25 125 25 162q0 182 -154 182q-106 0 -200 -67.5t-159 -188.5t-100 -287l-100 -475h-98l231 1087h80l-33 -210h6q80 113 181.5 170t212.5 57q106 0 163 -67t60 -195h6q77 129 181 195.5t222 66.5q117 0 182.5 -61.5t65.5 -176.5q0 -29 -2.5 -56.5 t-19.5 -119.5l-152 -690h-100l149 680q25 120 25 176q0 77 -43 119.5t-119 42.5q-157 0 -277.5 -137.5t-168.5 -362.5l-109 -518h-102z" />
+<glyph unicode="n" horiz-adv-x="1143" d="M764 0l149 692q21 92 21 156q0 80 -43.5 125t-134.5 45q-112 0 -210.5 -67t-166 -187.5t-103.5 -286.5l-102 -477h-98l231 1087h82l-37 -221h6q164 238 416 238q130 0 195 -64t65 -184q0 -70 -24 -182l-148 -674h-98z" />
+<glyph unicode="o" horiz-adv-x="1124" d="M649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83z" />
+<glyph unicode="p" horiz-adv-x="1149" d="M498 -16q-230 0 -279 219h-4q-13 -72 -149 -695h-99l336 1579h82l-45 -274h6q91 153 195.5 224t228.5 71q135 0 208 -92.5t73 -282.5q0 -195 -72 -371t-197.5 -277t-283.5 -101zM748 1018q-87 0 -174 -58.5t-161.5 -167.5t-110.5 -237.5t-36 -208.5q0 -125 61.5 -200.5 t168.5 -75.5q124 0 225 84t164 243.5t63 325.5q0 295 -200 295z" />
+<glyph unicode="q" horiz-adv-x="1157" d="M651 1104q109 0 183.5 -58t99.5 -167h6l55 208h80l-327 -1556h-95l98 470l64 282h-6q-93 -156 -199 -229.5t-231 -73.5q-281 0 -281 374q0 201 75.5 379t200.5 274.5t277 96.5zM401 70q92 0 182 62.5t160.5 171.5t105 236.5t34.5 200.5q0 130 -63.5 203.5t-166.5 73.5 q-124 0 -224 -83t-164 -245t-64 -325q0 -143 45.5 -219t154.5 -76z" />
+<glyph unicode="r" horiz-adv-x="752" d="M713 1106q69 0 123 -14l-21 -93q-47 15 -113 15q-94 0 -179 -64t-153 -192t-100 -277l-100 -481h-98l231 1087h80l-29 -204h6q73 94 123 135.5t106.5 64.5t123.5 23z" />
+<glyph unicode="s" horiz-adv-x="827" d="M713 295q0 -144 -103 -229.5t-280 -85.5q-173 0 -305 75v107q74 -46 153 -71t148 -25q138 0 211 57.5t73 163.5q0 42 -15.5 74t-50 61.5t-132.5 85.5q-148 80 -200 145.5t-52 159.5q0 128 98.5 209.5t259.5 81.5q75 0 158.5 -17.5t140.5 -46.5l-35 -88q-136 64 -264 64 q-116 0 -186 -53t-70 -138q0 -55 17 -88t60.5 -68.5t119.5 -76.5q114 -63 161.5 -103.5t70 -86.5t22.5 -107z" />
+<glyph unicode="t" horiz-adv-x="616" d="M694 1087l-18 -81h-283l-135 -635q-22 -99 -22 -164q0 -139 126 -139q68 0 152 26v-86q-101 -28 -170 -28q-99 0 -153 54.5t-54 158.5q0 73 29 206l129 607h-182l14 67l184 17l97 253h55l-55 -256h286z" />
+<glyph unicode="u" horiz-adv-x="1143" d="M381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100z" />
+<glyph unicode="v" horiz-adv-x="895" d="M276 0l-172 1087h101l108 -735q26 -165 33 -254h6q51 115 129 256l406 733h102l-600 -1087h-113z" />
+<glyph unicode="w" horiz-adv-x="1393" d="M838 0l-60 686q-14 224 -14 266h-6q-34 -92 -144 -290l-356 -662h-117l-20 1087h92l13 -821l-3 -157h6q61 134 150 297l373 681h77l64 -681q14 -147 14 -297h6l24 61l101 236l320 681h96l-508 -1087h-108z" />
+<glyph unicode="x" horiz-adv-x="922" d="M442 483l-393 -483h-121l471 559l-245 528h100l207 -462l373 462h120l-448 -534l258 -553h-98z" />
+<glyph unicode="y" horiz-adv-x="920" d="M123 1087h100l82 -548q51 -351 55 -449h11q43 105 186 367l348 630h103l-713 -1290q-72 -127 -122.5 -178t-114 -81t-146.5 -30q-68 0 -129 21v92q71 -27 137 -27q80 0 147 49.5t130 164.5t100 184z" />
+<glyph unicode="z" horiz-adv-x="887" d="M700 0h-729l15 72l776 932h-543l17 83h659l-18 -83l-762 -920h602z" />
+<glyph unicode="{" horiz-adv-x="709" d="M424 -324q-256 0 -256 199q0 45 16 115l56 252q18 90 18 127q0 159 -199 159l21 78q126 0 191 49t89 158l89 393q30 135 106 195.5t215 60.5h29l-17 -86q-86 -2 -129 -20.5t-69.5 -61.5t-44.5 -120l-74 -338q-30 -134 -91.5 -194.5t-164.5 -78.5v-4q68 -18 105.5 -68.5 t37.5 -121.5q0 -52 -24 -164l-47 -225q-13 -58 -13 -101q0 -61 37.5 -89t138.5 -28v-86h-20z" />
+<glyph unicode="|" d="M584 1561h100v-2071h-100v2071z" />
+<glyph unicode="}" horiz-adv-x="709" d="M332 1462q131 0 189.5 -51t58.5 -147q0 -41 -17 -115l-55 -252q-19 -95 -19 -127q0 -77 49.5 -118.5t149.5 -41.5l-20 -78q-125 0 -191 -48.5t-90 -157.5l-88 -394q-32 -139 -108.5 -197.5t-213.5 -58.5h-18v86q96 2 138 21t68.5 61t43.5 121l74 338q27 126 87.5 189.5 t168.5 82.5v5q-75 20 -109.5 72.5t-34.5 117.5q0 55 18 131l54 258q12 61 12 101q0 44 -18 69t-54 36t-116 11l20 86h21z" />
+<glyph unicode="~" d="M350 745q-49 0 -108 -30.5t-115 -89.5v94q108 110 233 110q61 0 115 -13.5t156 -57.5q126 -58 219 -58q54 0 107.5 29t117.5 96v-96q-111 -113 -233 -113q-117 0 -271 72q-62 29 -112.5 43t-108.5 14z" />
+<glyph unicode="&#xa1;" horiz-adv-x="502" d="M264 711h62l-203 -1086h-119zM432 1030q0 -56 -25 -88.5t-69 -32.5q-66 0 -66 72q0 55 25 89t68 34q67 0 67 -74z" />
+<glyph unicode="&#xa2;" d="M578 -20h-93l45 215q-132 25 -206 132.5t-74 272.5q0 184 63.5 341t178 253t256.5 111l36 178h90l-38 -176q116 -4 217 -43l-29 -90q-107 47 -217 47q-130 0 -233 -76t-162.5 -221t-59.5 -322q0 -164 74.5 -247t208.5 -83q127 0 264 60v-92q-118 -58 -281 -58z" />
+<glyph unicode="&#xa3;" d="M879 1479q170 0 313 -78l-39 -84l-54 26q-108 50 -231 50q-134 0 -220.5 -74.5t-117.5 -220.5l-73 -340h409l-18 -82h-408l-57 -268q-50 -225 -188 -314h759l-20 -94h-938l16 84q93 11 165.5 95.5t107.5 236.5l57 260h-199l17 82h198l76 350q41 187 155 279t290 92z" />
+<glyph unicode="&#xa4;" d="M262 723q0 118 74 225l-129 129l63 64l127 -129q105 78 230 78q118 0 223 -78l131 129l61 -62l-129 -129q78 -106 78 -227q0 -135 -78 -227l129 -127l-61 -62l-131 127q-104 -76 -223 -76q-126 0 -228 80l-129 -129l-61 62l127 127q-74 98 -74 225zM350 723 q0 -116 80 -196.5t197 -80.5t198.5 81t81.5 196q0 75 -36.5 140t-102.5 104t-141 39q-114 0 -195.5 -82t-81.5 -201z" />
+<glyph unicode="&#xa5;" d="M584 645l544 817h117l-559 -823h266l-16 -76h-315l-39 -190h317l-18 -84h-316l-59 -289h-105l64 289h-299l18 84h299l41 190h-301l17 76h258l-215 823h100z" />
+<glyph unicode="&#xa6;" d="M578 1561h100v-756h-100v756zM578 246h100v-756h-100v756z" />
+<glyph unicode="&#xa7;" horiz-adv-x="995" d="M211 778q0 101 69.5 182t198.5 130q-64 31 -103.5 85.5t-39.5 120.5q0 74 46 134.5t132.5 94.5t202.5 34q163 0 289 -58l-31 -80q-138 54 -264 54q-124 0 -202.5 -46.5t-78.5 -123.5q0 -59 46 -104.5t183 -106.5q112 -52 158.5 -89.5t71 -85t24.5 -110.5 q0 -197 -249 -317q122 -64 122 -197q0 -86 -48 -153.5t-139.5 -105.5t-221.5 -38q-157 0 -275 53v99q47 -27 126 -46.5t153 -19.5q149 0 228 52.5t79 150.5q0 62 -42.5 106t-166.5 96q-155 65 -211.5 130t-56.5 159zM559 1038q-119 -30 -187.5 -97.5t-68.5 -154.5 q0 -57 24.5 -96.5t81 -73t187.5 -81.5q103 49 162 113.5t59 156.5q0 72 -57.5 126t-200.5 107z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1135" d="M836 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM492 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M944 1092q-142 0 -222.5 -94.5t-80.5 -264.5q0 -186 74.5 -275t220.5 -89q85 0 199 43v-88q-104 -45 -209 -45q-187 0 -288 116t-101 330q0 207 110 332t297 125q119 0 227 -52l-36 -83q-99 45 -191 45zM147 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275 t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM240 731q0 -178 88.5 -329.5t240.5 -240.5t330 -89q174 0 325 85.5t243 239t92 334.5q0 178 -89 330t-240.5 241t-330.5 89q-182 0 -335 -92t-238.5 -243t-85.5 -325z" />
+<glyph unicode="&#xaa;" horiz-adv-x="643" d="M487 1485q55 0 97.5 -29t66.5 -86h6l35 103h66l-137 -650h-72l22 125h-4q-96 -137 -223 -137q-80 0 -127 56.5t-47 164.5q0 189 90.5 321t226.5 132zM369 885q66 0 133.5 75.5t97.5 184.5q16 51 16 123q0 58 -36 100.5t-93 42.5q-94 0 -161.5 -111.5t-67.5 -271.5 q0 -143 111 -143z" />
+<glyph unicode="&#xab;" horiz-adv-x="860" d="M426 932l57 -49l-317 -336l213 -385l-64 -39l-254 418l2 26zM786 932l58 -49l-314 -336l209 -385l-63 -39l-254 418l2 26z" />
+<glyph unicode="&#xac;" d="M1028 772v-500h-100v400h-803v100h903z" />
+<glyph unicode="&#xad;" horiz-adv-x="629" d="M77 502zM77 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M758 731h112q93 0 144 46.5t51 135.5q0 172 -197 172h-110v-354zM1169 918q0 -80 -39.5 -141t-109.5 -93l237 -393h-120l-211 360h-168v-360h-101v880h211q143 0 222 -62t79 -191zM150 731q0 207 103.5 382t276.5 272.5t371 97.5q200 0 375 -100t276 -275t101 -377 q0 -197 -97 -370t-272 -277t-383 -104q-204 0 -376.5 100.5t-273.5 273t-101 377.5zM242 731q0 -178 88.5 -329.5t240.5 -240.5t330 -89q174 0 325 85.5t243 239t92 334.5q0 178 -89 330t-240.5 241t-330.5 89q-182 0 -335 -92t-238.5 -243t-85.5 -325z" />
+<glyph unicode="&#xaf;" horiz-adv-x="655" d="M1001 1556h-653l53 97h654z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M242 1190q0 120 85 206.5t208 86.5q122 0 207 -86.5t85 -206.5q0 -122 -85.5 -207.5t-206.5 -85.5q-122 0 -207.5 85.5t-85.5 207.5zM315 1190q0 -89 64.5 -153t155.5 -64q92 0 155.5 64t63.5 153q0 90 -64 155.5t-155 65.5q-90 0 -155 -65.5t-65 -155.5z" />
+<glyph unicode="&#xb1;" d="M528 629h-401v98h401v406h101v-406h401v-98h-401v-400h-101v400zM127 0v100h903v-100h-903z" />
+<glyph unicode="&#xb2;" horiz-adv-x="643" d="M604 586h-522l16 80l297 258q137 118 182.5 190.5t45.5 153.5q0 59 -38.5 97t-105.5 38q-95 0 -194 -76l-41 62q108 90 239 90q73 0 125 -27t78.5 -72t26.5 -100q0 -106 -59 -198.5t-183 -194.5l-266 -223h416z" />
+<glyph unicode="&#xb3;" horiz-adv-x="643" d="M705 1276q0 -85 -48.5 -148t-154.5 -88v-4q66 -16 105.5 -68t39.5 -124q0 -77 -39 -141t-109 -99t-161 -35q-59 0 -123.5 15.5t-105.5 40.5v90q46 -28 108 -48t125 -20q99 0 159 52.5t60 142.5q0 162 -196 162h-84l16 79h86q102 0 168.5 49.5t66.5 129.5 q0 68 -37.5 102.5t-105.5 34.5q-100 0 -199 -68l-40 64q109 86 251 86q100 0 159 -56.5t59 -148.5z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1135" d="M580 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1171" d="M238 242q0 -82 48.5 -127t135.5 -45q110 0 207 64.5t162.5 182.5t101.5 285l104 485h99l-234 -1087h-78l29 205h-6q-164 -221 -404 -221q-85 0 -139 32.5t-76 89.5h-6q-18 -132 -51 -284l-63 -314h-97l338 1579h101l-152 -698q-20 -96 -20 -147z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1208 -260h-100v1722h-227v-1722h-101v819q-64 -18 -145 -18q-216 0 -318 125t-102 376q0 260 109 387t342 127h542v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="485" d="M207 625zM207 698q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M197 -289q0 -94 -75.5 -148.5t-217.5 -54.5q-46 0 -78 7v79q30 -6 72 -6q198 0 198 115q0 97 -151 107l110 190h80l-78 -137q140 -30 140 -152z" />
+<glyph unicode="&#xb9;" horiz-adv-x="643" d="M512 1462h80l-186 -876h-84l118 569q5 21 11.5 50.5t14 60t15.5 59t15 49.5q-34 -31 -60 -51.5t-143 -93.5l-39 59z" />
+<glyph unicode="&#xba;" horiz-adv-x="655" d="M518 1479q105 0 165 -64t60 -180q0 -115 -40 -214t-114 -156.5t-175 -57.5q-114 0 -169 67.5t-55 184.5q0 112 41.5 209.5t116 154t170.5 56.5zM508 1405q-70 0 -124 -46.5t-84 -124.5t-30 -167q0 -186 156 -186q73 0 125.5 46.5t81.5 127.5t29 176q0 83 -39 128.5 t-115 45.5z" />
+<glyph unicode="&#xbb;" horiz-adv-x="860" d="M451 123l-58 49l314 336l-209 385l63 39l254 -418l-2 -27zM90 123l-57 49l313 336l-209 385l64 39l254 -418l-2 -27z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1481" d="M129 0zM1319 230h-131l-49 -229h-82l49 229h-391l21 76l506 577h86l-125 -581h133zM1121 302q61 294 79 365.5t29 105.5q-10 -16 -61 -79t-338 -392h291zM1323 1462l-1087 -1462h-107l1086 1462h108zM509 1462h80l-186 -876h-84l118 569q5 21 11.5 50.5t14 60t15.5 59 t15 49.5q-34 -31 -60 -51.5t-143 -93.5l-39 59z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1458" d="M53 0zM1278 1h-522l16 80l297 258q137 118 182.5 190.5t45.5 153.5q0 59 -38.5 97t-105.5 38q-95 0 -194 -76l-41 62q108 90 239 90q73 0 125 -27t78.5 -72t26.5 -100q0 -106 -59 -198.5t-183 -194.5l-266 -223h416zM431 1462h80l-186 -876h-84l118 569q5 21 11.5 50.5 t14 60t15.5 59t15 49.5q-34 -31 -60 -51.5t-143 -93.5l-39 59zM1247 1462l-1087 -1462h-107l1086 1462h108z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1458" d="M71 0zM1380 230h-131l-49 -229h-82l49 229h-391l21 76l506 577h86l-125 -581h133zM1182 302q61 294 79 365.5t29 105.5q-10 -16 -61 -79t-338 -392h291zM667 1276q0 -85 -48.5 -148t-154.5 -88v-4q66 -16 105.5 -68t39.5 -124q0 -77 -39 -141t-109 -99t-161 -35 q-59 0 -123.5 15.5t-105.5 40.5v90q46 -28 108 -48t125 -20q99 0 159 52.5t60 142.5q0 162 -196 162h-84l16 79h86q102 0 168.5 49.5t66.5 129.5q0 68 -37.5 102.5t-105.5 34.5q-100 0 -199 -68l-40 64q109 86 251 86q100 0 159 -56.5t59 -148.5zM1407 1462l-1087 -1462 h-107l1086 1462h108z" />
+<glyph unicode="&#xbf;" horiz-adv-x="799" d="M641 717l-6 -29q-28 -127 -79 -200t-161 -154q-118 -84 -175 -145.5t-86.5 -127.5t-29.5 -141q0 -106 65.5 -168.5t184.5 -62.5q141 0 308 100l38 -86q-85 -49 -170.5 -77.5t-187.5 -28.5q-159 0 -250.5 84.5t-91.5 228.5q0 133 70 240.5t227 220.5q85 61 133.5 109 t73 95t45.5 142h92zM713 1020q0 -56 -25.5 -88.5t-69.5 -32.5q-65 0 -65 72q0 56 25 89.5t67 33.5q68 0 68 -74z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM815 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM668 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM1007 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5 t92.5 -146.5v-29z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM911 1587q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5 q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM879 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM535 1704q0 49 20.5 78t56.5 29q54 0 54 -64 q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM945 1600q0 -92 -57.5 -148.5t-145.5 -56.5q-93 0 -148 52t-55 145q0 88 59.5 144t149.5 56q88 0 142.5 -50t54.5 -142zM867 1598 q0 57 -33.5 90t-87.5 33q-60 0 -93.5 -36t-33.5 -93t33 -90t90 -33q56 0 90.5 36t34.5 93z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1640" d="M1403 0h-727l110 522h-444l-328 -522h-131l946 1462h883l-20 -94h-625l-117 -553h590l-20 -94h-588l-135 -627h626zM408 627h401l156 741h-88z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1169" d="M170 0zM961 1389q-197 0 -351.5 -104.5t-245 -304.5t-90.5 -441q0 -225 110.5 -346t317.5 -121q140 0 304 51v-94q-156 -49 -316 -49q-252 0 -386 145t-134 410q0 266 104.5 488t284.5 341t402 119q177 0 307 -68l-45 -90q-55 30 -124.5 47t-137.5 17zM752 -289 q0 -94 -75.5 -148.5t-217.5 -54.5q-46 0 -78 7v79q30 -6 72 -6q198 0 198 115q0 97 -151 107l110 190h80l-78 -137q140 -30 140 -152z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1067" d="M102 0zM829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627zM891 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1067" d="M102 0zM829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627zM654 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xca;" horiz-adv-x="1067" d="M102 0zM829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627zM1036 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1067" d="M102 0zM829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627zM902 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM558 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xcc;" horiz-adv-x="504" d="M102 0zM102 0l310 1462h98l-309 -1462h-99zM525 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xcd;" horiz-adv-x="504" d="M102 0zM102 0l310 1462h98l-309 -1462h-99zM419 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xce;" horiz-adv-x="504" d="M102 0zM102 0l310 1462h98l-309 -1462h-99zM738 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xcf;" horiz-adv-x="504" d="M102 0zM102 0l310 1462h98l-309 -1462h-99zM604 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM260 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1352" d="M1288 879q0 -253 -109.5 -461.5t-300.5 -313t-446 -104.5h-330l144 676h-156l21 96h155l146 690h305q282 0 426.5 -147.5t144.5 -435.5zM430 90q226 0 394.5 94.5t261 275.5t92.5 412q0 498 -476 498h-206l-129 -598h378l-20 -96h-379l-125 -586h209z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1372" d="M102 0zM1069 0h-86l-516 1284h-8q-23 -149 -48 -273t-214 -1011h-95l310 1462h80l522 -1294h8q23 176 74 416l188 878h94zM1062 1587q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14 t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM989 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM844 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM1171 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM1077 1587q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z " />
+<glyph unicode="&#xd6;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM1031 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM687 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xd7;" d="M551 723l-330 332l70 69l330 -329l333 329l68 -67l-332 -334l332 -332l-68 -67l-333 329l-330 -327l-68 67z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1464" d="M1403 911q0 -187 -52 -365.5t-144.5 -304.5t-223 -193.5t-291.5 -67.5q-215 0 -348 112l-139 -170l-66 64l146 172q-113 149 -113 401q0 263 94 479.5t256.5 330.5t370.5 114q219 0 352 -121l133 168l70 -53l-145 -183q45 -51 72.5 -161t27.5 -222zM879 1389 q-134 0 -244 -59.5t-188.5 -170t-124.5 -267.5t-46 -319q0 -105 21.5 -191t56.5 -138l826 1032q-107 113 -301 113zM1294 901q0 85 -17.5 172t-43.5 129l-821 -1030q107 -100 293 -100q170 0 301 100t209.5 296.5t78.5 432.5z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1370" d="M176 0zM1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101zM946 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303 v-25z" />
+<glyph unicode="&#xda;" horiz-adv-x="1370" d="M176 0zM1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101zM838 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5 t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1370" d="M176 0zM1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101zM1148 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54 v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1370" d="M176 0zM1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101zM1022 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29 q-55 0 -55 63zM678 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xdd;" horiz-adv-x="965" d="M193 0zM494 645l544 817h117l-631 -932l-108 -530h-105l119 545l-237 917h100zM563 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xde;" horiz-adv-x="1145" d="M1087 836q0 -247 -153 -373.5t-457 -126.5h-201l-71 -336h-103l310 1462h102l-57 -266h213q200 0 308.5 -92.5t108.5 -267.5zM293 428h190q256 0 376 98.5t120 302.5q0 275 -330 275h-211z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1094" d="M-162 -492q-73 0 -119 23v90q53 -24 115 -24q79 0 123 50.5t66 153.5l305 1409q80 357 405 357q137 0 215 -61.5t78 -174.5q0 -75 -44.5 -140.5t-166.5 -148.5q-107 -76 -141.5 -124.5t-34.5 -106.5q0 -51 34 -88.5t93 -75.5q96 -63 138 -133.5t42 -165.5 q0 -170 -106.5 -269t-286.5 -99q-143 0 -234 65v109q45 -36 112.5 -59t129.5 -23q132 0 208.5 71t76.5 195q0 75 -31.5 129t-109.5 108q-82 58 -119 110.5t-37 121.5q0 57 21 103t60.5 88.5t137.5 113.5q101 70 131.5 116t30.5 101q0 70 -55 110t-150 40q-129 0 -205 -76 t-108 -229l-291 -1377q-33 -152 -103.5 -220.5t-179.5 -68.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM809 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM586 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM955 1243h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM858 1249q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173 t-124.5 -55z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM835 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM491 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM927 1448q0 -92 -57.5 -148.5t-145.5 -56.5q-93 0 -148 52t-55 145q0 88 59.5 144t149.5 56q88 0 142.5 -50t54.5 -142zM849 1446q0 57 -33.5 90t-87.5 33q-60 0 -93.5 -36t-33.5 -93t33 -90t90 -33q56 0 90.5 36 t34.5 93z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1602" d="M1155 -20q-123 0 -211 60t-117 165l-39 -205h-77l41 254h-9q-94 -142 -189 -208t-208 -66q-120 0 -182 94t-62 270q0 206 70.5 384.5t192.5 277t274 98.5q106 0 166 -56.5t74 -156.5h10l59 192h66l-35 -186q139 207 350 207q112 0 175 -61.5t63 -172.5 q0 -179 -158.5 -271.5t-470.5 -92.5h-39q-8 -51 -8 -96q0 -161 69.5 -250.5t217.5 -89.5q69 0 133.5 21t130.5 52v-94q-80 -37 -147 -53t-140 -16zM369 70q67 0 138.5 42t134 117.5t106 170.5t63.5 199t20 165q0 118 -49 186t-141 68q-123 0 -223 -86t-156.5 -240 t-56.5 -340q0 -150 42.5 -216t121.5 -66zM1317 1018q-119 0 -232 -115.5t-172 -308.5h48q263 0 383 67t120 203q0 71 -38.5 112.5t-108.5 41.5z" />
+<glyph unicode="&#xe7;" horiz-adv-x="887" d="M102 0zM477 -20q-174 0 -274.5 110.5t-100.5 306.5q0 193 73.5 361.5t198.5 257t290 88.5q134 0 241 -43l-28 -90q-107 47 -218 47q-129 0 -232.5 -77t-162.5 -222t-59 -320q0 -158 73.5 -243.5t208.5 -85.5q71 0 131.5 13t131.5 46v-92q-116 -57 -273 -57zM574 -289 q0 -94 -75.5 -148.5t-217.5 -54.5q-46 0 -78 7v79q30 -6 72 -6q198 0 198 115q0 97 -151 107l110 190h80l-78 -137q140 -30 140 -152z" />
+<glyph unicode="&#xe8;" horiz-adv-x="928" d="M102 0zM469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5 t-162.5 -308.5h49q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5zM751 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xe9;" horiz-adv-x="928" d="M102 0zM469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5 t-162.5 -308.5h49q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5zM532 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xea;" horiz-adv-x="928" d="M102 0zM469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5 t-162.5 -308.5h49q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5zM904 1241h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xeb;" horiz-adv-x="928" d="M102 0zM469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5 t-162.5 -308.5h49q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5zM780 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM436 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xec;" horiz-adv-x="475" d="M76 0zM174 0h-98l231 1087h96zM454 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xed;" horiz-adv-x="475" d="M76 0zM174 0h-98l231 1087h96zM284 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xee;" horiz-adv-x="475" d="M76 0zM174 0h-98l231 1087h96zM642 1241h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xef;" horiz-adv-x="475" d="M76 0zM174 0h-98l231 1087h96zM515 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM171 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1124" d="M713 1364q-54 60 -158 139l59 68q32 -26 81 -66t100 -94l266 150l39 -74l-256 -141q87 -116 131.5 -276t44.5 -335q0 -355 -141.5 -555t-399.5 -200q-177 0 -277 106.5t-100 294.5q0 170 63 301.5t178.5 203.5t262.5 72q107 0 188 -49.5t121 -142.5h5q0 139 -43 289 t-115 243l-295 -163l-39 73zM489 70q118 0 208.5 61t144 186.5t53.5 270.5q0 77 -35 142t-100 101.5t-156 36.5q-124 0 -213.5 -61.5t-137.5 -169.5t-48 -248q0 -153 73.5 -236t210.5 -83z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1143" d="M76 0zM764 0l149 692q21 92 21 156q0 80 -43.5 125t-134.5 45q-112 0 -210.5 -67t-166 -187.5t-103.5 -286.5l-102 -477h-98l231 1087h82l-37 -221h6q164 238 416 238q130 0 195 -64t65 -184q0 -70 -24 -182l-148 -674h-98zM874 1249q-40 0 -77.5 19t-75.5 45 q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM744 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM573 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM941 1241h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM839 1249q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM812 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM468 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xf7;" d="M168 672v100h903v-100h-903zM522 373q0 106 96 106q48 0 73.5 -27.5t25.5 -78.5q0 -57 -29 -82t-70 -25q-96 0 -96 107zM522 1071q0 107 96 107q46 0 72.5 -27.5t26.5 -79.5q0 -57 -29 -81.5t-70 -24.5q-96 0 -96 106z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1124" d="M164 127q-66 106 -66 276q0 191 73 358t197 257t281 90q150 0 250 -82l109 133l65 -53l-117 -143q70 -105 70 -263q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-163 0 -254 83l-110 -135l-64 54zM924 702q0 101 -35 179l-608 -742q67 -73 202 -73q127 0 225.5 77.5 t157 228t58.5 330.5zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -125 32 -197l605 739q-74 72 -197 72z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1143" d="M109 0zM381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100zM774 1241h-66q-50 52 -114 144.5 t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1143" d="M109 0zM381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100zM627 1262q66 51 150.5 142 t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1143" d="M109 0zM381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100zM957 1241h-49q-70 60 -161 207 q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1143" d="M109 0zM381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100zM827 1366q0 49 20.5 78t56.5 29 q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM483 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xfd;" horiz-adv-x="920" d="M0 0zM123 1087h100l82 -548q51 -351 55 -449h11q43 105 186 367l348 630h103l-713 -1290q-72 -127 -122.5 -178t-114 -81t-146.5 -30q-68 0 -129 21v92q71 -27 137 -27q80 0 147 49.5t130 164.5t100 184zM505 1262q66 51 150.5 142t129.5 165h137v-23 q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1163" d="M498 -16q-230 0 -279 219h-4q-13 -72 -149 -695h-99l434 2048h99q-114 -535 -164 -751h6q93 156 199 229.5t231 73.5q133 0 206 -92.5t73 -282.5q0 -195 -72 -371t-197.5 -277t-283.5 -101zM748 1018q-86 0 -172.5 -57.5t-162.5 -169.5t-111.5 -238t-35.5 -207 q0 -125 61.5 -200.5t168.5 -75.5q124 0 225 84t164 243.5t63 325.5q0 295 -200 295z" />
+<glyph unicode="&#xff;" horiz-adv-x="920" d="M0 0zM123 1087h100l82 -548q51 -351 55 -449h11q43 105 186 367l348 630h103l-713 -1290q-72 -127 -122.5 -178t-114 -81t-146.5 -30q-68 0 -129 21v92q71 -27 137 -27q80 0 147 49.5t130 164.5t100 184zM698 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77 t-55 -29q-55 0 -55 63zM354 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#x131;" horiz-adv-x="475" d="M174 0h-98l231 1087h96z" />
+<glyph unicode="&#x152;" horiz-adv-x="1767" d="M1530 0h-666q-25 -6 -77.5 -13t-94.5 -7q-251 0 -385.5 149.5t-134.5 429.5q0 263 96 482t262 330.5t381 111.5q130 0 240 -21h688l-20 -94h-625l-117 -553h590l-20 -94h-588l-135 -627h626zM705 72q68 0 116 12l271 1290q-110 15 -189 15q-182 0 -321.5 -98.5 t-222.5 -293.5t-83 -424q0 -245 109 -373t320 -128z" />
+<glyph unicode="&#x153;" horiz-adv-x="1720" d="M1262 -20q-135 0 -228 69t-125 201q-65 -127 -179 -198.5t-257 -71.5q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90q141 0 237 -74.5t126 -212.5q70 132 182.5 207.5t241.5 75.5q114 0 182 -61t68 -166q0 -181 -163.5 -276t-486.5 -95h-32 q-7 -38 -7 -98q0 -165 74 -251.5t213 -86.5q133 0 277 73v-94q-140 -69 -299 -69zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5q0 154 -73 237t-210 83zM1423 1018q-131 0 -243 -115t-162 -309h49q516 0 516 270 q0 70 -44.5 112t-115.5 42z" />
+<glyph unicode="&#x178;" horiz-adv-x="965" d="M193 0zM494 645l544 817h117l-631 -932l-108 -530h-105l119 545l-237 917h100zM798 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM454 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1135" d="M958 1241h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M967 1448q0 -92 -57.5 -148.5t-145.5 -56.5q-93 0 -148 52t-55 145q0 88 59.5 144t149.5 56q88 0 142.5 -50t54.5 -142zM889 1446q0 57 -33.5 90t-87.5 33q-60 0 -93.5 -36t-33.5 -93t33 -90t90 -33q56 0 90.5 36t34.5 93z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1135" d="M831 1249q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="629" d="M82 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="&#x2011;" horiz-adv-x="629" d="M82 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="&#x2012;" horiz-adv-x="629" d="M82 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="&#x2013;" horiz-adv-x="983" d="M66 502l18 90h807l-17 -90h-808z" />
+<glyph unicode="&#x2014;" horiz-adv-x="1966" d="M68 502l18 90h1788l-16 -90h-1790z" />
+<glyph unicode="&#x2018;" horiz-adv-x="299" d="M133 961l-4 22q41 100 116 231t161 248h73q-66 -106 -129.5 -242.5t-103.5 -258.5h-113z" />
+<glyph unicode="&#x2019;" horiz-adv-x="299" d="M475 1462l4 -22q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q66 106 129.5 242.5t103.5 258.5h113z" />
+<glyph unicode="&#x201a;" horiz-adv-x="451" d="M246 238l4 -23q-40 -97 -115.5 -230t-161.5 -249h-73q68 110 131.5 248t101.5 254h113z" />
+<glyph unicode="&#x201c;" horiz-adv-x="631" d="M133 961l-4 22q41 100 116 231t161 248h73q-66 -106 -129.5 -242.5t-103.5 -258.5h-113zM467 961l-4 22q43 104 120 238.5t156 240.5h74q-66 -106 -129.5 -242.5t-103.5 -258.5h-113z" />
+<glyph unicode="&#x201d;" horiz-adv-x="631" d="M809 1462l4 -22q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q66 106 129.5 242.5t103.5 258.5h113zM475 1462l4 -22q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q66 106 129.5 242.5t103.5 258.5h113z" />
+<glyph unicode="&#x201e;" horiz-adv-x="776" d="M561 238l4 -23q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q66 108 129 242.5t105 259.5h112zM227 238l4 -23q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q73 119 135.5 254.5t98.5 247.5h112z" />
+<glyph unicode="&#x2022;" horiz-adv-x="793" d="M248 682q0 137 63 213t172 76q76 0 116 -39.5t40 -118.5q0 -125 -66 -207t-176 -82q-149 0 -149 158z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1489" d="M69 0zM69 55q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73zM569 55q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73zM1071 55q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="537" d="M451 932l57 -49l-318 -336l213 -385l-63 -39l-254 418l2 26z" />
+<glyph unicode="&#x203a;" horiz-adv-x="537" d="M94 123l-57 49l317 336l-213 385l64 39l254 -418l-2 -27z" />
+<glyph unicode="&#x2044;" horiz-adv-x="274" d="M731 1462l-1087 -1462h-107l1086 1462h108z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="643" d="M657 815h-131l-49 -229h-82l49 229h-391l21 76l506 577h86l-125 -581h133zM459 887q61 294 79 365.5t29 105.5q-10 -16 -61 -79t-338 -392h291z" />
+<glyph unicode="&#x20ac;" d="M991 1389q-186 0 -330.5 -120.5t-226.5 -346.5h457l-21 -82h-460q-30 -98 -39 -217h442l-20 -82h-424q0 -243 89 -356t265 -113q115 0 252 57v-94q-129 -55 -270 -55q-209 0 -325 139.5t-116 394.5v27h-184l16 82h172q5 101 35 217h-170l19 82h174q95 273 270 417 t399 144q166 0 287 -90l-53 -82q-102 78 -238 78z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1534" d="M477 741h-86v643h-217v78h522v-78h-219v-643zM1077 741l-221 609h-6l4 -201v-408h-82v721h125l221 -606l223 606h125v-721h-86v398l4 207h-6l-227 -605h-74z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1085" d="M0 1085h1085v-1085h-1085v1085z" />
+<glyph horiz-adv-x="1133" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+<hkern g1="uniFB00" u2="&#x201d;" k="-123" />
+<hkern g1="uniFB00" u2="&#x2019;" k="-123" />
+<hkern g1="uniFB00" u2="&#x27;" k="-123" />
+<hkern g1="uniFB00" u2="&#x22;" k="-123" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.woff b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.woff
new file mode 100644
index 0000000..43e8b9e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.woff
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.eot b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.eot
new file mode 100644
index 0000000..6bbc3cf
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.eot
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.svg b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.svg
new file mode 100644
index 0000000..25a3952
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.svg
@@ -0,0 +1,1831 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sansregular" horiz-adv-x="1171" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1212" d="M29 0zM670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM1036 0h-166v1096h166v-1096zM856 1393q0 57 28 83.5t70 26.5q40 0 69 -27t29 -83t-29 -83.5t-69 -27.5 q-42 0 -70 27.5t-28 83.5z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1212" d="M29 0zM670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM1036 0h-166v1556h166v-1556z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="1909" d="M29 0zM1358 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31 q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM1731 0h-166v1096h166v-1096zM1551 1393q0 57 28 83.5t70 26.5q40 0 69 -27t29 -83t-29 -83.5t-69 -27.5q-42 0 -70 27.5t-28 83.5z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="1909" d="M29 0zM1358 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31 q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM1731 0h-166v1556h166v-1556z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="547" d="M326 403h-105l-51 1059h207zM152 106q0 136 120 136q58 0 89.5 -35t31.5 -101q0 -64 -32 -99.5t-89 -35.5q-52 0 -86 31.5t-34 103.5z" />
+<glyph unicode="&#x22;" horiz-adv-x="821" d="M319 1462l-40 -528h-105l-41 528h186zM688 1462l-41 -528h-104l-41 528h186z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M981 899l-66 -340h283v-129h-307l-84 -430h-137l84 430h-303l-82 -430h-136l80 430h-262v129h287l68 340h-277v127h299l82 436h139l-82 -436h305l84 436h134l-84 -436h264v-127h-289zM475 559h303l66 340h-303z" />
+<glyph unicode="$" d="M1036 449q0 -136 -102 -224.5t-285 -111.5v-232h-129v223q-112 0 -217 17.5t-172 48.5v156q83 -37 191.5 -60.5t197.5 -23.5v440q-205 65 -287.5 151t-82.5 222q0 131 101.5 215t268.5 102v182h129v-180q184 -5 355 -74l-52 -131q-149 59 -303 70v-434q157 -50 235 -97.5 t115 -109t37 -149.5zM866 436q0 72 -44.5 116.5t-172.5 88.5v-389q217 30 217 184zM319 1057q0 -76 45 -122t156 -87v387q-99 -16 -150 -62.5t-51 -115.5z" />
+<glyph unicode="%" horiz-adv-x="1686" d="M242 1026q0 -170 37 -255t120 -85q164 0 164 340q0 338 -164 338q-83 0 -120 -84t-37 -254zM700 1026q0 -228 -76.5 -344.5t-224.5 -116.5q-140 0 -217.5 119t-77.5 342q0 227 74.5 342t220.5 115q145 0 223 -119t78 -338zM1122 440q0 -171 37 -255.5t121 -84.5t124 83.5 t40 256.5q0 171 -40 253.5t-124 82.5t-121 -82.5t-37 -253.5zM1581 440q0 -227 -76.5 -343.5t-224.5 -116.5q-142 0 -218.5 119t-76.5 341q0 227 74.5 342t220.5 115q142 0 221.5 -117.5t79.5 -339.5zM1323 1462l-811 -1462h-147l811 1462h147z" />
+<glyph unicode="&#x26;" horiz-adv-x="1495" d="M414 1171q0 -69 36 -131.5t123 -150.5q129 75 179.5 138.5t50.5 146.5q0 77 -51.5 125.5t-137.5 48.5q-89 0 -144.5 -48t-55.5 -129zM569 129q241 0 400 154l-437 424q-111 -68 -157 -112.5t-68 -95.5t-22 -116q0 -117 77.5 -185.5t206.5 -68.5zM113 379q0 130 69.5 230 t249.5 202q-85 95 -115.5 144t-48.5 102t-18 110q0 150 98 234t273 84q162 0 255 -83.5t93 -232.5q0 -107 -68 -197.5t-225 -183.5l407 -391q56 62 89.5 145.5t56.5 182.5h168q-68 -286 -205 -434l299 -291h-229l-185 178q-118 -106 -240 -152t-272 -46q-215 0 -333.5 106 t-118.5 293z" />
+<glyph unicode="'" horiz-adv-x="453" d="M319 1462l-40 -528h-105l-41 528h186z" />
+<glyph unicode="(" horiz-adv-x="606" d="M82 561q0 265 77.5 496t223.5 405h162q-144 -193 -216.5 -424t-72.5 -475q0 -240 74 -469t213 -418h-160q-147 170 -224 397t-77 488z" />
+<glyph unicode=")" horiz-adv-x="606" d="M524 561q0 -263 -77.5 -490t-223.5 -395h-160q139 188 213 417.5t74 469.5q0 244 -72.5 475t-216.5 424h162q147 -175 224 -406.5t77 -494.5z" />
+<glyph unicode="*" horiz-adv-x="1130" d="M657 1556l-43 -395l398 111l26 -182l-381 -31l248 -326l-172 -94l-176 362l-160 -362l-176 94l242 326l-377 31l29 182l391 -111l-43 395h194z" />
+<glyph unicode="+" d="M653 791h412v-138h-412v-426h-139v426h-410v138h410v428h139v-428z" />
+<glyph unicode="," horiz-adv-x="502" d="M350 238l15 -23q-26 -100 -75 -232.5t-102 -246.5h-125q27 104 59.5 257t45.5 245h182z" />
+<glyph unicode="-" horiz-adv-x="659" d="M84 473v152h491v-152h-491z" />
+<glyph unicode="." horiz-adv-x="545" d="M152 106q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5z" />
+<glyph unicode="/" horiz-adv-x="752" d="M731 1462l-545 -1462h-166l545 1462h166z" />
+<glyph unicode="0" d="M1069 733q0 -379 -119.5 -566t-365.5 -187q-236 0 -359 191.5t-123 561.5q0 382 119 567t363 185q238 0 361.5 -193t123.5 -559zM270 733q0 -319 75 -464.5t239 -145.5q166 0 240.5 147.5t74.5 462.5t-74.5 461.5t-240.5 146.5q-164 0 -239 -144.5t-75 -463.5z" />
+<glyph unicode="1" d="M715 0h-162v1042q0 130 8 246q-21 -21 -47 -44t-238 -195l-88 114l387 299h140v-1462z" />
+<glyph unicode="2" d="M1061 0h-961v143l385 387q176 178 232 254t84 148t28 155q0 117 -71 185.5t-197 68.5q-91 0 -172.5 -30t-181.5 -109l-88 113q202 168 440 168q206 0 323 -105.5t117 -283.5q0 -139 -78 -275t-292 -344l-320 -313v-8h752v-154z" />
+<glyph unicode="3" d="M1006 1118q0 -140 -78.5 -229t-222.5 -119v-8q176 -22 261 -112t85 -236q0 -209 -145 -321.5t-412 -112.5q-116 0 -212.5 17.5t-187.5 61.5v158q95 -47 202.5 -71.5t203.5 -24.5q379 0 379 297q0 266 -418 266h-144v143h146q171 0 271 75.5t100 209.5q0 107 -73.5 168 t-199.5 61q-96 0 -181 -26t-194 -96l-84 112q90 71 207.5 111.5t247.5 40.5q213 0 331 -97.5t118 -267.5z" />
+<glyph unicode="4" d="M1130 336h-217v-336h-159v336h-711v145l694 989h176v-983h217v-151zM754 487v486q0 143 10 323h-8q-48 -96 -90 -159l-457 -650h545z" />
+<glyph unicode="5" d="M557 893q231 0 363.5 -114.5t132.5 -313.5q0 -227 -144.5 -356t-398.5 -129q-247 0 -377 79v160q70 -45 174 -70.5t205 -25.5q176 0 273.5 83t97.5 240q0 306 -375 306q-95 0 -254 -29l-86 55l55 684h727v-153h-585l-37 -439q115 23 229 23z" />
+<glyph unicode="6" d="M117 625q0 431 167.5 644.5t495.5 213.5q113 0 178 -19v-143q-77 25 -176 25q-235 0 -359 -146.5t-136 -460.5h12q110 172 348 172q197 0 310.5 -119t113.5 -323q0 -228 -124.5 -358.5t-336.5 -130.5q-227 0 -360 170.5t-133 474.5zM608 121q142 0 220.5 89.5t78.5 258.5 q0 145 -73 228t-218 83q-90 0 -165 -37t-119.5 -102t-44.5 -135q0 -103 40 -192t113.5 -141t167.5 -52z" />
+<glyph unicode="7" d="M285 0l606 1309h-797v153h973v-133l-598 -1329h-184z" />
+<glyph unicode="8" d="M584 1483q200 0 317 -93t117 -257q0 -108 -67 -197t-214 -162q178 -85 253 -178.5t75 -216.5q0 -182 -127 -290.5t-348 -108.5q-234 0 -360 102.5t-126 290.5q0 251 306 391q-138 78 -198 168.5t-60 202.5q0 159 117.5 253.5t314.5 94.5zM268 369q0 -120 83.5 -187 t234.5 -67q149 0 232 70t83 192q0 97 -78 172.5t-272 146.5q-149 -64 -216 -141.5t-67 -185.5zM582 1348q-125 0 -196 -60t-71 -160q0 -92 59 -158t218 -132q143 60 202.5 129t59.5 161q0 101 -72.5 160.5t-199.5 59.5z" />
+<glyph unicode="9" d="M1061 838q0 -858 -664 -858q-116 0 -184 20v143q80 -26 182 -26q240 0 362.5 148.5t133.5 455.5h-12q-55 -83 -146 -126.5t-205 -43.5q-194 0 -308 116t-114 324q0 228 127.5 360t335.5 132q149 0 260.5 -76.5t171.5 -223t60 -345.5zM569 1341q-143 0 -221 -92t-78 -256 q0 -144 72 -226.5t219 -82.5q91 0 167.5 37t120.5 101t44 134q0 105 -41 194t-114.5 140t-168.5 51z" />
+<glyph unicode=":" horiz-adv-x="545" d="M152 106q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5zM152 989q0 135 118 135q123 0 123 -135q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5z" />
+<glyph unicode=";" horiz-adv-x="545" d="M350 238l15 -23q-26 -100 -75 -232.5t-102 -246.5h-125q27 104 59.5 257t45.5 245h182zM147 989q0 135 119 135q123 0 123 -135q0 -65 -33 -100t-90 -35q-58 0 -88.5 35t-30.5 100z" />
+<glyph unicode="&#x3c;" d="M1065 242l-961 422v98l961 479v-149l-782 -371l782 -328v-151z" />
+<glyph unicode="=" d="M119 858v137h930v-137h-930zM119 449v137h930v-137h-930z" />
+<glyph unicode="&#x3e;" d="M104 393l783 326l-783 373v149l961 -479v-98l-961 -422v151z" />
+<glyph unicode="?" horiz-adv-x="879" d="M289 403v54q0 117 36 192.5t134 159.5q136 115 171.5 173t35.5 140q0 102 -65.5 157.5t-188.5 55.5q-79 0 -154 -18.5t-172 -67.5l-59 135q189 99 395 99q191 0 297 -94t106 -265q0 -73 -19.5 -128.5t-57.5 -105t-164 -159.5q-101 -86 -133.5 -143t-32.5 -152v-33h-129z M240 106q0 136 120 136q58 0 89.5 -35t31.5 -101q0 -64 -32 -99.5t-89 -35.5q-52 0 -86 31.5t-34 103.5z" />
+<glyph unicode="@" horiz-adv-x="1841" d="M1720 729q0 -142 -44 -260t-124 -183t-184 -65q-86 0 -145 52t-70 133h-8q-40 -87 -114.5 -136t-176.5 -49q-150 0 -234.5 102.5t-84.5 278.5q0 204 118 331.5t310 127.5q68 0 154 -12.5t155 -34.5l-25 -470v-22q0 -178 133 -178q91 0 148 107.5t57 279.5q0 181 -74 317 t-210.5 209.5t-313.5 73.5q-223 0 -388 -92.5t-252 -264t-87 -396.5q0 -305 161 -469t464 -164q210 0 436 86v-133q-192 -84 -436 -84q-363 0 -563.5 199.5t-200.5 557.5q0 260 107 463t305 314.5t454 111.5q215 0 382.5 -90.5t259 -257t91.5 -383.5zM686 598 q0 -254 195 -254q207 0 225 313l14 261q-72 20 -157 20q-130 0 -203.5 -90t-73.5 -250z" />
+<glyph unicode="A" horiz-adv-x="1296" d="M1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473z" />
+<glyph unicode="B" horiz-adv-x="1327" d="M201 1462h413q291 0 421 -87t130 -275q0 -130 -72.5 -214.5t-211.5 -109.5v-10q333 -57 333 -350q0 -196 -132.5 -306t-370.5 -110h-510v1462zM371 836h280q180 0 259 56.5t79 190.5q0 123 -88 177.5t-280 54.5h-250v-479zM371 692v-547h305q177 0 266.5 68.5t89.5 214.5 q0 136 -91.5 200t-278.5 64h-291z" />
+<glyph unicode="C" horiz-adv-x="1292" d="M827 1331q-241 0 -380.5 -160.5t-139.5 -439.5q0 -287 134.5 -443.5t383.5 -156.5q153 0 349 55v-149q-152 -57 -375 -57q-323 0 -498.5 196t-175.5 557q0 226 84.5 396t244 262t375.5 92q230 0 402 -84l-72 -146q-166 78 -332 78z" />
+<glyph unicode="D" horiz-adv-x="1493" d="M1368 745q0 -362 -196.5 -553.5t-565.5 -191.5h-405v1462h448q341 0 530 -189t189 -528zM1188 739q0 286 -143.5 431t-426.5 145h-247v-1168h207q304 0 457 149.5t153 442.5z" />
+<glyph unicode="E" horiz-adv-x="1139" d="M1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152z" />
+<glyph unicode="F" horiz-adv-x="1057" d="M371 0h-170v1462h815v-151h-645v-535h606v-151h-606v-625z" />
+<glyph unicode="G" horiz-adv-x="1491" d="M844 766h497v-711q-116 -37 -236 -56t-278 -19q-332 0 -517 197.5t-185 553.5q0 228 91.5 399.5t263.5 262t403 90.5q234 0 436 -86l-66 -150q-198 84 -381 84q-267 0 -417 -159t-150 -441q0 -296 144.5 -449t424.5 -153q152 0 297 35v450h-327v152z" />
+<glyph unicode="H" horiz-adv-x="1511" d="M1311 0h-170v688h-770v-688h-170v1462h170v-622h770v622h170v-1462z" />
+<glyph unicode="I" horiz-adv-x="571" d="M201 0v1462h170v-1462h-170z" />
+<glyph unicode="J" horiz-adv-x="547" d="M-12 -385q-94 0 -148 27v145q71 -20 148 -20q99 0 150.5 60t51.5 173v1462h170v-1448q0 -190 -96 -294.5t-276 -104.5z" />
+<glyph unicode="K" horiz-adv-x="1257" d="M1257 0h-200l-533 709l-153 -136v-573h-170v1462h170v-725l663 725h201l-588 -635z" />
+<glyph unicode="L" horiz-adv-x="1063" d="M201 0v1462h170v-1308h645v-154h-815z" />
+<glyph unicode="M" horiz-adv-x="1849" d="M848 0l-496 1296h-8q14 -154 14 -366v-930h-157v1462h256l463 -1206h8l467 1206h254v-1462h-170v942q0 162 14 352h-8l-500 -1294h-137z" />
+<glyph unicode="N" horiz-adv-x="1544" d="M1343 0h-194l-799 1227h-8q16 -216 16 -396v-831h-157v1462h192l797 -1222h8q-2 27 -9 173.5t-5 209.5v839h159v-1462z" />
+<glyph unicode="O" horiz-adv-x="1595" d="M1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5z" />
+<glyph unicode="P" horiz-adv-x="1233" d="M1128 1036q0 -222 -151.5 -341.5t-433.5 -119.5h-172v-575h-170v1462h379q548 0 548 -426zM371 721h153q226 0 327 73t101 234q0 145 -95 216t-296 71h-190v-594z" />
+<glyph unicode="Q" horiz-adv-x="1595" d="M1470 733q0 -281 -113 -467t-319 -252l348 -362h-247l-285 330l-55 -2q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5 q-243 0 -369.5 -153.5t-126.5 -446.5z" />
+<glyph unicode="R" horiz-adv-x="1266" d="M371 608v-608h-170v1462h401q269 0 397.5 -103t128.5 -310q0 -290 -294 -392l397 -657h-201l-354 608h-305zM371 754h233q180 0 264 71.5t84 214.5q0 145 -85.5 209t-274.5 64h-221v-559z" />
+<glyph unicode="S" horiz-adv-x="1124" d="M1026 389q0 -193 -140 -301t-380 -108q-260 0 -400 67v164q90 -38 196 -60t210 -22q170 0 256 64.5t86 179.5q0 76 -30.5 124.5t-102 89.5t-217.5 93q-204 73 -291.5 173t-87.5 261q0 169 127 269t336 100q218 0 401 -80l-53 -148q-181 76 -352 76q-135 0 -211 -58 t-76 -161q0 -76 28 -124.5t94.5 -89t203.5 -89.5q230 -82 316.5 -176t86.5 -244z" />
+<glyph unicode="T" horiz-adv-x="1133" d="M651 0h-170v1311h-463v151h1096v-151h-463v-1311z" />
+<glyph unicode="U" horiz-adv-x="1491" d="M1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170z" />
+<glyph unicode="V" horiz-adv-x="1219" d="M1036 1462h183l-527 -1462h-168l-524 1462h180l336 -946q58 -163 92 -317q36 162 94 323z" />
+<glyph unicode="W" horiz-adv-x="1896" d="M1477 0h-168l-295 979q-21 65 -47 164t-27 119q-22 -132 -70 -289l-286 -973h-168l-389 1462h180l231 -903q48 -190 70 -344q27 183 80 358l262 889h180l275 -897q48 -155 81 -350q19 142 72 346l230 901h180z" />
+<glyph unicode="X" horiz-adv-x="1182" d="M1174 0h-193l-393 643l-400 -643h-180l486 764l-453 698h188l363 -579l366 579h181l-453 -692z" />
+<glyph unicode="Y" horiz-adv-x="1147" d="M573 731l390 731h184l-488 -895v-567h-172v559l-487 903h186z" />
+<glyph unicode="Z" horiz-adv-x="1169" d="M1087 0h-1005v133l776 1176h-752v153h959v-133l-776 -1175h798v-154z" />
+<glyph unicode="[" horiz-adv-x="674" d="M623 -324h-457v1786h457v-141h-289v-1503h289v-142z" />
+<glyph unicode="\" horiz-adv-x="752" d="M186 1462l547 -1462h-166l-544 1462h163z" />
+<glyph unicode="]" horiz-adv-x="674" d="M51 -182h289v1503h-289v141h457v-1786h-457v142z" />
+<glyph unicode="^" horiz-adv-x="1110" d="M49 551l434 922h99l477 -922h-152l-372 745l-334 -745h-152z" />
+<glyph unicode="_" horiz-adv-x="918" d="M922 -315h-926v131h926v-131z" />
+<glyph unicode="`" horiz-adv-x="1182" d="M786 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="a" horiz-adv-x="1139" d="M850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85t88.5 238 v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47z" />
+<glyph unicode="b" horiz-adv-x="1255" d="M686 1114q216 0 335.5 -147.5t119.5 -417.5t-120.5 -419.5t-334.5 -149.5q-107 0 -195.5 39.5t-148.5 121.5h-12l-35 -141h-119v1556h166v-378q0 -127 -8 -228h8q116 164 344 164zM662 975q-170 0 -245 -97.5t-75 -328.5t77 -330.5t247 -99.5q153 0 228 111.5t75 320.5 q0 214 -75 319t-232 105z" />
+<glyph unicode="c" horiz-adv-x="975" d="M614 -20q-238 0 -368.5 146.5t-130.5 414.5q0 275 132.5 425t377.5 150q79 0 158 -17t124 -40l-51 -141q-55 22 -120 36.5t-115 14.5q-334 0 -334 -426q0 -202 81.5 -310t241.5 -108q137 0 281 59v-147q-110 -57 -277 -57z" />
+<glyph unicode="d" horiz-adv-x="1255" d="M922 147h-9q-115 -167 -344 -167q-215 0 -334.5 147t-119.5 418t120 421t334 150q223 0 342 -162h13l-7 79l-4 77v446h166v-1556h-135zM590 119q170 0 246.5 92.5t76.5 298.5v35q0 233 -77.5 332.5t-247.5 99.5q-146 0 -223.5 -113.5t-77.5 -320.5q0 -210 77 -317 t226 -107z" />
+<glyph unicode="e" horiz-adv-x="1149" d="M639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5t-200 83.5z " />
+<glyph unicode="f" horiz-adv-x="694" d="M670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129z" />
+<glyph unicode="g" horiz-adv-x="1122" d="M1073 1096v-105l-203 -24q28 -35 50 -91.5t22 -127.5q0 -161 -110 -257t-302 -96q-49 0 -92 8q-106 -56 -106 -141q0 -45 37 -66.5t127 -21.5h194q178 0 273.5 -75t95.5 -218q0 -182 -146 -277.5t-426 -95.5q-215 0 -331.5 80t-116.5 226q0 100 64 173t180 99 q-42 19 -70.5 59t-28.5 93q0 60 32 105t101 87q-85 35 -138.5 119t-53.5 192q0 180 108 277.5t306 97.5q86 0 155 -20h379zM199 -184q0 -89 75 -135t215 -46q209 0 309.5 62.5t100.5 169.5q0 89 -55 123.5t-207 34.5h-199q-113 0 -176 -54t-63 -155zM289 745q0 -115 65 -174 t181 -59q243 0 243 236q0 247 -246 247q-117 0 -180 -63t-63 -187z" />
+<glyph unicode="h" horiz-adv-x="1257" d="M926 0v709q0 134 -61 200t-191 66q-173 0 -252.5 -94t-79.5 -308v-573h-166v1556h166v-471q0 -85 -8 -141h10q49 79 139.5 124.5t206.5 45.5q201 0 301.5 -95.5t100.5 -303.5v-715h-166z" />
+<glyph unicode="i" horiz-adv-x="518" d="M342 0h-166v1096h166v-1096zM162 1393q0 57 28 83.5t70 26.5q40 0 69 -27t29 -83t-29 -83.5t-69 -27.5q-42 0 -70 27.5t-28 83.5z" />
+<glyph unicode="j" horiz-adv-x="518" d="M43 -492q-95 0 -154 25v135q69 -20 136 -20q78 0 114.5 42.5t36.5 129.5v1276h166v-1264q0 -324 -299 -324zM162 1393q0 57 28 83.5t70 26.5q40 0 69 -27t29 -83t-29 -83.5t-69 -27.5q-42 0 -70 27.5t-28 83.5z" />
+<glyph unicode="k" horiz-adv-x="1075" d="M340 561q43 61 131 160l354 375h197l-444 -467l475 -629h-201l-387 518l-125 -108v-410h-164v1556h164v-825q0 -55 -8 -170h8z" />
+<glyph unicode="l" horiz-adv-x="518" d="M342 0h-166v1556h166v-1556z" />
+<glyph unicode="m" horiz-adv-x="1905" d="M1573 0v713q0 131 -56 196.5t-174 65.5q-155 0 -229 -89t-74 -274v-612h-166v713q0 131 -56 196.5t-175 65.5q-156 0 -228.5 -93.5t-72.5 -306.5v-575h-166v1096h135l27 -150h8q47 80 132.5 125t191.5 45q257 0 336 -186h8q49 86 142 136t212 50q186 0 278.5 -95.5 t92.5 -305.5v-715h-166z" />
+<glyph unicode="n" horiz-adv-x="1257" d="M926 0v709q0 134 -61 200t-191 66q-172 0 -252 -93t-80 -307v-575h-166v1096h135l27 -150h8q51 81 143 125.5t205 44.5q198 0 298 -95.5t100 -305.5v-715h-166z" />
+<glyph unicode="o" horiz-adv-x="1237" d="M1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z" />
+<glyph unicode="p" horiz-adv-x="1255" d="M686 -20q-107 0 -195.5 39.5t-148.5 121.5h-12q12 -96 12 -182v-451h-166v1588h135l23 -150h8q64 90 149 130t195 40q218 0 336.5 -149t118.5 -418q0 -270 -120.5 -419.5t-334.5 -149.5zM662 975q-168 0 -243 -93t-77 -296v-37q0 -231 77 -330.5t247 -99.5 q142 0 222.5 115t80.5 317q0 205 -80.5 314.5t-226.5 109.5z" />
+<glyph unicode="q" horiz-adv-x="1255" d="M590 119q166 0 242 89t81 300v37q0 230 -78 331t-247 101q-146 0 -223.5 -113.5t-77.5 -320.5t76.5 -315.5t226.5 -108.5zM565 -20q-212 0 -331 149t-119 416q0 269 120 420t334 151q225 0 346 -170h9l24 150h131v-1588h-166v469q0 100 11 170h-13q-115 -167 -346 -167z " />
+<glyph unicode="r" horiz-adv-x="836" d="M676 1116q73 0 131 -12l-23 -154q-68 15 -120 15q-133 0 -227.5 -108t-94.5 -269v-588h-166v1096h137l19 -203h8q61 107 147 165t189 58z" />
+<glyph unicode="s" horiz-adv-x="977" d="M883 299q0 -153 -114 -236t-320 -83q-218 0 -340 69v154q79 -40 169.5 -63t174.5 -23q130 0 200 41.5t70 126.5q0 64 -55.5 109.5t-216.5 107.5q-153 57 -217.5 99.5t-96 96.5t-31.5 129q0 134 109 211.5t299 77.5q177 0 346 -72l-59 -135q-165 68 -299 68 q-118 0 -178 -37t-60 -102q0 -44 22.5 -75t72.5 -59t192 -81q195 -71 263.5 -143t68.5 -181z" />
+<glyph unicode="t" horiz-adv-x="723" d="M530 117q44 0 85 6.5t65 13.5v-127q-27 -13 -79.5 -21.5t-94.5 -8.5q-318 0 -318 335v652h-157v80l157 69l70 234h96v-254h318v-129h-318v-645q0 -99 47 -152t129 -53z" />
+<glyph unicode="u" horiz-adv-x="1257" d="M332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168z" />
+<glyph unicode="v" horiz-adv-x="1026" d="M416 0l-416 1096h178l236 -650q80 -228 94 -296h8q11 53 69.5 219.5t262.5 726.5h178l-416 -1096h-194z" />
+<glyph unicode="w" horiz-adv-x="1593" d="M1071 0l-201 643q-19 59 -71 268h-8q-40 -175 -70 -270l-207 -641h-192l-299 1096h174q106 -413 161.5 -629t63.5 -291h8q11 57 35.5 147.5t42.5 143.5l201 629h180l196 -629q56 -172 76 -289h8q4 36 21.5 111t208.5 807h172l-303 -1096h-197z" />
+<glyph unicode="x" horiz-adv-x="1073" d="M440 561l-381 535h189l289 -420l288 420h187l-381 -535l401 -561h-188l-307 444l-310 -444h-188z" />
+<glyph unicode="y" horiz-adv-x="1032" d="M2 1096h178l240 -625q79 -214 98 -309h8q13 51 54.5 174.5t271.5 759.5h178l-471 -1248q-70 -185 -163.5 -262.5t-229.5 -77.5q-76 0 -150 17v133q55 -12 123 -12q171 0 244 192l61 156z" />
+<glyph unicode="z" horiz-adv-x="958" d="M877 0h-795v113l598 854h-561v129h743v-129l-590 -838h605v-129z" />
+<glyph unicode="{" horiz-adv-x="776" d="M475 12q0 -102 58.5 -148t171.5 -48v-140q-190 2 -294 87t-104 239v303q0 104 -63 148.5t-183 44.5v141q130 2 188 48t58 142v306q0 155 108 241t290 86v-139q-230 -6 -230 -199v-295q0 -215 -223 -254v-12q223 -39 223 -254v-297z" />
+<glyph unicode="|" horiz-adv-x="1128" d="M494 1556h141v-2052h-141v2052z" />
+<glyph unicode="}" horiz-adv-x="776" d="M522 575q-223 39 -223 254v295q0 193 -227 199v139q184 0 289.5 -87t105.5 -240v-306q0 -97 59 -142.5t189 -47.5v-141q-122 0 -185 -44.5t-63 -148.5v-303q0 -153 -102.5 -238.5t-292.5 -87.5v140q111 2 169 48t58 148v297q0 114 55 174t168 80v12z" />
+<glyph unicode="~" d="M338 713q-53 0 -116.5 -33.5t-117.5 -87.5v151q100 109 244 109q68 0 124.5 -14t145.5 -52q66 -28 115 -41.5t96 -13.5q54 0 118 32t118 89v-150q-102 -110 -244 -110q-72 0 -135 16.5t-135 48.5q-75 32 -120 44t-93 12z" />
+<glyph unicode="&#xa1;" horiz-adv-x="547" d="M219 684h105l51 -1057h-207zM393 983q0 -135 -121 -135q-60 0 -90 35.5t-30 99.5q0 63 31.5 99t88.5 36q51 0 86 -32t35 -103z" />
+<glyph unicode="&#xa2;" d="M971 240q-105 -54 -252 -60v-200h-133v206q-203 32 -299.5 168.5t-96.5 386.5q0 508 396 570v172h135v-164q75 -3 146 -19.5t120 -39.5l-49 -140q-133 51 -242 51q-172 0 -253 -105.5t-81 -322.5q0 -212 79.5 -313.5t246.5 -101.5q141 0 283 59v-147z" />
+<glyph unicode="&#xa3;" d="M682 1481q190 0 360 -84l-61 -133q-154 77 -297 77q-123 0 -185.5 -62t-62.5 -202v-295h422v-127h-422v-221q0 -100 -32.5 -168t-106.5 -112h795v-154h-1029v141q205 47 205 291v223h-198v127h198v316q0 178 112 280.5t302 102.5z" />
+<glyph unicode="&#xa4;" d="M184 723q0 122 74 229l-135 140l94 92l135 -133q104 73 234 73q127 0 229 -73l137 133l95 -92l-134 -138q74 -113 74 -231q0 -131 -74 -234l131 -135l-92 -92l-137 133q-102 -71 -229 -71q-134 0 -234 73l-135 -133l-92 92l133 136q-74 107 -74 231zM313 723 q0 -112 78.5 -192t194.5 -80t195 79.5t79 192.5q0 114 -80 195t-194 81q-116 0 -194.5 -82t-78.5 -194z" />
+<glyph unicode="&#xa5;" d="M584 735l379 727h174l-416 -770h262v-127h-317v-170h317v-127h-317v-268h-164v268h-316v127h316v170h-316v127h256l-411 770h178z" />
+<glyph unicode="&#xa6;" horiz-adv-x="1128" d="M494 1556h141v-776h-141v776zM494 281h141v-777h-141v777z" />
+<glyph unicode="&#xa7;" horiz-adv-x="1057" d="M139 809q0 86 43 154.5t121 105.5q-74 40 -116 95.5t-42 140.5q0 121 103.5 190.5t300.5 69.5q94 0 173.5 -14.5t176.5 -53.5l-53 -131q-98 39 -165.5 52.5t-143.5 13.5q-116 0 -174 -29.5t-58 -93.5q0 -60 61.5 -102t215.5 -97q186 -68 261 -143.5t75 -182.5 q0 -90 -41 -160.5t-115 -111.5q153 -81 153 -227q0 -140 -117 -216.5t-329 -76.5q-218 0 -346 65v148q78 -37 175 -59.5t179 -22.5q134 0 204.5 38t70.5 109q0 46 -24 75t-78 58t-169 72q-142 52 -209 97t-100 102t-33 135zM285 829q0 -77 66 -129.5t233 -113.5l49 -19 q137 80 137 191q0 83 -73.5 139t-258.5 113q-68 -19 -110.5 -69t-42.5 -112z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1182" d="M309 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM690 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M893 1059q-125 0 -192.5 -87t-67.5 -241q0 -168 63.5 -249t194.5 -81q86 0 211 45v-124q-48 -20 -98.5 -34t-120.5 -14q-194 0 -298 120.5t-104 336.5q0 209 110.5 332t301.5 123q128 0 246 -60l-58 -118q-108 51 -188 51zM100 731q0 200 100 375t275 276t377 101 q200 0 375 -100t276 -275t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM205 731q0 -173 87 -323.5t237.5 -237t322.5 -86.5q174 0 323 87t236.5 235.5t87.5 324.5q0 174 -87 323t-235.5 236.5t-324.5 87.5q-174 0 -323 -87 t-236.5 -235.5t-87.5 -324.5z" />
+<glyph unicode="&#xaa;" horiz-adv-x="725" d="M532 801l-24 84q-92 -97 -232 -97q-95 0 -150.5 49.5t-55.5 151.5t77 154.5t242 58.5l117 4v39q0 133 -148 133q-100 0 -204 -51l-43 96q114 56 247 56q130 0 198.5 -52.5t68.5 -173.5v-452h-93zM193 989q0 -100 112 -100q201 0 201 180v49l-98 -4q-112 -4 -163.5 -32.5 t-51.5 -92.5z" />
+<glyph unicode="&#xab;" horiz-adv-x="1018" d="M82 551l342 407l119 -69l-289 -350l289 -351l-119 -71l-342 407v27zM477 551l344 407l117 -69l-287 -350l287 -351l-117 -71l-344 407v27z" />
+<glyph unicode="&#xac;" d="M1065 791v-527h-137v389h-824v138h961z" />
+<glyph unicode="&#xad;" horiz-adv-x="659" d="M84 473zM84 473v152h491v-152h-491z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M723 762h108q80 0 128.5 41.5t48.5 105.5q0 75 -43 107.5t-136 32.5h-106v-287zM1157 913q0 -80 -42.5 -141.5t-119.5 -91.5l238 -395h-168l-207 354h-135v-354h-148v891h261q166 0 243.5 -65t77.5 -198zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275 t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM205 731q0 -173 87 -323.5t237.5 -237t322.5 -86.5q174 0 323 87t236.5 235.5t87.5 324.5q0 174 -87 323t-235.5 236.5t-324.5 87.5q-174 0 -323 -87t-236.5 -235.5t-87.5 -324.5z " />
+<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M1030 1556h-1036v127h1036v-127z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M127 1171q0 130 90.5 221t220.5 91t221 -90.5t91 -221.5q0 -84 -41 -155.5t-114 -113.5t-157 -42q-130 0 -220.5 90t-90.5 221zM242 1171q0 -82 58.5 -139t139.5 -57q80 0 137.5 56.5t57.5 139.5q0 84 -56.5 140.5t-138.5 56.5q-83 0 -140.5 -57t-57.5 -140z" />
+<glyph unicode="&#xb1;" d="M104 1zM653 791h412v-138h-412v-426h-139v426h-410v138h410v428h139v-428zM104 1v138h961v-138h-961z" />
+<glyph unicode="&#xb2;" horiz-adv-x="711" d="M653 586h-604v104l236 230q89 86 130 134.5t57.5 86.5t16.5 92q0 68 -40 102.5t-103 34.5q-52 0 -101 -19t-118 -69l-66 88q131 111 283 111q132 0 205.5 -65t73.5 -177q0 -80 -44.5 -155.5t-191.5 -213.5l-174 -165h440v-119z" />
+<glyph unicode="&#xb3;" horiz-adv-x="711" d="M627 1255q0 -80 -41 -131.5t-109 -74.5q176 -47 176 -209q0 -128 -92 -199.5t-260 -71.5q-152 0 -268 56v123q147 -68 270 -68q211 0 211 162q0 145 -231 145h-117v107h119q103 0 152.5 39.5t49.5 107.5q0 61 -40 95t-107 34q-66 0 -122 -21.5t-112 -56.5l-69 90 q63 45 133 72t164 27q136 0 214.5 -59.5t78.5 -166.5z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1182" d="M393 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1268" d="M342 381q0 -262 254 -262q171 0 250.5 94.5t79.5 306.5v576h166v-1096h-136l-26 147h-10q-111 -167 -340 -167q-150 0 -238 92h-10q10 -84 10 -244v-320h-166v1588h166v-715z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1120 -260h-114v1712h-213v-1712h-115v819q-62 -18 -146 -18q-216 0 -317.5 125t-101.5 376q0 260 109 387t341 127h557v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="545" d="M152 723q0 66 31 100.5t87 34.5q58 0 90.5 -34.5t32.5 -100.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5z" />
+<glyph unicode="&#xb8;" horiz-adv-x="465" d="M436 -289q0 -97 -76.5 -150t-226.5 -53q-51 0 -96 9v106q45 -8 104 -8q79 0 119.5 20t40.5 74q0 43 -39.5 69.5t-148.5 43.5l88 178h110l-55 -115q180 -39 180 -174z" />
+<glyph unicode="&#xb9;" horiz-adv-x="711" d="M338 1462h143v-876h-133v579q0 91 6 181q-22 -22 -49 -44.5t-162 -117.5l-67 96z" />
+<glyph unicode="&#xba;" horiz-adv-x="768" d="M702 1135q0 -164 -85.5 -255.5t-235.5 -91.5q-146 0 -230.5 93t-84.5 254q0 163 84 253.5t235 90.5q152 0 234.5 -91t82.5 -253zM188 1135q0 -122 45.5 -183t149.5 -61q105 0 151 61t46 183q0 123 -46 182t-151 59q-103 0 -149 -59t-46 -182z" />
+<glyph unicode="&#xbb;" horiz-adv-x="1018" d="M936 524l-344 -407l-117 71l287 351l-287 350l117 69l344 -407v-27zM541 524l-344 -407l-117 71l287 351l-287 350l117 69l344 -407v-27z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1597" d="M75 0zM1298 1462l-903 -1462h-143l903 1462h143zM337 1462h143v-876h-133v579q0 91 6 181q-22 -22 -49 -44.5t-162 -117.5l-67 96zM1489 203h-125v-202h-145v202h-402v101l408 579h139v-563h125v-117zM1219 320v195q0 134 6 209q-5 -12 -17 -31.5t-27 -42l-30 -45 t-26 -39.5l-168 -246h262z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1597" d="M46 0zM1230 1462l-903 -1462h-143l903 1462h143zM308 1462h143v-876h-133v579q0 91 6 181q-22 -22 -49 -44.5t-162 -117.5l-67 96zM1499 1h-604v104l236 230q89 86 130 134.5t57.5 86.5t16.5 92q0 68 -40 102.5t-103 34.5q-52 0 -101 -19t-118 -69l-66 88 q131 111 283 111q132 0 205.5 -65t73.5 -177q0 -80 -44.5 -155.5t-191.5 -213.5l-174 -165h440v-119z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1597" d="M26 0zM620 1255q0 -80 -41 -131.5t-109 -74.5q176 -47 176 -209q0 -128 -92 -199.5t-260 -71.5q-152 0 -268 56v123q147 -68 270 -68q211 0 211 162q0 145 -231 145h-117v107h119q103 0 152.5 39.5t49.5 107.5q0 61 -40 95t-107 34q-66 0 -122 -21.5t-112 -56.5l-69 90 q63 45 133 72t164 27q136 0 214.5 -59.5t78.5 -166.5zM1390 1462l-903 -1462h-143l903 1462h143zM1569 203h-125v-202h-145v202h-402v101l408 579h139v-563h125v-117zM1299 320v195q0 134 6 209q-5 -12 -17 -31.5t-27 -42l-30 -45t-26 -39.5l-168 -246h262z" />
+<glyph unicode="&#xbf;" horiz-adv-x="879" d="M590 684v-51q0 -122 -37.5 -196t-134.5 -158q-121 -106 -151.5 -143.5t-43 -76t-12.5 -94.5q0 -100 66 -156.5t188 -56.5q80 0 155 19t173 67l59 -135q-197 -96 -395 -96q-190 0 -298 93t-108 263q0 70 17.5 122.5t49.5 97t76.5 85.5t98.5 88q101 88 133.5 146t32.5 151 v31h131zM639 983q0 -135 -121 -135q-59 0 -90 34.5t-31 100.5q0 64 33 99.5t88 35.5q51 0 86 -32t35 -103z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM724 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM526 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM303 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186 h-115v23z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM792 1581q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5 q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM364 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5z M745 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM870 1587q0 -98 -61.5 -157.5t-163.5 -59.5q-101 0 -161 58.5t-60 156.5t60.5 155.5t160.5 57.5q101 0 163 -59.5t62 -151.5z M762 1585q0 56 -33 86.5t-84 30.5t-84 -30.5t-33 -86.5t30 -86.5t87 -30.5q52 0 84.5 30.5t32.5 86.5z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1788" d="M1665 0h-750v465h-514l-227 -465h-176l698 1462h969v-151h-580v-471h541v-150h-541v-538h580v-152zM469 618h446v693h-118z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1292" d="M125 0zM827 1331q-241 0 -380.5 -160.5t-139.5 -439.5q0 -287 134.5 -443.5t383.5 -156.5q153 0 349 55v-149q-152 -57 -375 -57q-323 0 -498.5 196t-175.5 557q0 226 84.5 396t244 262t375.5 92q230 0 402 -84l-72 -146q-166 78 -332 78zM950 -289q0 -97 -76.5 -150 t-226.5 -53q-51 0 -96 9v106q45 -8 104 -8q79 0 119.5 20t40.5 74q0 43 -39.5 69.5t-148.5 43.5l88 178h110l-55 -115q180 -39 180 -174z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1139" d="M201 0zM1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152zM713 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1139" d="M201 0zM1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152zM456 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xca;" horiz-adv-x="1139" d="M201 0zM1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152zM263 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1139" d="M201 0zM1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152zM327 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM708 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5 t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xcc;" horiz-adv-x="571" d="M5 0zM201 0v1462h170v-1462h-170zM398 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xcd;" horiz-adv-x="571" d="M179 0zM201 0v1462h170v-1462h-170zM179 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xce;" horiz-adv-x="571" d="M0 0zM201 0v1462h170v-1462h-170zM-57 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xcf;" horiz-adv-x="571" d="M5 0zM201 0v1462h170v-1462h-170zM5 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM386 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1479" d="M1352 745q0 -362 -196.5 -553.5t-565.5 -191.5h-389v649h-154v150h154v663h434q337 0 527 -187.5t190 -529.5zM1171 739q0 576 -569 576h-231v-516h379v-150h-379v-502h190q610 0 610 592z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1544" d="M201 0zM1343 0h-194l-799 1227h-8q16 -216 16 -396v-831h-157v1462h192l797 -1222h8q-2 27 -9 173.5t-5 209.5v839h159v-1462zM935 1581q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41 t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM907 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM659 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM448 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM942 1581q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM522 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM903 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xd7;" d="M940 1176l96 -99l-352 -354l350 -352l-96 -99l-354 351l-348 -351l-101 99l350 352l-352 352l100 101l353 -355z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1595" d="M1470 733q0 -351 -177.5 -552t-493.5 -201q-235 0 -383 100l-101 -141l-120 79l108 154q-178 198 -178 563q0 357 176 553.5t500 196.5q209 0 366 -94l97 135l120 -80l-106 -148q192 -202 192 -565zM1290 733q0 272 -110 426l-672 -948q115 -82 291 -82q243 0 367 153 t124 451zM305 733q0 -262 101 -416l669 943q-106 73 -274 73q-243 0 -369.5 -153.5t-126.5 -446.5z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1491" d="M186 0zM1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170zM856 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xda;" horiz-adv-x="1491" d="M186 0zM1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170zM600 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1491" d="M186 0zM1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170zM393 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186 q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1491" d="M186 0zM1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170zM461 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5 t-26.5 74.5zM842 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1147" d="M0 0zM573 731l390 731h184l-488 -895v-567h-172v559l-487 903h186zM442 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xde;" horiz-adv-x="1251" d="M1145 784q0 -227 -151.5 -346t-438.5 -119h-184v-319h-170v1462h170v-256h215q281 0 420 -103.5t139 -318.5zM371 465h168q226 0 327 71.5t101 235.5q0 149 -95 218t-297 69h-204v-594z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1274" d="M1049 1266q0 -135 -143 -250q-88 -70 -116 -103.5t-28 -66.5q0 -32 13.5 -53t49 -49.5t113.5 -79.5q140 -95 191 -173.5t51 -179.5q0 -160 -97 -245.5t-276 -85.5q-188 0 -295 69v154q63 -39 141 -62.5t150 -23.5q215 0 215 182q0 75 -41.5 128.5t-151.5 123.5 q-127 82 -175 143.5t-48 145.5q0 63 34.5 116t105.5 106q75 57 107 102t32 98q0 80 -68 122.5t-195 42.5q-276 0 -276 -223v-1204h-166v1202q0 178 110 271.5t332 93.5q206 0 318.5 -78.5t112.5 -222.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM672 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM436 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM228 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM721 1243q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99 q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM279 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM660 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75 q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM804 1458q0 -98 -61.5 -157.5t-163.5 -59.5q-101 0 -161 58.5t-60 156.5t60.5 155.5t160.5 57.5q101 0 163 -59.5t62 -151.5zM696 1456q0 56 -33 86.5t-84 30.5t-84 -30.5t-33 -86.5 t30 -86.5t87 -30.5q52 0 84.5 30.5t32.5 86.5z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1757" d="M94 303q0 161 124 250.5t378 97.5l184 6v68q0 129 -58 190.5t-177 61.5q-144 0 -307 -84l-52 127q74 41 173.5 67.5t197.5 26.5q130 0 212.5 -43.5t123.5 -138.5q53 88 138.5 136t195.5 48q192 0 308 -133.5t116 -355.5v-107h-701q8 -395 322 -395q91 0 169.5 17.5 t162.5 56.5v-148q-86 -38 -160.5 -54.5t-175.5 -16.5q-289 0 -414 233q-81 -127 -179.5 -180t-232.5 -53q-163 0 -255.5 85t-92.5 238zM268 301q0 -95 53.5 -139.5t141.5 -44.5q145 0 229 84.5t84 238.5v99l-158 -7q-186 -8 -268 -62.5t-82 -168.5zM1225 977 q-121 0 -190.5 -83t-80.5 -241h519q0 156 -64 240t-184 84z" />
+<glyph unicode="&#xe7;" horiz-adv-x="975" d="M115 0zM614 -20q-238 0 -368.5 146.5t-130.5 414.5q0 275 132.5 425t377.5 150q79 0 158 -17t124 -40l-51 -141q-55 22 -120 36.5t-115 14.5q-334 0 -334 -426q0 -202 81.5 -310t241.5 -108q137 0 281 59v-147q-110 -57 -277 -57zM762 -289q0 -97 -76.5 -150t-226.5 -53 q-51 0 -96 9v106q45 -8 104 -8q79 0 119.5 20t40.5 74q0 43 -39.5 69.5t-148.5 43.5l88 178h110l-55 -115q180 -39 180 -174z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1149" d="M115 0zM639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5 t-200 83.5zM711 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1149" d="M115 0zM639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5 t-200 83.5zM471 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xea;" horiz-adv-x="1149" d="M115 0zM639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5 t-200 83.5zM259 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1149" d="M115 0zM639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5 t-200 83.5zM319 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM700 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xec;" horiz-adv-x="518" d="M0 0zM342 0h-166v1096h166v-1096zM355 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xed;" horiz-adv-x="518" d="M169 0zM342 0h-166v1096h166v-1096zM169 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xee;" horiz-adv-x="518" d="M0 0zM342 0h-166v1096h166v-1096zM-77 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xef;" horiz-adv-x="518" d="M0 0zM342 0h-166v1096h166v-1096zM-20 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM361 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1221" d="M1122 563q0 -281 -130.5 -432t-377.5 -151q-222 0 -361.5 134.5t-139.5 360.5q0 230 131.5 361t351.5 131q226 0 326 -121l8 4q-57 214 -262 405l-271 -155l-73 108l233 133q-92 62 -186 111l69 117q156 -73 258 -148l238 138l76 -107l-207 -119q152 -143 234.5 -342 t82.5 -428zM954 512q0 147 -90 232t-246 85q-337 0 -337 -360q0 -167 87.5 -258.5t249.5 -91.5q175 0 255.5 100.5t80.5 292.5z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1257" d="M176 0zM926 0v709q0 134 -61 200t-191 66q-172 0 -252 -93t-80 -307v-575h-166v1096h135l27 -150h8q51 81 143 125.5t205 44.5q198 0 298 -95.5t100 -305.5v-715h-166zM802 1243q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98 q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M742 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M479 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M282 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M773 1243q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M336 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM717 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xf7;" d="M104 653v138h961v-138h-961zM471 373q0 60 29.5 90.5t83.5 30.5q52 0 81 -31.5t29 -89.5q0 -57 -29.5 -89t-80.5 -32q-52 0 -82.5 31.5t-30.5 89.5zM471 1071q0 60 29.5 90.5t83.5 30.5q52 0 81 -31.5t29 -89.5q0 -57 -29.5 -89t-80.5 -32q-52 0 -82.5 31.5t-30.5 89.5z " />
+<glyph unicode="&#xf8;" horiz-adv-x="1237" d="M1122 549q0 -268 -135 -418.5t-373 -150.5q-154 0 -266 69l-84 -117l-114 78l94 131q-129 152 -129 408q0 268 134 417.5t372 149.5q154 0 270 -76l84 119l117 -76l-97 -133q127 -152 127 -401zM287 549q0 -171 53 -273l465 646q-75 53 -189 53q-163 0 -246 -107 t-83 -319zM950 549q0 164 -51 264l-465 -643q71 -51 184 -51q163 0 247.5 109.5t84.5 320.5z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1257" d="M164 0zM332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168zM726 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1257" d="M164 0zM332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168zM506 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1257" d="M164 0zM332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168zM286 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119 q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1257" d="M164 0zM332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168zM342 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5 q-37 0 -63.5 24.5t-26.5 74.5zM723 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xfd;" horiz-adv-x="1032" d="M2 0zM2 1096h178l240 -625q79 -214 98 -309h8q13 51 54.5 174.5t271.5 759.5h178l-471 -1248q-70 -185 -163.5 -262.5t-229.5 -77.5q-76 0 -150 17v133q55 -12 123 -12q171 0 244 192l61 156zM411 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147 h-111v25z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1255" d="M344 948q66 89 151 128.5t191 39.5q215 0 335 -150t120 -417q0 -268 -120.5 -418.5t-334.5 -150.5q-222 0 -344 161h-12l4 -34q8 -77 8 -140v-459h-166v2048h166v-466q0 -52 -6 -142h8zM664 975q-168 0 -244 -92t-78 -293v-41q0 -231 77 -330.5t247 -99.5q303 0 303 432 q0 215 -74 319.5t-231 104.5z" />
+<glyph unicode="&#xff;" horiz-adv-x="1032" d="M2 0zM2 1096h178l240 -625q79 -214 98 -309h8q13 51 54.5 174.5t271.5 759.5h178l-471 -1248q-70 -185 -163.5 -262.5t-229.5 -77.5q-76 0 -150 17v133q55 -12 123 -12q171 0 244 192l61 156zM234 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5 t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM615 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#x131;" horiz-adv-x="518" d="M342 0h-166v1096h166v-1096z" />
+<glyph unicode="&#x152;" horiz-adv-x="1890" d="M1767 0h-768q-102 -20 -194 -20q-327 0 -503.5 196.5t-176.5 558.5q0 360 174 555t494 195q102 0 192 -23h782v-151h-589v-471h551v-150h-551v-538h589v-152zM811 1333q-249 0 -377.5 -152.5t-128.5 -447.5q0 -297 128.5 -450.5t375.5 -153.5q112 0 199 33v1141 q-87 30 -197 30z" />
+<glyph unicode="&#x153;" horiz-adv-x="1929" d="M1430 -20q-293 0 -418 235q-62 -116 -166.5 -175.5t-241.5 -59.5q-223 0 -357 152.5t-134 416.5q0 265 131 415t366 150q131 0 233.5 -59.5t164.5 -173.5q58 112 154 172.5t222 60.5q201 0 320 -132.5t119 -358.5v-105h-729q8 -393 338 -393q94 0 174.5 17.5t167.5 56.5 v-148q-88 -39 -164 -55t-180 -16zM287 549q0 -211 76 -320.5t243 -109.5q163 0 239.5 106.5t76.5 315.5q0 221 -77.5 327.5t-242.5 106.5q-166 0 -240.5 -108t-74.5 -318zM1382 975q-127 0 -199.5 -82t-84.5 -240h544q0 158 -66 240t-194 82z" />
+<glyph unicode="&#x178;" horiz-adv-x="1147" d="M0 0zM573 731l390 731h184l-488 -895v-567h-172v559l-487 903h186zM294 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM675 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5 t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1212" d="M268 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M813 1458q0 -98 -61.5 -157.5t-163.5 -59.5q-101 0 -161 58.5t-60 156.5t60.5 155.5t160.5 57.5q101 0 163 -59.5t62 -151.5zM705 1456q0 56 -33 86.5t-84 30.5t-84 -30.5t-33 -86.5t30 -86.5t87 -30.5q52 0 84.5 30.5t32.5 86.5z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1212" d="M788 1243q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="659" d="M84 473v152h491v-152h-491z" />
+<glyph unicode="&#x2011;" horiz-adv-x="659" d="M84 473v152h491v-152h-491z" />
+<glyph unicode="&#x2012;" horiz-adv-x="659" d="M84 473v152h491v-152h-491z" />
+<glyph unicode="&#x2013;" horiz-adv-x="1024" d="M82 473v152h860v-152h-860z" />
+<glyph unicode="&#x2014;" horiz-adv-x="2048" d="M82 473v152h1884v-152h-1884z" />
+<glyph unicode="&#x2018;" horiz-adv-x="348" d="M37 961l-12 22q22 90 71 224t105 255h123q-66 -254 -103 -501h-184z" />
+<glyph unicode="&#x2019;" horiz-adv-x="348" d="M309 1462l15 -22q-26 -100 -75 -232.5t-102 -246.5h-122q70 285 102 501h182z" />
+<glyph unicode="&#x201a;" horiz-adv-x="502" d="M63 0zM350 238l15 -23q-26 -100 -75 -232.5t-102 -246.5h-125q27 104 59.5 257t45.5 245h182z" />
+<glyph unicode="&#x201c;" horiz-adv-x="717" d="M406 961l-15 22q56 215 178 479h123q-30 -115 -59.5 -259.5t-42.5 -241.5h-184zM37 961l-12 22q22 90 71 224t105 255h123q-66 -254 -103 -501h-184z" />
+<glyph unicode="&#x201d;" horiz-adv-x="717" d="M309 1462l15 -22q-26 -100 -75 -232.5t-102 -246.5h-122q70 285 102 501h182zM678 1462l14 -22q-24 -91 -72 -224t-104 -255h-125q26 100 59 254t46 247h182z" />
+<glyph unicode="&#x201e;" horiz-adv-x="829" d="M25 0zM309 238l15 -22q-26 -100 -75 -232.5t-102 -246.5h-122q70 285 102 501h182zM678 238l14 -22q-24 -91 -72 -224t-104 -255h-125q26 100 59 254t46 247h182z" />
+<glyph unicode="&#x2022;" horiz-adv-x="770" d="M164 748q0 121 56.5 184t164.5 63q105 0 163 -62t58 -185q0 -119 -57.5 -183.5t-163.5 -64.5q-107 0 -164 65.5t-57 182.5z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1606" d="M152 0zM152 106q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5zM682 106q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5zM1213 106 q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="623" d="M82 551l342 407l119 -69l-289 -350l289 -351l-119 -71l-342 407v27z" />
+<glyph unicode="&#x203a;" horiz-adv-x="623" d="M541 524l-344 -407l-117 71l287 351l-287 350l117 69l344 -407v-27z" />
+<glyph unicode="&#x2044;" horiz-adv-x="266" d="M655 1462l-903 -1462h-143l903 1462h143z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="711" d="M692 788h-125v-202h-145v202h-402v101l408 579h139v-563h125v-117zM422 905v195q0 134 6 209q-5 -12 -17 -31.5t-27 -42l-30 -45t-26 -39.5l-168 -246h262z" />
+<glyph unicode="&#x20ac;" horiz-adv-x="1208" d="M795 1333q-319 0 -398 -403h510v-129h-524l-2 -57v-64l2 -45h463v-129h-447q37 -180 138.5 -278.5t271.5 -98.5q156 0 309 66v-150q-146 -65 -317 -65q-237 0 -381.5 134.5t-190.5 391.5h-166v129h152l-2 42v44l2 80h-152v129h164q39 261 185 407t383 146q201 0 366 -97 l-71 -139q-166 86 -295 86z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1589" d="M369 741h-123v615h-209v106h543v-106h-211v-615zM969 741l-201 559h-8l6 -129v-430h-119v721h187l196 -559l203 559h180v-721h-127v420l6 137h-8l-211 -557h-104z" />
+<glyph unicode="&#x2212;" d="M104 653v138h961v-138h-961z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1095" d="M0 1095h1095v-1095h-1095v1095z" />
+<glyph horiz-adv-x="1255" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.woff b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.woff
new file mode 100644
index 0000000..e231183
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.woff
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/index.html b/doc/1.1.0/guacamole-common-js/index.html
new file mode 100644
index 0000000..2453944
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/index.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Home</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Home</h1>
+
+    
+
+
+
+    
+
+
+    <h3> </h3>
+
+
+
+
+
+
+
+
+
+
+    
+
+
+
+
+
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/scripts/linenumber.js b/doc/1.1.0/guacamole-common-js/scripts/linenumber.js
new file mode 100644
index 0000000..8d52f7e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/scripts/linenumber.js
@@ -0,0 +1,25 @@
+/*global document */
+(function() {
+    var source = document.getElementsByClassName('prettyprint source linenums');
+    var i = 0;
+    var lineNumber = 0;
+    var lineId;
+    var lines;
+    var totalLines;
+    var anchorHash;
+
+    if (source && source[0]) {
+        anchorHash = document.location.hash.substring(1);
+        lines = source[0].getElementsByTagName('li');
+        totalLines = lines.length;
+
+        for (; i < totalLines; i++) {
+            lineNumber++;
+            lineId = 'line' + lineNumber;
+            lines[i].id = lineId;
+            if (lineId === anchorHash) {
+                lines[i].className += ' selected';
+            }
+        }
+    }
+})();
diff --git a/doc/1.1.0/guacamole-common-js/scripts/prettify/Apache-License-2.0.txt b/doc/1.1.0/guacamole-common-js/scripts/prettify/Apache-License-2.0.txt
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/scripts/prettify/Apache-License-2.0.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/doc/1.1.0/guacamole-common-js/scripts/prettify/lang-css.js b/doc/1.1.0/guacamole-common-js/scripts/prettify/lang-css.js
new file mode 100644
index 0000000..041e1f5
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/scripts/prettify/lang-css.js
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n"]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com",
+/^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]);
diff --git a/doc/1.1.0/guacamole-common-js/scripts/prettify/prettify.js b/doc/1.1.0/guacamole-common-js/scripts/prettify/prettify.js
new file mode 100644
index 0000000..eef5ad7
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/scripts/prettify/prettify.js
@@ -0,0 +1,28 @@
+var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
+(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a=
+[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c<
+f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\\"===j.charAt(0)&&
+(j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l=!1;break}}for(var r=
+{b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+=g.length,
+t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b===
+"string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m),
+l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
+q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/,
+q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g,
+"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a),
+a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e}
+for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute("value",
+m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}function E(a){var m=
+a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.nodeValue=
+j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
+"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
+H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
+J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+
+I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),
+["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",
+/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),
+["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",
+hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g),f,b;if(b=
+!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m,
+250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",
+PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();
diff --git a/doc/1.1.0/guacamole-common-js/styles/jsdoc-default.css b/doc/1.1.0/guacamole-common-js/styles/jsdoc-default.css
new file mode 100644
index 0000000..9207bc8
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/styles/jsdoc-default.css
@@ -0,0 +1,358 @@
+@font-face {
+    font-family: 'Open Sans';
+    font-weight: normal;
+    font-style: normal;
+    src: url('../fonts/OpenSans-Regular-webfont.eot');
+    src:
+        local('Open Sans'),
+        local('OpenSans'),
+        url('../fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'),
+        url('../fonts/OpenSans-Regular-webfont.woff') format('woff'),
+        url('../fonts/OpenSans-Regular-webfont.svg#open_sansregular') format('svg');
+}
+
+@font-face {
+    font-family: 'Open Sans Light';
+    font-weight: normal;
+    font-style: normal;
+    src: url('../fonts/OpenSans-Light-webfont.eot');
+    src:
+        local('Open Sans Light'),
+        local('OpenSans Light'),
+        url('../fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'),
+        url('../fonts/OpenSans-Light-webfont.woff') format('woff'),
+        url('../fonts/OpenSans-Light-webfont.svg#open_sanslight') format('svg');
+}
+
+html
+{
+    overflow: auto;
+    background-color: #fff;
+    font-size: 14px;
+}
+
+body
+{
+    font-family: 'Open Sans', sans-serif;
+    line-height: 1.5;
+    color: #4d4e53;
+    background-color: white;
+}
+
+a, a:visited, a:active {
+    color: #0095dd;
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: underline;
+}
+
+header
+{
+    display: block;
+    padding: 0px 4px;
+}
+
+tt, code, kbd, samp {
+    font-family: Consolas, Monaco, 'Andale Mono', monospace;
+}
+
+.class-description {
+    font-size: 130%;
+    line-height: 140%;
+    margin-bottom: 1em;
+    margin-top: 1em;
+}
+
+.class-description:empty {
+    margin: 0;
+}
+
+#main {
+    float: left;
+    width: 70%;
+}
+
+article dl {
+    margin-bottom: 40px;
+}
+
+article img {
+  max-width: 100%;
+}
+
+section
+{
+    display: block;
+    background-color: #fff;
+    padding: 12px 24px;
+    border-bottom: 1px solid #ccc;
+    margin-right: 30px;
+}
+
+.variation {
+    display: none;
+}
+
+.signature-attributes {
+    font-size: 60%;
+    color: #aaa;
+    font-style: italic;
+    font-weight: lighter;
+}
+
+nav
+{
+    display: block;
+    float: right;
+    margin-top: 28px;
+    width: 30%;
+    box-sizing: border-box;
+    border-left: 1px solid #ccc;
+    padding-left: 16px;
+}
+
+nav ul {
+    font-family: 'Lucida Grande', 'Lucida Sans Unicode', arial, sans-serif;
+    font-size: 100%;
+    line-height: 17px;
+    padding: 0;
+    margin: 0;
+    list-style-type: none;
+}
+
+nav ul a, nav ul a:visited, nav ul a:active {
+    font-family: Consolas, Monaco, 'Andale Mono', monospace;
+    line-height: 18px;
+    color: #4D4E53;
+}
+
+nav h3 {
+    margin-top: 12px;
+}
+
+nav li {
+    margin-top: 6px;
+}
+
+footer {
+    display: block;
+    padding: 6px;
+    margin-top: 12px;
+    font-style: italic;
+    font-size: 90%;
+}
+
+h1, h2, h3, h4 {
+    font-weight: 200;
+    margin: 0;
+}
+
+h1
+{
+    font-family: 'Open Sans Light', sans-serif;
+    font-size: 48px;
+    letter-spacing: -2px;
+    margin: 12px 24px 20px;
+}
+
+h2, h3.subsection-title
+{
+    font-size: 30px;
+    font-weight: 700;
+    letter-spacing: -1px;
+    margin-bottom: 12px;
+}
+
+h3
+{
+    font-size: 24px;
+    letter-spacing: -0.5px;
+    margin-bottom: 12px;
+}
+
+h4
+{
+    font-size: 18px;
+    letter-spacing: -0.33px;
+    margin-bottom: 12px;
+    color: #4d4e53;
+}
+
+h5, .container-overview .subsection-title
+{
+    font-size: 120%;
+    font-weight: bold;
+    letter-spacing: -0.01em;
+    margin: 8px 0 3px 0;
+}
+
+h6
+{
+    font-size: 100%;
+    letter-spacing: -0.01em;
+    margin: 6px 0 3px 0;
+    font-style: italic;
+}
+
+table
+{
+    border-spacing: 0;
+    border: 0;
+    border-collapse: collapse;
+}
+
+td, th
+{
+    border: 1px solid #ddd;
+    margin: 0px;
+    text-align: left;
+    vertical-align: top;
+    padding: 4px 6px;
+    display: table-cell;
+}
+
+thead tr
+{
+    background-color: #ddd;
+    font-weight: bold;
+}
+
+th { border-right: 1px solid #aaa; }
+tr > th:last-child { border-right: 1px solid #ddd; }
+
+.ancestors, .attribs { color: #999; }
+.ancestors a, .attribs a
+{
+    color: #999 !important;
+    text-decoration: none;
+}
+
+.clear
+{
+    clear: both;
+}
+
+.important
+{
+    font-weight: bold;
+    color: #950B02;
+}
+
+.yes-def {
+    text-indent: -1000px;
+}
+
+.type-signature {
+    color: #aaa;
+}
+
+.name, .signature {
+    font-family: Consolas, Monaco, 'Andale Mono', monospace;
+}
+
+.details { margin-top: 14px; border-left: 2px solid #DDD; }
+.details dt { width: 120px; float: left; padding-left: 10px;  padding-top: 6px; }
+.details dd { margin-left: 70px; }
+.details ul { margin: 0; }
+.details ul { list-style-type: none; }
+.details li { margin-left: 30px; padding-top: 6px; }
+.details pre.prettyprint { margin: 0 }
+.details .object-value { padding-top: 0; }
+
+.description {
+    margin-bottom: 1em;
+    margin-top: 1em;
+}
+
+.code-caption
+{
+    font-style: italic;
+    font-size: 107%;
+    margin: 0;
+}
+
+.prettyprint
+{
+    border: 1px solid #ddd;
+    width: 80%;
+    overflow: auto;
+}
+
+.prettyprint.source {
+    width: inherit;
+}
+
+.prettyprint code
+{
+    font-size: 100%;
+    line-height: 18px;
+    display: block;
+    padding: 4px 12px;
+    margin: 0;
+    background-color: #fff;
+    color: #4D4E53;
+}
+
+.prettyprint code span.line
+{
+  display: inline-block;
+}
+
+.prettyprint.linenums
+{
+  padding-left: 70px;
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+
+.prettyprint.linenums ol
+{
+  padding-left: 0;
+}
+
+.prettyprint.linenums li
+{
+  border-left: 3px #ddd solid;
+}
+
+.prettyprint.linenums li.selected,
+.prettyprint.linenums li.selected *
+{
+  background-color: lightyellow;
+}
+
+.prettyprint.linenums li *
+{
+  -webkit-user-select: text;
+  -moz-user-select: text;
+  -ms-user-select: text;
+  user-select: text;
+}
+
+.params .name, .props .name, .name code {
+    color: #4D4E53;
+    font-family: Consolas, Monaco, 'Andale Mono', monospace;
+    font-size: 100%;
+}
+
+.params td.description > p:first-child,
+.props td.description > p:first-child
+{
+    margin-top: 0;
+    padding-top: 0;
+}
+
+.params td.description > p:last-child,
+.props td.description > p:last-child
+{
+    margin-bottom: 0;
+    padding-bottom: 0;
+}
+
+.disabled {
+    color: #454545;
+}
diff --git a/doc/1.1.0/guacamole-common-js/styles/prettify-jsdoc.css b/doc/1.1.0/guacamole-common-js/styles/prettify-jsdoc.css
new file mode 100644
index 0000000..5a2526e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/styles/prettify-jsdoc.css
@@ -0,0 +1,111 @@
+/* JSDoc prettify.js theme */
+
+/* plain text */
+.pln {
+  color: #000000;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* string content */
+.str {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a keyword */
+.kwd {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* a comment */
+.com {
+  font-weight: normal;
+  font-style: italic;
+}
+
+/* a type name */
+.typ {
+  color: #000000;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a literal value */
+.lit {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* punctuation */
+.pun {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* lisp open bracket */
+.opn {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* lisp close bracket */
+.clo {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* a markup tag name */
+.tag {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a markup attribute name */
+.atn {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a markup attribute value */
+.atv {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a declaration */
+.dec {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* a variable name */
+.var {
+  color: #000000;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a function name */
+.fun {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* Specify class=linenums on a pre to get line numbering */
+ol.linenums {
+  margin-top: 0;
+  margin-bottom: 0;
+}
diff --git a/doc/1.1.0/guacamole-common-js/styles/prettify-tomorrow.css b/doc/1.1.0/guacamole-common-js/styles/prettify-tomorrow.css
new file mode 100644
index 0000000..b6f92a7
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/styles/prettify-tomorrow.css
@@ -0,0 +1,132 @@
+/* Tomorrow Theme */
+/* Original theme - https://github.com/chriskempson/tomorrow-theme */
+/* Pretty printing styles. Used with prettify.js. */
+/* SPAN elements with the classes below are added by prettyprint. */
+/* plain text */
+.pln {
+  color: #4d4d4c; }
+
+@media screen {
+  /* string content */
+  .str {
+    color: #718c00; }
+
+  /* a keyword */
+  .kwd {
+    color: #8959a8; }
+
+  /* a comment */
+  .com {
+    color: #8e908c; }
+
+  /* a type name */
+  .typ {
+    color: #4271ae; }
+
+  /* a literal value */
+  .lit {
+    color: #f5871f; }
+
+  /* punctuation */
+  .pun {
+    color: #4d4d4c; }
+
+  /* lisp open bracket */
+  .opn {
+    color: #4d4d4c; }
+
+  /* lisp close bracket */
+  .clo {
+    color: #4d4d4c; }
+
+  /* a markup tag name */
+  .tag {
+    color: #c82829; }
+
+  /* a markup attribute name */
+  .atn {
+    color: #f5871f; }
+
+  /* a markup attribute value */
+  .atv {
+    color: #3e999f; }
+
+  /* a declaration */
+  .dec {
+    color: #f5871f; }
+
+  /* a variable name */
+  .var {
+    color: #c82829; }
+
+  /* a function name */
+  .fun {
+    color: #4271ae; } }
+/* Use higher contrast and text-weight for printable form. */
+@media print, projection {
+  .str {
+    color: #060; }
+
+  .kwd {
+    color: #006;
+    font-weight: bold; }
+
+  .com {
+    color: #600;
+    font-style: italic; }
+
+  .typ {
+    color: #404;
+    font-weight: bold; }
+
+  .lit {
+    color: #044; }
+
+  .pun, .opn, .clo {
+    color: #440; }
+
+  .tag {
+    color: #006;
+    font-weight: bold; }
+
+  .atn {
+    color: #404; }
+
+  .atv {
+    color: #060; } }
+/* Style */
+/*
+pre.prettyprint {
+  background: white;
+  font-family: Consolas, Monaco, 'Andale Mono', monospace;
+  font-size: 12px;
+  line-height: 1.5;
+  border: 1px solid #ccc;
+  padding: 10px; }
+*/
+
+/* Specify class=linenums on a pre to get line numbering */
+ol.linenums {
+  margin-top: 0;
+  margin-bottom: 0; }
+
+/* IE indents via margin-left */
+li.L0,
+li.L1,
+li.L2,
+li.L3,
+li.L4,
+li.L5,
+li.L6,
+li.L7,
+li.L8,
+li.L9 {
+  /* */ }
+
+/* Alternate shading for lines */
+li.L1,
+li.L3,
+li.L5,
+li.L7,
+li.L9 {
+  /* */ }
diff --git a/doc/1.1.0/guacamole-common/allclasses-frame.html b/doc/1.1.0/guacamole-common/allclasses-frame.html
new file mode 100644
index 0000000..ee41a46
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/allclasses-frame.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>All Classes (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net" target="classFrame">AbstractGuacamoleTunnel</a></li>
+<li><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol" target="classFrame">ConfiguredGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net" target="classFrame">DelegatingGuacamoleTunnel</a></li>
+<li><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol" target="classFrame">FailoverGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol" target="classFrame">FilteredGuacamoleReader</a></li>
+<li><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol" target="classFrame">FilteredGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol" target="classFrame">FilteredGuacamoleWriter</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientBadTypeException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientException</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleClientInformation</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientOverrunException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientTimeoutException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientTooManyException</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleConfiguration</a></li>
+<li><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleConnectionClosedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleException</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol" target="classFrame"><span class="interfaceName">GuacamoleFilter</span></a></li>
+<li><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet" target="classFrame">GuacamoleHTTPTunnelServlet</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleInstruction</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleParser</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol" target="classFrame">GuacamoleProtocolCapability</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleProtocolVersion</a></li>
+<li><a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io" target="classFrame"><span class="interfaceName">GuacamoleReader</span></a></li>
+<li><a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceClosedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceConflictException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceNotFoundException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSecurityException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleServerBusyException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleServerException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionClosedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionConflictException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionTimeoutException</a></li>
+<li><a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net" target="classFrame"><span class="interfaceName">GuacamoleSocket</span></a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol" target="classFrame">GuacamoleStatus</a></li>
+<li><a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net" target="classFrame"><span class="interfaceName">GuacamoleTunnel</span></a></li>
+<li><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUnauthorizedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUnsupportedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamNotFoundException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamTimeoutException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamUnavailableException</a></li>
+<li><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket" target="classFrame">GuacamoleWebSocketTunnelEndpoint</a></li>
+<li><a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io" target="classFrame"><span class="interfaceName">GuacamoleWriter</span></a></li>
+<li><a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net" target="classFrame">InetGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io" target="classFrame">ReaderGuacamoleReader</a></li>
+<li><a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net" target="classFrame">SimpleGuacamoleTunnel</a></li>
+<li><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net" target="classFrame">SSLGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io" target="classFrame">WriterGuacamoleWriter</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/allclasses-noframe.html b/doc/1.1.0/guacamole-common/allclasses-noframe.html
new file mode 100644
index 0000000..df13149
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/allclasses-noframe.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>All Classes (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></li>
+<li><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></li>
+<li><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></li>
+<li><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></li>
+<li><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="interfaceName">GuacamoleFilter</span></a></li>
+<li><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></li>
+<li><a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io"><span class="interfaceName">GuacamoleReader</span></a></li>
+<li><a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></li>
+<li><a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="interfaceName">GuacamoleSocket</span></a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></li>
+<li><a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="interfaceName">GuacamoleTunnel</span></a></li>
+<li><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></li>
+<li><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></li>
+<li><a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="interfaceName">GuacamoleWriter</span></a></li>
+<li><a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></li>
+<li><a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></li>
+<li><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/constant-values.html b/doc/1.1.0/guacamole-common/constant-values.html
new file mode 100644
index 0000000..0f07664
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/constant-values.html
@@ -0,0 +1,190 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Constant Field Values (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Constant Field Values (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
+<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
+<h2 title="Contents">Contents</h2>
+<ul>
+<li><a href="#org.apache">org.apache.*</a></li>
+</ul>
+</div>
+<div class="constantValuesContainer"><a name="org.apache">
+<!--   -->
+</a>
+<h2 title="org.apache">org.apache.*</h2>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.net.GuacamoleTunnel.INTERNAL_DATA_OPCODE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/net/GuacamoleTunnel.html#INTERNAL_DATA_OPCODE">INTERNAL_DATA_OPCODE</a></code></td>
+<td class="colLast"><code>""</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.protocol.GuacamoleParser.INSTRUCTION_MAX_DIGITS">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_DIGITS">INSTRUCTION_MAX_DIGITS</a></code></td>
+<td class="colLast"><code>5</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.guacamole.protocol.GuacamoleParser.INSTRUCTION_MAX_ELEMENTS">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_ELEMENTS">INSTRUCTION_MAX_ELEMENTS</a></code></td>
+<td class="colLast"><code>64</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.protocol.GuacamoleParser.INSTRUCTION_MAX_LENGTH">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_LENGTH">INSTRUCTION_MAX_LENGTH</a></code></td>
+<td class="colLast"><code>8192</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
+<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/deprecated-list.html b/doc/1.1.0/guacamole-common/deprecated-list.html
new file mode 100644
index 0000000..c94b9ff
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/deprecated-list.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Deprecated List (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Deprecated List (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Deprecated API" class="title">Deprecated API</h1>
+<h2 title="Contents">Contents</h2>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/help-doc.html b/doc/1.1.0/guacamole-common/help-doc.html
new file mode 100644
index 0000000..e1f152b
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/help-doc.html
@@ -0,0 +1,231 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>API Help (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="API Help (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
+<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">How This API Document Is Organized</h1>
+<div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<h2>Overview</h2>
+<p>The <a href="overview-summary.html">Overview</a> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</p>
+</li>
+<li class="blockList">
+<h2>Package</h2>
+<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:</p>
+<ul>
+<li>Interfaces (italic)</li>
+<li>Classes</li>
+<li>Enums</li>
+<li>Exceptions</li>
+<li>Errors</li>
+<li>Annotation Types</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Class/Interface</h2>
+<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
+<ul>
+<li>Class inheritance diagram</li>
+<li>Direct Subclasses</li>
+<li>All Known Subinterfaces</li>
+<li>All Known Implementing Classes</li>
+<li>Class/interface declaration</li>
+<li>Class/interface description</li>
+</ul>
+<ul>
+<li>Nested Class Summary</li>
+<li>Field Summary</li>
+<li>Constructor Summary</li>
+<li>Method Summary</li>
+</ul>
+<ul>
+<li>Field Detail</li>
+<li>Constructor Detail</li>
+<li>Method Detail</li>
+</ul>
+<p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
+</li>
+<li class="blockList">
+<h2>Annotation Type</h2>
+<p>Each annotation type has its own separate page with the following sections:</p>
+<ul>
+<li>Annotation Type declaration</li>
+<li>Annotation Type description</li>
+<li>Required Element Summary</li>
+<li>Optional Element Summary</li>
+<li>Element Detail</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Enum</h2>
+<p>Each enum has its own separate page with the following sections:</p>
+<ul>
+<li>Enum declaration</li>
+<li>Enum description</li>
+<li>Enum Constant Summary</li>
+<li>Enum Constant Detail</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Use</h2>
+<p>Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</p>
+</li>
+<li class="blockList">
+<h2>Tree (Class Hierarchy)</h2>
+<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.</p>
+<ul>
+<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
+<li>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Deprecated API</h2>
+<p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p>
+</li>
+<li class="blockList">
+<h2>Index</h2>
+<p>The <a href="index-all.html">Index</a> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</p>
+</li>
+<li class="blockList">
+<h2>Prev/Next</h2>
+<p>These links take you to the next or previous class, interface, package, or related page.</p>
+</li>
+<li class="blockList">
+<h2>Frames/No Frames</h2>
+<p>These links show and hide the HTML frames.  All pages are available with or without frames.</p>
+</li>
+<li class="blockList">
+<h2>All Classes</h2>
+<p>The <a href="allclasses-noframe.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
+</li>
+<li class="blockList">
+<h2>Serialized Form</h2>
+<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
+</li>
+<li class="blockList">
+<h2>Constant Field Values</h2>
+<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
+</li>
+</ul>
+<span class="emphasizedPhrase">This help file applies to API documentation generated using the standard doclet.</span></div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
+<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/index-all.html b/doc/1.1.0/guacamole-common/index-all.html
new file mode 100644
index 0000000..655dc16
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/index-all.html
@@ -0,0 +1,1449 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Index (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="contentContainer"><a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a name="I:A">
+<!--   -->
+</a>
+<h2 class="title">A</h2>
+<dl>
+<dt><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">AbstractGuacamoleTunnel</span></a> - Class in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">Base GuacamoleTunnel implementation which synchronizes access to the
+ underlying reader and writer with reentrant locks.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#AbstractGuacamoleTunnel--">AbstractGuacamoleTunnel()</a></span> - Constructor for class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the underlying
+ GuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireReader--">acquireReader()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#acquireReader--">acquireReader()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#acquireReader--">acquireReader()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireWriter--">acquireWriter()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#acquireWriter--">acquireWriter()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#acquireWriter--">acquireWriter()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#append-char:A-int-int-">append(char[], int, int)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#append-char:A-">append(char[])</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#atLeast-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">atLeast(GuacamoleProtocolVersion)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Returns whether this GuacamoleProtocolVersion is at least as recent as
+ (greater than or equal to) the given version.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/GuacamoleReader.html#available--">available()</a></span> - Method in interface org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></dt>
+<dd>
+<div class="block">Returns whether instruction data is available for reading.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html#available--">available()</a></span> - Method in class org.apache.guacamole.io.<a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html#available--">available()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:C">
+<!--   -->
+</a>
+<h2 class="title">C</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#close--">close()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#close--">close()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleSocket.html#close--">close()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dt>
+<dd>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#close--">close()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/InetGuacamoleSocket.html#close--">close()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html#close--">close()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#close--">close()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#close--">close()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#close--">close()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">ConfiguredGuacamoleSocket</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">A GuacamoleSocket which pre-configures the connection based on a given
+ GuacamoleConfiguration, completing the initial protocol handshake before
+ accepting data for read or write.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-">ConfiguredGuacamoleSocket(GuacamoleSocket, GuacamoleConfiguration)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration to complete the initial protocol handshake over
+ the given GuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">ConfiguredGuacamoleSocket(GuacamoleSocket, GuacamoleConfiguration, GuacamoleClientInformation)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#createTunnel-javax.websocket.Session-javax.websocket.EndpointConfig-">createTunnel(Session, EndpointConfig)</a></span> - Method in class org.apache.guacamole.websocket.<a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></dt>
+<dd>
+<div class="block">Returns a new tunnel for the given session.</div>
+</dd>
+</dl>
+<a name="I:D">
+<!--   -->
+</a>
+<h2 class="title">D</h2>
+<dl>
+<dt><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">DelegatingGuacamoleTunnel</span></a> - Class in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">GuacamoleTunnel implementation which simply delegates all function calls to
+ an underlying GuacamoleTunnel.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#DelegatingGuacamoleTunnel-org.apache.guacamole.net.GuacamoleTunnel-">DelegatingGuacamoleTunnel(GuacamoleTunnel)</a></span> - Constructor for class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Wraps the given tunnel such that all function calls against this tunnel
+ will be delegated to it.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#deregisterTunnel-org.apache.guacamole.net.GuacamoleTunnel-">deregisterTunnel(GuacamoleTunnel)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Deregisters the given tunnel such that future read/write requests to
+ that tunnel will be rejected.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#destroy--">destroy()</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doConnect-javax.servlet.http.HttpServletRequest-">doConnect(HttpServletRequest)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Called whenever the JavaScript Guacamole client makes a connection
+ request via HTTP.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doGet-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">doGet(HttpServletRequest, HttpServletResponse)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doPost-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">doPost(HttpServletRequest, HttpServletResponse)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doRead-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">doRead(HttpServletRequest, HttpServletResponse, String)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Called whenever the JavaScript Guacamole client makes a read request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doWrite-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">doWrite(HttpServletRequest, HttpServletResponse, String)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Called whenever the JavaScript Guacamole client makes a write request.</div>
+</dd>
+</dl>
+<a name="I:E">
+<!--   -->
+</a>
+<h2 class="title">E</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:F">
+<!--   -->
+</a>
+<h2 class="title">F</h2>
+<dl>
+<dt><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FailoverGuacamoleSocket</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">GuacamoleSocket which intercepts errors received early in the Guacamole
+ session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-int-">FailoverGuacamoleSocket(GuacamoleSocket, int)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until the given instruction queue limit is reached.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">FailoverGuacamoleSocket(GuacamoleSocket)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until a maximum of 128KB of instruction data has been queued.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleFilter.html#filter-org.apache.guacamole.protocol.GuacamoleInstruction-">filter(GuacamoleInstruction)</a></span> - Method in interface org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a></dt>
+<dd>
+<div class="block">Applies the filter to the given instruction, returning the original
+ instruction, a modified version of the original, or null, depending
+ on the implementation.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleReader</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">GuacamoleReader which applies a given GuacamoleFilter to observe or alter all
+ read instructions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html#FilteredGuacamoleReader-org.apache.guacamole.io.GuacamoleReader-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleReader(GuacamoleReader, GuacamoleFilter)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></dt>
+<dd>
+<div class="block">Wraps the given GuacamoleReader, applying the given filter to all read
+ instructions.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleSocket</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">Implementation of GuacamoleSocket which allows individual instructions to be
+ intercepted, overridden, etc.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#FilteredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleFilter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleSocket(GuacamoleSocket, GuacamoleFilter, GuacamoleFilter)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new FilteredGuacamoleSocket which uses the given filters to
+ determine whether instructions read/written are allowed through,
+ modified, etc.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleWriter</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">GuacamoleWriter which applies a given GuacamoleFilter to observe or alter
+ all written instructions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#FilteredGuacamoleWriter-org.apache.guacamole.io.GuacamoleWriter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleWriter(GuacamoleWriter, GuacamoleFilter)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></dt>
+<dd>
+<div class="block">Wraps the given GuacamoleWriter, applying the given filter to all written 
+ instructions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleStatus.html#fromGuacamoleStatusCode-int-">fromGuacamoleStatusCode(int)</a></span> - Static method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></dt>
+<dd>
+<div class="block">Returns the GuacamoleStatus corresponding to the given Guacamole
+ protocol status code.</div>
+</dd>
+</dl>
+<a name="I:G">
+<!--   -->
+</a>
+<h2 class="title">G</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html#getArgs--">getArgs()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></dt>
+<dd>
+<div class="block">Returns a List of all argument values specified for this
+ GuacamoleInstruction.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getAudioMimetypes--">getAudioMimetypes()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Returns the list of audio mimetypes supported by the client.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getConfiguration--">getConfiguration()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Returns the GuacamoleConfiguration used to configure this
+ ConfiguredGuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getConnectionID--">getConnectionID()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Returns the unique ID associated with the Guacamole connection
+ negotiated by this ConfiguredGuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#getConnectionID--">getConnectionID()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Returns the ID of the connection being joined, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleStatus.html#getGuacamoleStatusCode--">getGuacamoleStatusCode()</a></span> - Method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></dt>
+<dd>
+<div class="block">Returns the corresponding Guacamole protocol status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></dt>
+<dd>
+<div class="block">Returns the most applicable HTTP status code that can be associated
+ with this exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleStatus.html#getHttpStatusCode--">getHttpStatusCode()</a></span> - Method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></dt>
+<dd>
+<div class="block">Returns the most applicable HTTP error code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getImageMimetypes--">getImageMimetypes()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Returns the list of image mimetypes supported by the client.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#getMajor--">getMajor()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Return the major version component of the protocol version.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#getMinor--">getMinor()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Return the minor version component of the protocol version.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html#getOpcode--">getOpcode()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></dt>
+<dd>
+<div class="block">Returns the opcode associated with this GuacamoleInstruction.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getOptimalResolution--">getOptimalResolution()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Returns the resolution of the screen if the optimal width and height are
+ used, in DPI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getOptimalScreenHeight--">getOptimalScreenHeight()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Returns the optimal screen height requested by the client, in pixels.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getOptimalScreenWidth--">getOptimalScreenWidth()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Returns the optimal screen width requested by the client, in pixels.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#getParameter-java.lang.String-">getParameter(String)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Returns the value set for the parameter with the given name, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#getParameterNames--">getParameterNames()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Returns a set of all currently defined parameter names.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#getParameters--">getParameters()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Returns a map which contains parameter name/value pairs as key/value
+ pairs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#getPatch--">getPatch()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Return the patch version component of the protocol version.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#getProtocol--">getProtocol()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Returns the name of the protocol to be used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getProtocolVersion--">getProtocolVersion()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Returns the version of the Guacamole protocol associated with the
+ Guacamole connection negotiated by this ConfiguredGuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dt>
+<dd>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/InetGuacamoleSocket.html#getReader--">getReader()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html#getReader--">getReader()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getReader--">getReader()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#getReader--">getReader()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#getReader--">getReader()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#getSocket--">getSocket()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">getSocket()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html#getSocket--">getSocket()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientOverrunException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTooManyException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></dt>
+<dd>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceClosedException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceConflictException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSecurityException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerBusyException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionClosedException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionConflictException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnsupportedException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getTimezone--">getTimezone()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Return the timezone as reported by the client, or null if the timezone
+ is not set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#getTunnel-java.lang.String-">getTunnel(String)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Returns the tunnel with the given UUID, if it has been registered with
+ registerTunnel() and not yet deregistered with deregisterTunnel().</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#getUUID--">getUUID()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#getUUID--">getUUID()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html#getUUID--">getUUID()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getVideoMimetypes--">getVideoMimetypes()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Returns the list of video mimetypes supported by the client.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></dt>
+<dd>
+<div class="block">Returns the most applicable WebSocket status code that can be
+ associated with this exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleStatus.html#getWebSocketCode--">getWebSocketCode()</a></span> - Method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></dt>
+<dd>
+<div class="block">Returns the most applicable HTTP error code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dt>
+<dd>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/InetGuacamoleSocket.html#getWriter--">getWriter()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html#getWriter--">getWriter()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getWriter--">getWriter()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#getWriter--">getWriter()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#getWriter--">getWriter()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientBadTypeException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when data has been submitted with an unsupported
+ mimetype.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html#GuacamoleClientBadTypeException-java.lang.String-java.lang.Throwable-">GuacamoleClientBadTypeException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html#GuacamoleClientBadTypeException-java.lang.String-">GuacamoleClientBadTypeException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html#GuacamoleClientBadTypeException-java.lang.Throwable-">GuacamoleClientBadTypeException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an error in the client's request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientException.html#GuacamoleClientException-java.lang.String-java.lang.Throwable-">GuacamoleClientException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientException.html#GuacamoleClientException-java.lang.String-">GuacamoleClientException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientException.html#GuacamoleClientException-java.lang.Throwable-">GuacamoleClientException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleClientInformation</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">An abstract representation of Guacamole client information, including all
+ information required by the Guacamole protocol during the preamble.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#GuacamoleClientInformation--">GuacamoleClientInformation()</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientOverrunException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when the client has sent too much data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientOverrunException.html#GuacamoleClientOverrunException-java.lang.String-java.lang.Throwable-">GuacamoleClientOverrunException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientOverrunException.html#GuacamoleClientOverrunException-java.lang.String-">GuacamoleClientOverrunException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientOverrunException.html#GuacamoleClientOverrunException-java.lang.Throwable-">GuacamoleClientOverrunException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientTimeoutException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when the client is taking too long to respond.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html#GuacamoleClientTimeoutException-java.lang.String-java.lang.Throwable-">GuacamoleClientTimeoutException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html#GuacamoleClientTimeoutException-java.lang.String-">GuacamoleClientTimeoutException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html#GuacamoleClientTimeoutException-java.lang.Throwable-">GuacamoleClientTimeoutException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientTooManyException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when too many requests have been received
+ by the current client, and further requests are being rejected, either
+ temporarily or permanently.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTooManyException.html#GuacamoleClientTooManyException-java.lang.String-java.lang.Throwable-">GuacamoleClientTooManyException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTooManyException.html#GuacamoleClientTooManyException-java.lang.String-">GuacamoleClientTooManyException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTooManyException.html#GuacamoleClientTooManyException-java.lang.Throwable-">GuacamoleClientTooManyException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleConfiguration</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">All information necessary to complete the initial protocol handshake of a
+ Guacamole session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#GuacamoleConfiguration--">GuacamoleConfiguration()</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Creates a new, blank GuacamoleConfiguration with its protocol, connection
+ ID, and parameters unset.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">GuacamoleConfiguration(GuacamoleConfiguration)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Copies the given GuacamoleConfiguration, creating a new, indepedent
+ GuacamoleConfiguration containing the same protocol, connection ID,
+ and parameter values, if any.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleConnectionClosedException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when an operation cannot be performed because
+ its corresponding connection is closed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html#GuacamoleConnectionClosedException-java.lang.String-java.lang.Throwable-">GuacamoleConnectionClosedException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given message
+ and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html#GuacamoleConnectionClosedException-java.lang.String-">GuacamoleConnectionClosedException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html#GuacamoleConnectionClosedException-java.lang.Throwable-">GuacamoleConnectionClosedException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleException.html#GuacamoleException-java.lang.String-java.lang.Throwable-">GuacamoleException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleException.html#GuacamoleException-java.lang.String-">GuacamoleException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleException.html#GuacamoleException-java.lang.Throwable-">GuacamoleException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleFilter</span></a> - Interface in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">Interface which provides for the filtering of individual instructions.</div>
+</dd>
+<dt><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet"><span class="typeNameLink">GuacamoleHTTPTunnelServlet</span></a> - Class in <a href="org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a></dt>
+<dd>
+<div class="block">A HttpServlet implementing and abstracting the operations required by the
+ HTTP implementation of the JavaScript Guacamole client's tunnel.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#GuacamoleHTTPTunnelServlet--">GuacamoleHTTPTunnelServlet()</a></span> - Constructor for class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleInstruction</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">An abstract representation of a Guacamole instruction, as defined by the
+ Guacamole protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html#GuacamoleInstruction-java.lang.String-java.lang.String...-">GuacamoleInstruction(String, String...)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInstruction having the given Operation and
+ list of arguments values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html#GuacamoleInstruction-java.lang.String-java.util.List-">GuacamoleInstruction(String, List&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInstruction having the given Operation and
+ list of arguments values.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleParser</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">Parser for the Guacamole protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#GuacamoleParser--">GuacamoleParser()</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleProtocolCapability</span></a> - Enum in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">Capabilities which may not be present in all versions of the Guacamole
+ protocol.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleProtocolVersion</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">Representation of a Guacamole protocol version.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#GuacamoleProtocolVersion-int-int-int-">GuacamoleProtocolVersion(int, int, int)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Generate a new GuacamoleProtocolVersion object with the given
+ major version, minor version, and patch version.</div>
+</dd>
+<dt><a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">GuacamoleReader</span></a> - Interface in <a href="org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></dt>
+<dd>
+<div class="block">Provides abstract and raw character read access to a stream of Guacamole
+ instructions.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceClosedException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when a resource is no longer available because
+ it is closed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceClosedException.html#GuacamoleResourceClosedException-java.lang.String-java.lang.Throwable-">GuacamoleResourceClosedException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given message
+ and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceClosedException.html#GuacamoleResourceClosedException-java.lang.String-">GuacamoleResourceClosedException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceClosedException.html#GuacamoleResourceClosedException-java.lang.Throwable-">GuacamoleResourceClosedException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceConflictException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when a resource has been requested, but that
+ resource is locked or currently in use, and cannot be accessed by the
+ current user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceConflictException.html#GuacamoleResourceConflictException-java.lang.String-java.lang.Throwable-">GuacamoleResourceConflictException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceConflictException.html#GuacamoleResourceConflictException-java.lang.String-">GuacamoleResourceConflictException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceConflictException.html#GuacamoleResourceConflictException-java.lang.Throwable-">GuacamoleResourceConflictException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceNotFoundException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">A generic exception thrown when part of the Guacamole API fails to find
+ a requested resource, such as a configuration or tunnel.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html#GuacamoleResourceNotFoundException-java.lang.String-java.lang.Throwable-">GuacamoleResourceNotFoundException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given message
+ and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html#GuacamoleResourceNotFoundException-java.lang.String-">GuacamoleResourceNotFoundException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html#GuacamoleResourceNotFoundException-java.lang.Throwable-">GuacamoleResourceNotFoundException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSecurityException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSecurityException.html#GuacamoleSecurityException-java.lang.String-java.lang.Throwable-">GuacamoleSecurityException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSecurityException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSecurityException.html#GuacamoleSecurityException-java.lang.String-">GuacamoleSecurityException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSecurityException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSecurityException.html#GuacamoleSecurityException-java.lang.Throwable-">GuacamoleSecurityException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSecurityException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleServerBusyException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when the server is too busy to service the
+ request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerBusyException.html#GuacamoleServerBusyException-java.lang.String-java.lang.Throwable-">GuacamoleServerBusyException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleServerBusyException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerBusyException.html#GuacamoleServerBusyException-java.lang.String-">GuacamoleServerBusyException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleServerBusyException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerBusyException.html#GuacamoleServerBusyException-java.lang.Throwable-">GuacamoleServerBusyException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleServerBusyException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleServerException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an unexpected, internal error.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerException.html#GuacamoleServerException-java.lang.String-java.lang.Throwable-">GuacamoleServerException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleServerException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerException.html#GuacamoleServerException-java.lang.String-">GuacamoleServerException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleServerException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerException.html#GuacamoleServerException-java.lang.Throwable-">GuacamoleServerException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleServerException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionClosedException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has been forcibly terminated.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionClosedException.html#GuacamoleSessionClosedException-java.lang.String-java.lang.Throwable-">GuacamoleSessionClosedException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given message and
+ cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionClosedException.html#GuacamoleSessionClosedException-java.lang.String-">GuacamoleSessionClosedException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionClosedException.html#GuacamoleSessionClosedException-java.lang.Throwable-">GuacamoleSessionClosedException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionConflictException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it conflicted with another session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionConflictException.html#GuacamoleSessionConflictException-java.lang.String-java.lang.Throwable-">GuacamoleSessionConflictException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given message
+ and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionConflictException.html#GuacamoleSessionConflictException-java.lang.String-">GuacamoleSessionConflictException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionConflictException.html#GuacamoleSessionConflictException-java.lang.Throwable-">GuacamoleSessionConflictException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionTimeoutException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it appeared to be inactive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html#GuacamoleSessionTimeoutException-java.lang.String-java.lang.Throwable-">GuacamoleSessionTimeoutException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given message
+ and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html#GuacamoleSessionTimeoutException-java.lang.String-">GuacamoleSessionTimeoutException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html#GuacamoleSessionTimeoutException-java.lang.Throwable-">GuacamoleSessionTimeoutException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">GuacamoleSocket</span></a> - Interface in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">Provides abstract socket-like access to a Guacamole connection.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleStatus</span></a> - Enum in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">All possible statuses returned by various Guacamole instructions, each having
+ a corresponding code.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">GuacamoleTunnel</span></a> - Interface in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">Provides a unique identifier and synchronized access to the GuacamoleReader
+ and GuacamoleWriter associated with a GuacamoleSocket.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUnauthorizedException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource, but access MAY be granted were the user
+ authorized (logged in).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html#GuacamoleUnauthorizedException-java.lang.String-java.lang.Throwable-">GuacamoleUnauthorizedException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html#GuacamoleUnauthorizedException-java.lang.String-">GuacamoleUnauthorizedException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html#GuacamoleUnauthorizedException-java.lang.Throwable-">GuacamoleUnauthorizedException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUnsupportedException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when the requested operation is unsupported
+ or unimplemented.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnsupportedException.html#GuacamoleUnsupportedException-java.lang.String-java.lang.Throwable-">GuacamoleUnsupportedException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnsupportedException.html#GuacamoleUnsupportedException-java.lang.String-">GuacamoleUnsupportedException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnsupportedException.html#GuacamoleUnsupportedException-java.lang.Throwable-">GuacamoleUnsupportedException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is returning an error or is otherwise unreachable.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamException.html#GuacamoleUpstreamException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message and
+ cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamException.html#GuacamoleUpstreamException-java.lang.String-">GuacamoleUpstreamException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamException.html#GuacamoleUpstreamException-java.lang.Throwable-">GuacamoleUpstreamException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamNotFoundException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) does not appear to exist.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#GuacamoleUpstreamNotFoundException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamNotFoundException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given message
+ and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#GuacamoleUpstreamNotFoundException-java.lang.String-">GuacamoleUpstreamNotFoundException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#GuacamoleUpstreamNotFoundException-java.lang.Throwable-">GuacamoleUpstreamNotFoundException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamTimeoutException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is taking too long to respond.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#GuacamoleUpstreamTimeoutException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamTimeoutException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message and
+ cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#GuacamoleUpstreamTimeoutException-java.lang.String-">GuacamoleUpstreamTimeoutException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#GuacamoleUpstreamTimeoutException-java.lang.Throwable-">GuacamoleUpstreamTimeoutException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamUnavailableException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) is not available to service the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#GuacamoleUpstreamUnavailableException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamUnavailableException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#GuacamoleUpstreamUnavailableException-java.lang.String-">GuacamoleUpstreamUnavailableException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#GuacamoleUpstreamUnavailableException-java.lang.Throwable-">GuacamoleUpstreamUnavailableException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket"><span class="typeNameLink">GuacamoleWebSocketTunnelEndpoint</span></a> - Class in <a href="org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a></dt>
+<dd>
+<div class="block">A WebSocket implementation of GuacamoleTunnel functionality, compatible with
+ the Guacamole.WebSocketTunnel object included with the JavaScript API.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#GuacamoleWebSocketTunnelEndpoint--">GuacamoleWebSocketTunnelEndpoint()</a></span> - Constructor for class org.apache.guacamole.websocket.<a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">GuacamoleWriter</span></a> - Interface in <a href="org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></dt>
+<dd>
+<div class="block">Provides abstract and raw character write access to a stream of Guacamole
+ instructions.</div>
+</dd>
+</dl>
+<a name="I:H">
+<!--   -->
+</a>
+<h2 class="title">H</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#handleTunnelRequest-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">handleTunnelRequest(HttpServletRequest, HttpServletResponse)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Dispatches every HTTP GET and POST request to the appropriate handler
+ function based on the query string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#hashCode--">hashCode()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#hasNext--">hasNext()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+</dd>
+</dl>
+<a name="I:I">
+<!--   -->
+</a>
+<h2 class="title">I</h2>
+<dl>
+<dt><a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">InetGuacamoleSocket</span></a> - Class in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">Provides abstract socket-like access to a Guacamole connection over a given
+ hostname and port.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/InetGuacamoleSocket.html#InetGuacamoleSocket-java.lang.String-int-">InetGuacamoleSocket(String, int)</a></span> - Constructor for class org.apache.guacamole.net.<a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new InetGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_DIGITS">INSTRUCTION_MAX_DIGITS</a></span> - Static variable in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>
+<div class="block">The maximum number of digits to allow per length prefix.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_ELEMENTS">INSTRUCTION_MAX_ELEMENTS</a></span> - Static variable in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>
+<div class="block">The maximum number of elements per instruction, including the opcode.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_LENGTH">INSTRUCTION_MAX_LENGTH</a></span> - Static variable in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>
+<div class="block">The maximum number of characters per instruction.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#INTERNAL_DATA_OPCODE">INTERNAL_DATA_OPCODE</a></span> - Static variable in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">The Guacamole protocol instruction opcode reserved for arbitrary
+ internal use by tunnel implementations.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#isOpen--">isOpen()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#isOpen--">isOpen()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">isOpen()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dt>
+<dd>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#isOpen--">isOpen()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/InetGuacamoleSocket.html#isOpen--">isOpen()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html#isOpen--">isOpen()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#isOpen--">isOpen()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#isOpen--">isOpen()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#isOpen--">isOpen()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#isSupported-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">isSupported(GuacamoleProtocolVersion)</a></span> - Method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></dt>
+<dd>
+<div class="block">Returns whether this capability is supported in the given Guacamole
+ protocol version.</div>
+</dd>
+</dl>
+<a name="I:L">
+<!--   -->
+</a>
+<h2 class="title">L</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#LATEST">LATEST</a></span> - Static variable in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">The most recent version of the Guacamole protocol at the time this
+ version of GuacamoleProtocolVersion was built.</div>
+</dd>
+</dl>
+<a name="I:N">
+<!--   -->
+</a>
+<h2 class="title">N</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#next--">next()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:O">
+<!--   -->
+</a>
+<h2 class="title">O</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#onClose-javax.websocket.Session-javax.websocket.CloseReason-">onClose(Session, CloseReason)</a></span> - Method in class org.apache.guacamole.websocket.<a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#onMessage-java.lang.String-">onMessage(String)</a></span> - Method in class org.apache.guacamole.websocket.<a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#onOpen-javax.websocket.Session-javax.websocket.EndpointConfig-">onOpen(Session, EndpointConfig)</a></span> - Method in class org.apache.guacamole.websocket.<a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a> - package org.apache.guacamole</dt>
+<dd>
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</dd>
+<dt><a href="org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> - package org.apache.guacamole.io</dt>
+<dd>
+<div class="block">All classes relating directly to data input or output.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> - package org.apache.guacamole.net</dt>
+<dd>
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> - package org.apache.guacamole.protocol</dt>
+<dd>
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</dd>
+<dt><a href="org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a> - package org.apache.guacamole.servlet</dt>
+<dd>
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</dd>
+<dt><a href="org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a> - package org.apache.guacamole.websocket</dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:P">
+<!--   -->
+</a>
+<h2 class="title">P</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#parseVersion-java.lang.String-">parseVersion(String)</a></span> - Static method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Parse the String format of the version provided and return the
+ the enum value matching that version.</div>
+</dd>
+</dl>
+<a name="I:R">
+<!--   -->
+</a>
+<h2 class="title">R</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/GuacamoleReader.html#read--">read()</a></span> - Method in interface org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></dt>
+<dd>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html#read--">read()</a></span> - Method in class org.apache.guacamole.io.<a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html#read--">read()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">ReaderGuacamoleReader</span></a> - Class in <a href="org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></dt>
+<dd>
+<div class="block">A GuacamoleReader which wraps a standard Java Reader, using that Reader as
+ the Guacamole instruction stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html#ReaderGuacamoleReader-java.io.Reader-">ReaderGuacamoleReader(Reader)</a></span> - Constructor for class org.apache.guacamole.io.<a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></dt>
+<dd>
+<div class="block">Creates a new ReaderGuacamoleReader which will use the given Reader as
+ the Guacamole instruction stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">readInstruction()</a></span> - Method in interface org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></dt>
+<dd>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html#readInstruction--">readInstruction()</a></span> - Method in class org.apache.guacamole.io.<a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html#readInstruction--">readInstruction()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#registerTunnel-org.apache.guacamole.net.GuacamoleTunnel-">registerTunnel(GuacamoleTunnel)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Registers the given tunnel such that future read/write requests to that
+ tunnel will be properly directed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#releaseReader--">releaseReader()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#releaseReader--">releaseReader()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#releaseReader--">releaseReader()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#releaseWriter--">releaseWriter()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#releaseWriter--">releaseWriter()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#releaseWriter--">releaseWriter()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#remove--">remove()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:S">
+<!--   -->
+</a>
+<h2 class="title">S</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#sendError-javax.servlet.http.HttpServletResponse-int-int-java.lang.String-">sendError(HttpServletResponse, int, int, String)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Sends an error on the given HTTP response using the information within
+ the given GuacamoleStatus.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#setConnectionID-java.lang.String-">setConnectionID(String)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Sets the ID of the connection being joined, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#setOptimalResolution-int-">setOptimalResolution(int)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Sets the resolution of the screen if the optimal width and height are
+ used, in DPI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#setOptimalScreenHeight-int-">setOptimalScreenHeight(int)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Sets the client's optimal screen height.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#setOptimalScreenWidth-int-">setOptimalScreenWidth(int)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Sets the client's optimal screen width.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#setParameter-java.lang.String-java.lang.String-">setParameter(String, String)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Sets the value for the parameter with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#setParameters-java.util.Map-">setParameters(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#setProtocol-java.lang.String-">setProtocol(String)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Sets the name of the protocol to be used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#setTimezone-java.lang.String-">setTimezone(String)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Set the string value of the timezone, or null if the timezone will not
+ be provided by the client.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">SimpleGuacamoleTunnel</span></a> - Class in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">GuacamoleTunnel implementation which uses a provided socket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html#SimpleGuacamoleTunnel-org.apache.guacamole.net.GuacamoleSocket-">SimpleGuacamoleTunnel(GuacamoleSocket)</a></span> - Constructor for class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the given GuacamoleSocket.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">SSLGuacamoleSocket</span></a> - Class in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">Provides abstract socket-like access to a Guacamole connection over SSL to
+ a given hostname and port.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html#SSLGuacamoleSocket-java.lang.String-int-">SSLGuacamoleSocket(String, int)</a></span> - Constructor for class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new SSLGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port using SSL.</div>
+</dd>
+</dl>
+<a name="I:T">
+<!--   -->
+</a>
+<h2 class="title">T</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html#toString--">toString()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></dt>
+<dd>
+<div class="block">Returns this GuacamoleInstruction in the form it would be sent over the
+ Guacamole protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#toString--">toString()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:U">
+<!--   -->
+</a>
+<h2 class="title">U</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#unsetParameter-java.lang.String-">unsetParameter(String)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Removes the value set for the parameter with the given name.</div>
+</dd>
+</dl>
+<a name="I:V">
+<!--   -->
+</a>
+<h2 class="title">V</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleStatus.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleStatus.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_0_0">VERSION_1_0_0</a></span> - Static variable in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Protocol version 1.0.0 and older.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_1_0">VERSION_1_1_0</a></span> - Static variable in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Protocol version 1.1.0, which introduces Client-Server version
+ detection, arbitrary handshake instruction order, and support
+ for passing the client timezone to the server during the handshake.</div>
+</dd>
+</dl>
+<a name="I:W">
+<!--   -->
+</a>
+<h2 class="title">W</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">write(char[], int, int)</a></span> - Method in interface org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></dt>
+<dd>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">write(char[])</a></span> - Method in interface org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></dt>
+<dd>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html#write-char:A-int-int-">write(char[], int, int)</a></span> - Method in class org.apache.guacamole.io.<a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html#write-char:A-">write(char[])</a></span> - Method in class org.apache.guacamole.io.<a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#write-char:A-int-int-">write(char[], int, int)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#write-char:A-">write(char[])</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction(GuacamoleInstruction)</a></span> - Method in interface org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></dt>
+<dd>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction(GuacamoleInstruction)</a></span> - Method in class org.apache.guacamole.io.<a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction(GuacamoleInstruction)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">WriterGuacamoleWriter</span></a> - Class in <a href="org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></dt>
+<dd>
+<div class="block">A GuacamoleWriter which wraps a standard Java Writer, using that Writer as
+ the Guacamole instruction stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html#WriterGuacamoleWriter-java.io.Writer-">WriterGuacamoleWriter(Writer)</a></span> - Constructor for class org.apache.guacamole.io.<a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></dt>
+<dd>
+<div class="block">Creates a new WriterGuacamoleWriter which will use the given Writer as
+ the Guacamole instruction stream.</div>
+</dd>
+</dl>
+<a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/index.html b/doc/1.1.0/guacamole-common/index.html
new file mode 100644
index 0000000..bb58d2a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/index.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>guacamole-common 1.1.0 API</title>
+<script type="text/javascript">
+    tmpTargetPage = "" + window.location.search;
+    if (tmpTargetPage != "" && tmpTargetPage != "undefined")
+        tmpTargetPage = tmpTargetPage.substring(1);
+    if (tmpTargetPage.indexOf(":") != -1 || (tmpTargetPage != "" && !validURL(tmpTargetPage)))
+        tmpTargetPage = "undefined";
+    targetPage = tmpTargetPage;
+    function validURL(url) {
+        try {
+            url = decodeURIComponent(url);
+        }
+        catch (error) {
+            return false;
+        }
+        var pos = url.indexOf(".html");
+        if (pos == -1 || pos != url.length - 5)
+            return false;
+        var allowNumber = false;
+        var allowSep = false;
+        var seenDot = false;
+        for (var i = 0; i < url.length - 5; i++) {
+            var ch = url.charAt(i);
+            if ('a' <= ch && ch <= 'z' ||
+                    'A' <= ch && ch <= 'Z' ||
+                    ch == '$' ||
+                    ch == '_' ||
+                    ch.charCodeAt(0) > 127) {
+                allowNumber = true;
+                allowSep = true;
+            } else if ('0' <= ch && ch <= '9'
+                    || ch == '-') {
+                if (!allowNumber)
+                     return false;
+            } else if (ch == '/' || ch == '.') {
+                if (!allowSep)
+                    return false;
+                allowNumber = false;
+                allowSep = false;
+                if (ch == '.')
+                     seenDot = true;
+                if (ch == '/' && seenDot)
+                     return false;
+            } else {
+                return false;
+            }
+        }
+        return true;
+    }
+    function loadFrames() {
+        if (targetPage != "" && targetPage != "undefined")
+             top.classFrame.location = top.targetPage;
+    }
+</script>
+</head>
+<frameset cols="20%,80%" title="Documentation frame" onload="top.loadFrames()">
+<frameset rows="30%,70%" title="Left frames" onload="top.loadFrames()">
+<frame src="overview-frame.html" name="packageListFrame" title="All Packages">
+<frame src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+</frameset>
+<frame src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
+<noframes>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<h2>Frame Alert</h2>
+<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p>
+</noframes>
+</frameset>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientBadTypeException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientBadTypeException.html
new file mode 100644
index 0000000..682aab8
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientBadTypeException.html
@@ -0,0 +1,379 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleClientBadTypeException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleClientBadTypeException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientBadTypeException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientBadTypeException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientBadTypeException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleClientBadTypeException" class="title">Class GuacamoleClientBadTypeException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientBadTypeException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleClientBadTypeException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">An exception which is thrown when data has been submitted with an unsupported
+ mimetype.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleClientBadTypeException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html#GuacamoleClientBadTypeException-java.lang.String-">GuacamoleClientBadTypeException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html#GuacamoleClientBadTypeException-java.lang.String-java.lang.Throwable-">GuacamoleClientBadTypeException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                               <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html#GuacamoleClientBadTypeException-java.lang.Throwable-">GuacamoleClientBadTypeException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleClientBadTypeException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientBadTypeException</h4>
+<pre>public&nbsp;GuacamoleClientBadTypeException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                       <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientBadTypeException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientBadTypeException</h4>
+<pre>public&nbsp;GuacamoleClientBadTypeException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientBadTypeException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleClientBadTypeException</h4>
+<pre>public&nbsp;GuacamoleClientBadTypeException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientBadTypeException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientBadTypeException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientBadTypeException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientException.html
new file mode 100644
index 0000000..1d1bfc7
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientException.html
@@ -0,0 +1,379 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleClientException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleClientException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleClientException" class="title">Class GuacamoleClientException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a>, <a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a>, <a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a>, <a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a>, <a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a>, <a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a>, <a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a>, <a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleClientException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an error in the client's request. Such an error, if correctable, usually
+ requires correction on the client side, not the server.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleClientException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientException.html#GuacamoleClientException-java.lang.String-">GuacamoleClientException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientException.html#GuacamoleClientException-java.lang.String-java.lang.Throwable-">GuacamoleClientException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                        <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientException.html#GuacamoleClientException-java.lang.Throwable-">GuacamoleClientException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleClientException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientException</h4>
+<pre>public&nbsp;GuacamoleClientException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientException</h4>
+<pre>public&nbsp;GuacamoleClientException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleClientException</h4>
+<pre>public&nbsp;GuacamoleClientException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientOverrunException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientOverrunException.html
new file mode 100644
index 0000000..3f6984d
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientOverrunException.html
@@ -0,0 +1,381 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleClientOverrunException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleClientOverrunException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientOverrunException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientOverrunException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientOverrunException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleClientOverrunException" class="title">Class GuacamoleClientOverrunException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientOverrunException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleClientOverrunException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">An exception which is thrown when the client has sent too much data. This
+ usually indicates that a server-side buffer is not large enough to
+ accommodate the data, or protocol specifications prohibit data of the size
+ received.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleClientOverrunException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html#GuacamoleClientOverrunException-java.lang.String-">GuacamoleClientOverrunException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html#GuacamoleClientOverrunException-java.lang.String-java.lang.Throwable-">GuacamoleClientOverrunException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                               <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html#GuacamoleClientOverrunException-java.lang.Throwable-">GuacamoleClientOverrunException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleClientOverrunException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientOverrunException</h4>
+<pre>public&nbsp;GuacamoleClientOverrunException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                       <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientOverrunException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientOverrunException</h4>
+<pre>public&nbsp;GuacamoleClientOverrunException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientOverrunException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleClientOverrunException</h4>
+<pre>public&nbsp;GuacamoleClientOverrunException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientOverrunException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientOverrunException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientOverrunException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientTimeoutException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientTimeoutException.html
new file mode 100644
index 0000000..f25426b
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientTimeoutException.html
@@ -0,0 +1,378 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleClientTimeoutException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleClientTimeoutException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleClientTimeoutException" class="title">Class GuacamoleClientTimeoutException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientTimeoutException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleClientTimeoutException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">An exception which is thrown when the client is taking too long to respond.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleClientTimeoutException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html#GuacamoleClientTimeoutException-java.lang.String-">GuacamoleClientTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html#GuacamoleClientTimeoutException-java.lang.String-java.lang.Throwable-">GuacamoleClientTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                               <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html#GuacamoleClientTimeoutException-java.lang.Throwable-">GuacamoleClientTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleClientTimeoutException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientTimeoutException</h4>
+<pre>public&nbsp;GuacamoleClientTimeoutException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                       <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientTimeoutException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientTimeoutException</h4>
+<pre>public&nbsp;GuacamoleClientTimeoutException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientTimeoutException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleClientTimeoutException</h4>
+<pre>public&nbsp;GuacamoleClientTimeoutException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientTooManyException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientTooManyException.html
new file mode 100644
index 0000000..5994a81
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientTooManyException.html
@@ -0,0 +1,380 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleClientTooManyException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleClientTooManyException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientTooManyException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientTooManyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTooManyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleClientTooManyException" class="title">Class GuacamoleClientTooManyException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientTooManyException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleClientTooManyException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">An exception which is thrown when too many requests have been received
+ by the current client, and further requests are being rejected, either
+ temporarily or permanently.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleClientTooManyException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html#GuacamoleClientTooManyException-java.lang.String-">GuacamoleClientTooManyException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html#GuacamoleClientTooManyException-java.lang.String-java.lang.Throwable-">GuacamoleClientTooManyException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                               <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html#GuacamoleClientTooManyException-java.lang.Throwable-">GuacamoleClientTooManyException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleClientTooManyException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientTooManyException</h4>
+<pre>public&nbsp;GuacamoleClientTooManyException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                       <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientTooManyException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientTooManyException</h4>
+<pre>public&nbsp;GuacamoleClientTooManyException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientTooManyException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleClientTooManyException</h4>
+<pre>public&nbsp;GuacamoleClientTooManyException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientTooManyException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientTooManyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTooManyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleConnectionClosedException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleConnectionClosedException.html
new file mode 100644
index 0000000..ffbb61d
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleConnectionClosedException.html
@@ -0,0 +1,381 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleConnectionClosedException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleConnectionClosedException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleConnectionClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleConnectionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConnectionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleConnectionClosedException" class="title">Class GuacamoleConnectionClosedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleServerException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleConnectionClosedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleConnectionClosedException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></pre>
+<div class="block">An exception which is thrown when an operation cannot be performed because
+ its corresponding connection is closed.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleConnectionClosedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html#GuacamoleConnectionClosedException-java.lang.String-">GuacamoleConnectionClosedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html#GuacamoleConnectionClosedException-java.lang.String-java.lang.Throwable-">GuacamoleConnectionClosedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                  <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given message
+ and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html#GuacamoleConnectionClosedException-java.lang.Throwable-">GuacamoleConnectionClosedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleConnectionClosedException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleConnectionClosedException</h4>
+<pre>public&nbsp;GuacamoleConnectionClosedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                          <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given message
+ and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleConnectionClosedException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleConnectionClosedException</h4>
+<pre>public&nbsp;GuacamoleConnectionClosedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleConnectionClosedException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleConnectionClosedException</h4>
+<pre>public&nbsp;GuacamoleConnectionClosedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleServerException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleConnectionClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleConnectionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConnectionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleException.html
new file mode 100644
index 0000000..16878d3
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleException.html
@@ -0,0 +1,409 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleException" class="title">Class GuacamoleException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a>, <a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a>, <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleException</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleException.html#GuacamoleException-java.lang.String-">GuacamoleException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleException.html#GuacamoleException-java.lang.String-java.lang.Throwable-">GuacamoleException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                  <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleException.html#GuacamoleException-java.lang.Throwable-">GuacamoleException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a></span>()</code>
+<div class="block">Returns the most applicable HTTP status code that can be associated
+ with this exception.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></span>()</code>
+<div class="block">Returns the most applicable WebSocket status code that can be
+ associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleException</h4>
+<pre>public&nbsp;GuacamoleException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                          <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleException</h4>
+<pre>public&nbsp;GuacamoleException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleException</h4>
+<pre>public&nbsp;GuacamoleException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+<a name="getHttpStatusCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHttpStatusCode</h4>
+<pre>public&nbsp;int&nbsp;getHttpStatusCode()</pre>
+<div class="block">Returns the most applicable HTTP status code that can be associated
+ with this exception.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An integer representing the most applicable HTTP status code
+     associated with this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWebSocketCode--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getWebSocketCode</h4>
+<pre>public&nbsp;int&nbsp;getWebSocketCode()</pre>
+<div class="block">Returns the most applicable WebSocket status code that can be
+ associated with this exception.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An integer representing the most applicable WebSocket status
+     code associated with this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleResourceClosedException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleResourceClosedException.html
new file mode 100644
index 0000000..a7fa87b
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleResourceClosedException.html
@@ -0,0 +1,379 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleResourceClosedException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleResourceClosedException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleResourceClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleResourceClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleResourceClosedException" class="title">Class GuacamoleResourceClosedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleResourceClosedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleResourceClosedException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">An exception which is thrown when a resource is no longer available because
+ it is closed.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleResourceClosedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html#GuacamoleResourceClosedException-java.lang.String-">GuacamoleResourceClosedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html#GuacamoleResourceClosedException-java.lang.String-java.lang.Throwable-">GuacamoleResourceClosedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given message
+ and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html#GuacamoleResourceClosedException-java.lang.Throwable-">GuacamoleResourceClosedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleResourceClosedException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleResourceClosedException</h4>
+<pre>public&nbsp;GuacamoleResourceClosedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                        <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given message
+ and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleResourceClosedException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleResourceClosedException</h4>
+<pre>public&nbsp;GuacamoleResourceClosedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleResourceClosedException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleResourceClosedException</h4>
+<pre>public&nbsp;GuacamoleResourceClosedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleResourceClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleResourceClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleResourceConflictException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleResourceConflictException.html
new file mode 100644
index 0000000..37516a2
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleResourceConflictException.html
@@ -0,0 +1,380 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleResourceConflictException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleResourceConflictException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleResourceConflictException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleResourceConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleResourceConflictException" class="title">Class GuacamoleResourceConflictException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleResourceConflictException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleResourceConflictException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">An exception which is thrown when a resource has been requested, but that
+ resource is locked or currently in use, and cannot be accessed by the
+ current user.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleResourceConflictException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html#GuacamoleResourceConflictException-java.lang.String-">GuacamoleResourceConflictException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html#GuacamoleResourceConflictException-java.lang.String-java.lang.Throwable-">GuacamoleResourceConflictException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                  <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html#GuacamoleResourceConflictException-java.lang.Throwable-">GuacamoleResourceConflictException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleResourceConflictException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleResourceConflictException</h4>
+<pre>public&nbsp;GuacamoleResourceConflictException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                          <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleResourceConflictException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleResourceConflictException</h4>
+<pre>public&nbsp;GuacamoleResourceConflictException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleResourceConflictException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleResourceConflictException</h4>
+<pre>public&nbsp;GuacamoleResourceConflictException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleResourceConflictException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleResourceConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleResourceNotFoundException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleResourceNotFoundException.html
new file mode 100644
index 0000000..cf72473
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleResourceNotFoundException.html
@@ -0,0 +1,381 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleResourceNotFoundException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleResourceNotFoundException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleResourceNotFoundException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleResourceNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleResourceNotFoundException" class="title">Class GuacamoleResourceNotFoundException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleResourceNotFoundException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleResourceNotFoundException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">A generic exception thrown when part of the Guacamole API fails to find
+ a requested resource, such as a configuration or tunnel.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleResourceNotFoundException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html#GuacamoleResourceNotFoundException-java.lang.String-">GuacamoleResourceNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html#GuacamoleResourceNotFoundException-java.lang.String-java.lang.Throwable-">GuacamoleResourceNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                  <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given message
+ and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html#GuacamoleResourceNotFoundException-java.lang.Throwable-">GuacamoleResourceNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleResourceNotFoundException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleResourceNotFoundException</h4>
+<pre>public&nbsp;GuacamoleResourceNotFoundException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                          <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given message
+ and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleResourceNotFoundException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleResourceNotFoundException</h4>
+<pre>public&nbsp;GuacamoleResourceNotFoundException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleResourceNotFoundException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleResourceNotFoundException</h4>
+<pre>public&nbsp;GuacamoleResourceNotFoundException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleResourceNotFoundException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleResourceNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSecurityException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSecurityException.html
new file mode 100644
index 0000000..92f95f2
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSecurityException.html
@@ -0,0 +1,383 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleSecurityException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleSecurityException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSecurityException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSecurityException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSecurityException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleSecurityException" class="title">Class GuacamoleSecurityException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSecurityException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleSecurityException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleSecurityException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html#GuacamoleSecurityException-java.lang.String-">GuacamoleSecurityException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleSecurityException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html#GuacamoleSecurityException-java.lang.String-java.lang.Throwable-">GuacamoleSecurityException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                          <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSecurityException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html#GuacamoleSecurityException-java.lang.Throwable-">GuacamoleSecurityException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSecurityException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleSecurityException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSecurityException</h4>
+<pre>public&nbsp;GuacamoleSecurityException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                  <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSecurityException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSecurityException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSecurityException</h4>
+<pre>public&nbsp;GuacamoleSecurityException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleSecurityException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSecurityException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleSecurityException</h4>
+<pre>public&nbsp;GuacamoleSecurityException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSecurityException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSecurityException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSecurityException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSecurityException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleServerBusyException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleServerBusyException.html
new file mode 100644
index 0000000..8601845
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleServerBusyException.html
@@ -0,0 +1,379 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleServerBusyException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleServerBusyException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleServerBusyException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleServerBusyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerBusyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleServerBusyException" class="title">Class GuacamoleServerBusyException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleServerException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleServerBusyException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleServerBusyException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></pre>
+<div class="block">An exception which is thrown when the server is too busy to service the
+ request.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleServerBusyException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html#GuacamoleServerBusyException-java.lang.String-">GuacamoleServerBusyException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleServerBusyException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html#GuacamoleServerBusyException-java.lang.String-java.lang.Throwable-">GuacamoleServerBusyException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                            <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleServerBusyException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html#GuacamoleServerBusyException-java.lang.Throwable-">GuacamoleServerBusyException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleServerBusyException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleServerBusyException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleServerBusyException</h4>
+<pre>public&nbsp;GuacamoleServerBusyException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleServerBusyException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleServerBusyException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleServerBusyException</h4>
+<pre>public&nbsp;GuacamoleServerBusyException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleServerBusyException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleServerBusyException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleServerBusyException</h4>
+<pre>public&nbsp;GuacamoleServerBusyException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleServerBusyException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleServerException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleServerBusyException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleServerBusyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerBusyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleServerException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleServerException.html
new file mode 100644
index 0000000..f62359c
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleServerException.html
@@ -0,0 +1,379 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleServerException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleServerException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleServerException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleServerException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleServerException" class="title">Class GuacamoleServerException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleServerException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a>, <a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a>, <a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleServerException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an unexpected, internal error. An internal error, if correctable, would
+ require correction on the server side, not the client.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleServerException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerException.html#GuacamoleServerException-java.lang.String-">GuacamoleServerException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleServerException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerException.html#GuacamoleServerException-java.lang.String-java.lang.Throwable-">GuacamoleServerException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                        <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleServerException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerException.html#GuacamoleServerException-java.lang.Throwable-">GuacamoleServerException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleServerException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleServerException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleServerException</h4>
+<pre>public&nbsp;GuacamoleServerException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleServerException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleServerException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleServerException</h4>
+<pre>public&nbsp;GuacamoleServerException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleServerException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleServerException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleServerException</h4>
+<pre>public&nbsp;GuacamoleServerException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleServerException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleServerException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleServerException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSessionClosedException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSessionClosedException.html
new file mode 100644
index 0000000..c159456
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSessionClosedException.html
@@ -0,0 +1,379 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleSessionClosedException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleSessionClosedException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSessionClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSessionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleSessionClosedException" class="title">Class GuacamoleSessionClosedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSessionClosedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleSessionClosedException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has been forcibly terminated.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleSessionClosedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html#GuacamoleSessionClosedException-java.lang.String-">GuacamoleSessionClosedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html#GuacamoleSessionClosedException-java.lang.String-java.lang.Throwable-">GuacamoleSessionClosedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                               <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given message and
+ cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html#GuacamoleSessionClosedException-java.lang.Throwable-">GuacamoleSessionClosedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleSessionClosedException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSessionClosedException</h4>
+<pre>public&nbsp;GuacamoleSessionClosedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                       <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given message and
+ cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSessionClosedException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSessionClosedException</h4>
+<pre>public&nbsp;GuacamoleSessionClosedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSessionClosedException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleSessionClosedException</h4>
+<pre>public&nbsp;GuacamoleSessionClosedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSessionClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSessionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSessionConflictException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSessionConflictException.html
new file mode 100644
index 0000000..8b0d0b4
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSessionConflictException.html
@@ -0,0 +1,379 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleSessionConflictException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleSessionConflictException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSessionConflictException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSessionConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleSessionConflictException" class="title">Class GuacamoleSessionConflictException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSessionConflictException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleSessionConflictException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it conflicted with another session.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleSessionConflictException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html#GuacamoleSessionConflictException-java.lang.String-">GuacamoleSessionConflictException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html#GuacamoleSessionConflictException-java.lang.String-java.lang.Throwable-">GuacamoleSessionConflictException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                 <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given message
+ and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html#GuacamoleSessionConflictException-java.lang.Throwable-">GuacamoleSessionConflictException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleSessionConflictException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSessionConflictException</h4>
+<pre>public&nbsp;GuacamoleSessionConflictException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given message
+ and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSessionConflictException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSessionConflictException</h4>
+<pre>public&nbsp;GuacamoleSessionConflictException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSessionConflictException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleSessionConflictException</h4>
+<pre>public&nbsp;GuacamoleSessionConflictException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSessionConflictException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSessionConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSessionTimeoutException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSessionTimeoutException.html
new file mode 100644
index 0000000..d0c4e7e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSessionTimeoutException.html
@@ -0,0 +1,379 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleSessionTimeoutException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleSessionTimeoutException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSessionTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSessionTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleSessionTimeoutException" class="title">Class GuacamoleSessionTimeoutException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSessionTimeoutException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleSessionTimeoutException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it appeared to be inactive.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleSessionTimeoutException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html#GuacamoleSessionTimeoutException-java.lang.String-">GuacamoleSessionTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html#GuacamoleSessionTimeoutException-java.lang.String-java.lang.Throwable-">GuacamoleSessionTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given message
+ and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html#GuacamoleSessionTimeoutException-java.lang.Throwable-">GuacamoleSessionTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleSessionTimeoutException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSessionTimeoutException</h4>
+<pre>public&nbsp;GuacamoleSessionTimeoutException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                        <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given message
+ and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSessionTimeoutException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSessionTimeoutException</h4>
+<pre>public&nbsp;GuacamoleSessionTimeoutException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSessionTimeoutException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleSessionTimeoutException</h4>
+<pre>public&nbsp;GuacamoleSessionTimeoutException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSessionTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSessionTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUnauthorizedException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUnauthorizedException.html
new file mode 100644
index 0000000..0e854fe
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUnauthorizedException.html
@@ -0,0 +1,385 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleUnauthorizedException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleUnauthorizedException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUnauthorizedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUnauthorizedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnauthorizedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleUnauthorizedException" class="title">Class GuacamoleUnauthorizedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleSecurityException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUnauthorizedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleUnauthorizedException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></pre>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource, but access MAY be granted were the user
+ authorized (logged in).</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleUnauthorizedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html#GuacamoleUnauthorizedException-java.lang.String-">GuacamoleUnauthorizedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html#GuacamoleUnauthorizedException-java.lang.String-java.lang.Throwable-">GuacamoleUnauthorizedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                              <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html#GuacamoleUnauthorizedException-java.lang.Throwable-">GuacamoleUnauthorizedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleUnauthorizedException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUnauthorizedException</h4>
+<pre>public&nbsp;GuacamoleUnauthorizedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                      <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUnauthorizedException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUnauthorizedException</h4>
+<pre>public&nbsp;GuacamoleUnauthorizedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUnauthorizedException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleUnauthorizedException</h4>
+<pre>public&nbsp;GuacamoleUnauthorizedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUnauthorizedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUnauthorizedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnauthorizedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUnsupportedException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUnsupportedException.html
new file mode 100644
index 0000000..2a1dc45
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUnsupportedException.html
@@ -0,0 +1,379 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleUnsupportedException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleUnsupportedException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUnsupportedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUnsupportedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnsupportedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleUnsupportedException" class="title">Class GuacamoleUnsupportedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleServerException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUnsupportedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleUnsupportedException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></pre>
+<div class="block">An exception which is thrown when the requested operation is unsupported
+ or unimplemented.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleUnsupportedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html#GuacamoleUnsupportedException-java.lang.String-">GuacamoleUnsupportedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html#GuacamoleUnsupportedException-java.lang.String-java.lang.Throwable-">GuacamoleUnsupportedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                             <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html#GuacamoleUnsupportedException-java.lang.Throwable-">GuacamoleUnsupportedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleUnsupportedException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUnsupportedException</h4>
+<pre>public&nbsp;GuacamoleUnsupportedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                     <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUnsupportedException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUnsupportedException</h4>
+<pre>public&nbsp;GuacamoleUnsupportedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUnsupportedException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleUnsupportedException</h4>
+<pre>public&nbsp;GuacamoleUnsupportedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleServerException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUnsupportedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUnsupportedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnsupportedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamException.html
new file mode 100644
index 0000000..ca9ec51
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamException.html
@@ -0,0 +1,380 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleUpstreamException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleUpstreamException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleUpstreamException" class="title">Class GuacamoleUpstreamException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a>, <a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a>, <a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a>, <a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a>, <a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a>, <a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleUpstreamException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is returning an error or is otherwise unreachable.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleUpstreamException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#GuacamoleUpstreamException-java.lang.String-">GuacamoleUpstreamException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#GuacamoleUpstreamException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                          <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message and
+ cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#GuacamoleUpstreamException-java.lang.Throwable-">GuacamoleUpstreamException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleUpstreamException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamException</h4>
+<pre>public&nbsp;GuacamoleUpstreamException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                  <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message and
+ cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamException</h4>
+<pre>public&nbsp;GuacamoleUpstreamException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleUpstreamException</h4>
+<pre>public&nbsp;GuacamoleUpstreamException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamNotFoundException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamNotFoundException.html
new file mode 100644
index 0000000..a937977
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamNotFoundException.html
@@ -0,0 +1,379 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleUpstreamNotFoundException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleUpstreamNotFoundException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamNotFoundException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleUpstreamNotFoundException" class="title">Class GuacamoleUpstreamNotFoundException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamNotFoundException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleUpstreamNotFoundException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) does not appear to exist.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleUpstreamNotFoundException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#GuacamoleUpstreamNotFoundException-java.lang.String-">GuacamoleUpstreamNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#GuacamoleUpstreamNotFoundException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                  <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given message
+ and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#GuacamoleUpstreamNotFoundException-java.lang.Throwable-">GuacamoleUpstreamNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleUpstreamNotFoundException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamNotFoundException</h4>
+<pre>public&nbsp;GuacamoleUpstreamNotFoundException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                          <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given message
+ and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamNotFoundException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamNotFoundException</h4>
+<pre>public&nbsp;GuacamoleUpstreamNotFoundException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamNotFoundException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleUpstreamNotFoundException</h4>
+<pre>public&nbsp;GuacamoleUpstreamNotFoundException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamNotFoundException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamTimeoutException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamTimeoutException.html
new file mode 100644
index 0000000..896001c
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamTimeoutException.html
@@ -0,0 +1,381 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleUpstreamTimeoutException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleUpstreamTimeoutException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleUpstreamTimeoutException" class="title">Class GuacamoleUpstreamTimeoutException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamTimeoutException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleUpstreamTimeoutException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is taking too long to respond.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleUpstreamTimeoutException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#GuacamoleUpstreamTimeoutException-java.lang.String-">GuacamoleUpstreamTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#GuacamoleUpstreamTimeoutException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                 <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message and
+ cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#GuacamoleUpstreamTimeoutException-java.lang.Throwable-">GuacamoleUpstreamTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleUpstreamTimeoutException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamTimeoutException</h4>
+<pre>public&nbsp;GuacamoleUpstreamTimeoutException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message and
+ cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamTimeoutException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamTimeoutException</h4>
+<pre>public&nbsp;GuacamoleUpstreamTimeoutException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamTimeoutException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleUpstreamTimeoutException</h4>
+<pre>public&nbsp;GuacamoleUpstreamTimeoutException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamUnavailableException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamUnavailableException.html
new file mode 100644
index 0000000..3c9ea40
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamUnavailableException.html
@@ -0,0 +1,383 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleUpstreamUnavailableException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleUpstreamUnavailableException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamUnavailableException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamUnavailableException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleUpstreamUnavailableException" class="title">Class GuacamoleUpstreamUnavailableException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamUnavailableException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleUpstreamUnavailableException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) is not available to service the request.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleUpstreamUnavailableException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#GuacamoleUpstreamUnavailableException-java.lang.String-">GuacamoleUpstreamUnavailableException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#GuacamoleUpstreamUnavailableException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamUnavailableException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                     <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#GuacamoleUpstreamUnavailableException-java.lang.Throwable-">GuacamoleUpstreamUnavailableException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleUpstreamUnavailableException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamUnavailableException</h4>
+<pre>public&nbsp;GuacamoleUpstreamUnavailableException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                             <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamUnavailableException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamUnavailableException</h4>
+<pre>public&nbsp;GuacamoleUpstreamUnavailableException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamUnavailableException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleUpstreamUnavailableException</h4>
+<pre>public&nbsp;GuacamoleUpstreamUnavailableException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamUnavailableException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamUnavailableException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientBadTypeException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientBadTypeException.html
new file mode 100644
index 0000000..78906f1
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientBadTypeException.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleClientBadTypeException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleClientBadTypeException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientBadTypeException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientBadTypeException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleClientBadTypeException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleClientBadTypeException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleClientBadTypeException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientBadTypeException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientBadTypeException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientException.html
new file mode 100644
index 0000000..e148b8f
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientException.html
@@ -0,0 +1,230 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleClientException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleClientException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleClientException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleClientException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></span></code>
+<div class="block">An exception which is thrown when data has been submitted with an unsupported
+ mimetype.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></span></code>
+<div class="block">An exception which is thrown when the client has sent too much data.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></span></code>
+<div class="block">An exception which is thrown when the client is taking too long to respond.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></span></code>
+<div class="block">An exception which is thrown when too many requests have been received
+ by the current client, and further requests are being rejected, either
+ temporarily or permanently.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></span></code>
+<div class="block">An exception which is thrown when a resource is no longer available because
+ it is closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></span></code>
+<div class="block">An exception which is thrown when a resource has been requested, but that
+ resource is locked or currently in use, and cannot be accessed by the
+ current user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></span></code>
+<div class="block">A generic exception thrown when part of the Guacamole API fails to find
+ a requested resource, such as a configuration or tunnel.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></span></code>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></span></code>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource, but access MAY be granted were the user
+ authorized (logged in).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientOverrunException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientOverrunException.html
new file mode 100644
index 0000000..a9d89c5
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientOverrunException.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleClientOverrunException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleClientOverrunException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientOverrunException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientOverrunException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleClientOverrunException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleClientOverrunException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleClientOverrunException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientOverrunException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientOverrunException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientTimeoutException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientTimeoutException.html
new file mode 100644
index 0000000..4bb1f99
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientTimeoutException.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleClientTimeoutException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleClientTimeoutException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleClientTimeoutException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleClientTimeoutException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleClientTimeoutException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientTooManyException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientTooManyException.html
new file mode 100644
index 0000000..e46ce33
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientTooManyException.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleClientTooManyException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleClientTooManyException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientTooManyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTooManyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleClientTooManyException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleClientTooManyException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleClientTooManyException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientTooManyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTooManyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleConnectionClosedException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleConnectionClosedException.html
new file mode 100644
index 0000000..6b9f699
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleConnectionClosedException.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleConnectionClosedException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleConnectionClosedException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleConnectionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConnectionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleConnectionClosedException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleConnectionClosedException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleConnectionClosedException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleConnectionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConnectionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleException.html
new file mode 100644
index 0000000..bc63f55
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleException.html
@@ -0,0 +1,674 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.servlet">org.apache.guacamole.servlet</a></td>
+<td class="colLast">
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.websocket">org.apache.guacamole.websocket</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></span></code>
+<div class="block">An exception which is thrown when data has been submitted with an unsupported
+ mimetype.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></span></code>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an error in the client's request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></span></code>
+<div class="block">An exception which is thrown when the client has sent too much data.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></span></code>
+<div class="block">An exception which is thrown when the client is taking too long to respond.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></span></code>
+<div class="block">An exception which is thrown when too many requests have been received
+ by the current client, and further requests are being rejected, either
+ temporarily or permanently.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></span></code>
+<div class="block">An exception which is thrown when an operation cannot be performed because
+ its corresponding connection is closed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></span></code>
+<div class="block">An exception which is thrown when a resource is no longer available because
+ it is closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></span></code>
+<div class="block">An exception which is thrown when a resource has been requested, but that
+ resource is locked or currently in use, and cannot be accessed by the
+ current user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></span></code>
+<div class="block">A generic exception thrown when part of the Guacamole API fails to find
+ a requested resource, such as a configuration or tunnel.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></span></code>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></span></code>
+<div class="block">An exception which is thrown when the server is too busy to service the
+ request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></span></code>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an unexpected, internal error.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></span></code>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has been forcibly terminated.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></span></code>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it conflicted with another session.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></span></code>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it appeared to be inactive.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></span></code>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource, but access MAY be granted were the user
+ authorized (logged in).</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></span></code>
+<div class="block">An exception which is thrown when the requested operation is unsupported
+ or unimplemented.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></span></code>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is returning an error or is otherwise unreachable.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></span></code>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) does not appear to exist.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></span></code>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is taking too long to respond.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></span></code>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) is not available to service the request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#available--">available</a></span>()</code>
+<div class="block">Returns whether instruction data is available for reading.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">ReaderGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#available--">available</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>char[]</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#read--">read</a></span>()</code>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>char[]</code></td>
+<td class="colLast"><span class="typeNameLabel">ReaderGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#read--">read</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReaderGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">WriterGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#write-char:A-">write</a></span>(char[]&nbsp;chunk)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">write</a></span>(char[]&nbsp;chunk)</code>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">WriterGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#write-char:A-int-int-">write</a></span>(char[]&nbsp;chunk,
+     int&nbsp;off,
+     int&nbsp;len)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">write</a></span>(char[]&nbsp;chunk,
+     int&nbsp;off,
+     int&nbsp;len)</code>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">WriterGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">InetGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#close--">close</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#close--">close</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#close--">close</a></span>()</code>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">close</a></span>()</code>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#close--">close</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SSLGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#close--">close</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#InetGuacamoleSocket-java.lang.String-int-">InetGuacamoleSocket</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                   int&nbsp;port)</code>
+<div class="block">Creates a new InetGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#SSLGuacamoleSocket-java.lang.String-int-">SSLGuacamoleSocket</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                  int&nbsp;port)</code>
+<div class="block">Creates a new SSLGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port using SSL.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleParser.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#append-char:A-">append</a></span>(char[]&nbsp;chunk)</code>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleParser.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#append-char:A-int-int-">append</a></span>(char[]&nbsp;chunk,
+      int&nbsp;offset,
+      int&nbsp;length)</code>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#available--">available</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ConfiguredGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#close--">close</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#close--">close</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">FailoverGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#close--">close</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleFilter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html#filter-org.apache.guacamole.protocol.GuacamoleInstruction-">filter</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Applies the filter to the given instruction, returning the original
+ instruction, a modified version of the original, or null, depending
+ on the implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>char[]</code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#read--">read</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#write-char:A-">write</a></span>(char[]&nbsp;chunk)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#write-char:A-int-int-">write</a></span>(char[]&nbsp;chunk,
+     int&nbsp;offset,
+     int&nbsp;length)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration to complete the initial protocol handshake over
+ the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config,
+                         <a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a>&nbsp;info)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">FailoverGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until a maximum of 128KB of instruction data has been queued.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-int-">FailoverGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       int&nbsp;instructionQueueLimit)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until the given instruction queue limit is reached.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.servlet">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doConnect-javax.servlet.http.HttpServletRequest-">doConnect</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a connection
+ request via HTTP.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doRead-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">doRead</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+      javax.servlet.http.HttpServletResponse&nbsp;response,
+      <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a read request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doWrite-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">doWrite</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+       javax.servlet.http.HttpServletResponse&nbsp;response,
+       <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a write request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#getTunnel-java.lang.String-">getTunnel</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Returns the tunnel with the given UUID, if it has been registered with
+ registerTunnel() and not yet deregistered with deregisterTunnel().</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleWebSocketTunnelEndpoint.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#createTunnel-javax.websocket.Session-javax.websocket.EndpointConfig-">createTunnel</a></span>(javax.websocket.Session&nbsp;session,
+            javax.websocket.EndpointConfig&nbsp;config)</code>
+<div class="block">Returns a new tunnel for the given session.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceClosedException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceClosedException.html
new file mode 100644
index 0000000..452c738
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceClosedException.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleResourceClosedException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleResourceClosedException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleResourceClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleResourceClosedException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleResourceClosedException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleResourceClosedException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleResourceClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceConflictException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceConflictException.html
new file mode 100644
index 0000000..6e85afc
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceConflictException.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleResourceConflictException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleResourceConflictException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleResourceConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleResourceConflictException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleResourceConflictException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleResourceConflictException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleResourceConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceNotFoundException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceNotFoundException.html
new file mode 100644
index 0000000..da6708e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceNotFoundException.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleResourceNotFoundException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleResourceNotFoundException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleResourceNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleResourceNotFoundException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleResourceNotFoundException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleResourceNotFoundException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleResourceNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSecurityException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSecurityException.html
new file mode 100644
index 0000000..fa5b5d5
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSecurityException.html
@@ -0,0 +1,174 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleSecurityException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleSecurityException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSecurityException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSecurityException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleSecurityException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleSecurityException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></span></code>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource, but access MAY be granted were the user
+ authorized (logged in).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSecurityException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSecurityException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleServerBusyException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleServerBusyException.html
new file mode 100644
index 0000000..ee05718
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleServerBusyException.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleServerBusyException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleServerBusyException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleServerBusyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerBusyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleServerBusyException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleServerBusyException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleServerBusyException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleServerBusyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerBusyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleServerException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleServerException.html
new file mode 100644
index 0000000..4ac9a91
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleServerException.html
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleServerException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleServerException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleServerException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleServerException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleServerException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></span></code>
+<div class="block">An exception which is thrown when an operation cannot be performed because
+ its corresponding connection is closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></span></code>
+<div class="block">An exception which is thrown when the server is too busy to service the
+ request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></span></code>
+<div class="block">An exception which is thrown when the requested operation is unsupported
+ or unimplemented.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleServerException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionClosedException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionClosedException.html
new file mode 100644
index 0000000..c2c1ab9
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionClosedException.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleSessionClosedException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleSessionClosedException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSessionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleSessionClosedException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleSessionClosedException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleSessionClosedException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSessionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionConflictException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionConflictException.html
new file mode 100644
index 0000000..956ae7a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionConflictException.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleSessionConflictException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleSessionConflictException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSessionConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleSessionConflictException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleSessionConflictException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleSessionConflictException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSessionConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionTimeoutException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionTimeoutException.html
new file mode 100644
index 0000000..eee50a7
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionTimeoutException.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleSessionTimeoutException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleSessionTimeoutException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSessionTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleSessionTimeoutException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleSessionTimeoutException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleSessionTimeoutException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSessionTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUnauthorizedException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUnauthorizedException.html
new file mode 100644
index 0000000..9b5f59d
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUnauthorizedException.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleUnauthorizedException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleUnauthorizedException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUnauthorizedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnauthorizedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleUnauthorizedException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleUnauthorizedException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleUnauthorizedException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUnauthorizedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnauthorizedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUnsupportedException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUnsupportedException.html
new file mode 100644
index 0000000..ab980e4
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUnsupportedException.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleUnsupportedException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleUnsupportedException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUnsupportedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnsupportedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleUnsupportedException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleUnsupportedException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleUnsupportedException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUnsupportedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnsupportedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamException.html
new file mode 100644
index 0000000..d943b7a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamException.html
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleUpstreamException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleUpstreamException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleUpstreamException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleUpstreamException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></span></code>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has been forcibly terminated.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></span></code>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it conflicted with another session.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></span></code>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it appeared to be inactive.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></span></code>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) does not appear to exist.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></span></code>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is taking too long to respond.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></span></code>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) is not available to service the request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">FailoverGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until a maximum of 128KB of instruction data has been queued.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-int-">FailoverGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       int&nbsp;instructionQueueLimit)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until the given instruction queue limit is reached.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamNotFoundException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamNotFoundException.html
new file mode 100644
index 0000000..8714718
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamNotFoundException.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleUpstreamNotFoundException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleUpstreamNotFoundException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleUpstreamNotFoundException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleUpstreamNotFoundException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleUpstreamNotFoundException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamTimeoutException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamTimeoutException.html
new file mode 100644
index 0000000..0015725
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamTimeoutException.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleUpstreamTimeoutException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleUpstreamTimeoutException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleUpstreamTimeoutException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleUpstreamTimeoutException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleUpstreamTimeoutException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamUnavailableException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamUnavailableException.html
new file mode 100644
index 0000000..486b632
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamUnavailableException.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleUpstreamUnavailableException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleUpstreamUnavailableException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamUnavailableException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamUnavailableException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleUpstreamUnavailableException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleUpstreamUnavailableException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleUpstreamUnavailableException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamUnavailableException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamUnavailableException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/GuacamoleReader.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/GuacamoleReader.html
new file mode 100644
index 0000000..c0bbc39
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/GuacamoleReader.html
@@ -0,0 +1,302 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleReader (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleReader (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleReader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/GuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.io</div>
+<h2 title="Interface GuacamoleReader" class="title">Interface GuacamoleReader</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a>, <a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">GuacamoleReader</span></pre>
+<div class="block">Provides abstract and raw character read access to a stream of Guacamole
+ instructions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#available--">available</a></span>()</code>
+<div class="block">Returns whether instruction data is available for reading.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>char[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#read--">read</a></span>()</code>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="available--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>available</h4>
+<pre>boolean&nbsp;available()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Returns whether instruction data is available for reading. Note that
+ this does not guarantee an entire instruction is available. If a full
+ instruction is not available, this function can return true, and a call
+ to read() will still block.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if instruction data is available for reading, false
+         otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while checking for
+                            available data.</dd>
+</dl>
+</li>
+</ul>
+<a name="read--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>read</h4>
+<pre>char[]&nbsp;read()
+     throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions. This function will block until at
+ least one complete instruction is available.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A buffer containing at least one complete Guacamole instruction,
+         or null if no more instructions are available for reading.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading from the
+                            stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="readInstruction--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>readInstruction</h4>
+<pre><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;readInstruction()
+                              throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The next complete instruction from the stream, fully parsed, or
+         null if no more instructions are available for reading.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading from the
+                            stream, or if the instruction cannot be
+                            parsed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleReader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/GuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/GuacamoleWriter.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/GuacamoleWriter.html
new file mode 100644
index 0000000..97042ed
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/GuacamoleWriter.html
@@ -0,0 +1,302 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleWriter (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleWriter (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/GuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.io</div>
+<h2 title="Interface GuacamoleWriter" class="title">Interface GuacamoleWriter</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a>, <a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">GuacamoleWriter</span></pre>
+<div class="block">Provides abstract and raw character write access to a stream of Guacamole
+ instructions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">write</a></span>(char[]&nbsp;chunk)</code>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">write</a></span>(char[]&nbsp;chunk,
+     int&nbsp;off,
+     int&nbsp;len)</code>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="write-char:A-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>void&nbsp;write(char[]&nbsp;chunk,
+           int&nbsp;off,
+           int&nbsp;len)
+    throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream. The portion must contain only complete Guacamole
+ instructions.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - An array of characters containing Guacamole instructions.</dd>
+<dd><code>off</code> - The start offset of the portion of the array to write.</dd>
+<dd><code>len</code> - The length of the portion of the array to write.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            portion of the array specified.</dd>
+</dl>
+</li>
+</ul>
+<a name="write-char:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>void&nbsp;write(char[]&nbsp;chunk)
+    throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream. The array must consist only of complete Guacamole instructions.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - An array of characters consisting only of complete
+              Guacamole instructions.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            the specified array.</dd>
+</dl>
+</li>
+</ul>
+<a name="writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>writeInstruction</h4>
+<pre>void&nbsp;writeInstruction(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)
+               throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>instruction</code> - The Guacamole instruction to write.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            instruction.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/GuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/ReaderGuacamoleReader.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/ReaderGuacamoleReader.html
new file mode 100644
index 0000000..0ae996d
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/ReaderGuacamoleReader.html
@@ -0,0 +1,371 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ReaderGuacamoleReader (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ReaderGuacamoleReader (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReaderGuacamoleReader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/ReaderGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="ReaderGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.io</div>
+<h2 title="Class ReaderGuacamoleReader" class="title">Class ReaderGuacamoleReader</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.io.ReaderGuacamoleReader</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">ReaderGuacamoleReader</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></pre>
+<div class="block">A GuacamoleReader which wraps a standard Java Reader, using that Reader as
+ the Guacamole instruction stream.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#ReaderGuacamoleReader-java.io.Reader-">ReaderGuacamoleReader</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</a>&nbsp;input)</code>
+<div class="block">Creates a new ReaderGuacamoleReader which will use the given Reader as
+ the Guacamole instruction stream.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#available--">available</a></span>()</code>
+<div class="block">Returns whether instruction data is available for reading.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>char[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#read--">read</a></span>()</code>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ReaderGuacamoleReader-java.io.Reader-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ReaderGuacamoleReader</h4>
+<pre>public&nbsp;ReaderGuacamoleReader(<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</a>&nbsp;input)</pre>
+<div class="block">Creates a new ReaderGuacamoleReader which will use the given Reader as
+ the Guacamole instruction stream.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>input</code> - The Reader to use as the Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="available--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>available</h4>
+<pre>public&nbsp;boolean&nbsp;available()
+                  throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#available--">GuacamoleReader</a></code></span></div>
+<div class="block">Returns whether instruction data is available for reading. Note that
+ this does not guarantee an entire instruction is available. If a full
+ instruction is not available, this function can return true, and a call
+ to read() will still block.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#available--">available</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if instruction data is available for reading, false
+         otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while checking for
+                            available data.</dd>
+</dl>
+</li>
+</ul>
+<a name="read--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>read</h4>
+<pre>public&nbsp;char[]&nbsp;read()
+            throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#read--">GuacamoleReader</a></code></span></div>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions. This function will block until at
+ least one complete instruction is available.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#read--">read</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A buffer containing at least one complete Guacamole instruction,
+         or null if no more instructions are available for reading.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading from the
+                            stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="readInstruction--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>readInstruction</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;readInstruction()
+                                     throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">GuacamoleReader</a></code></span></div>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">readInstruction</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The next complete instruction from the stream, fully parsed, or
+         null if no more instructions are available for reading.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading from the
+                            stream, or if the instruction cannot be
+                            parsed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReaderGuacamoleReader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/ReaderGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="ReaderGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/WriterGuacamoleWriter.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/WriterGuacamoleWriter.html
new file mode 100644
index 0000000..7f184ac
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/WriterGuacamoleWriter.html
@@ -0,0 +1,371 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>WriterGuacamoleWriter (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WriterGuacamoleWriter (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WriterGuacamoleWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/WriterGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="WriterGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.io</div>
+<h2 title="Class WriterGuacamoleWriter" class="title">Class WriterGuacamoleWriter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.io.WriterGuacamoleWriter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">WriterGuacamoleWriter</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></pre>
+<div class="block">A GuacamoleWriter which wraps a standard Java Writer, using that Writer as
+ the Guacamole instruction stream.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#WriterGuacamoleWriter-java.io.Writer-">WriterGuacamoleWriter</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;output)</code>
+<div class="block">Creates a new WriterGuacamoleWriter which will use the given Writer as
+ the Guacamole instruction stream.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#write-char:A-">write</a></span>(char[]&nbsp;chunk)</code>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#write-char:A-int-int-">write</a></span>(char[]&nbsp;chunk,
+     int&nbsp;off,
+     int&nbsp;len)</code>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="WriterGuacamoleWriter-java.io.Writer-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>WriterGuacamoleWriter</h4>
+<pre>public&nbsp;WriterGuacamoleWriter(<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;output)</pre>
+<div class="block">Creates a new WriterGuacamoleWriter which will use the given Writer as
+ the Guacamole instruction stream.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>output</code> - The Writer to use as the Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="write-char:A-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>public&nbsp;void&nbsp;write(char[]&nbsp;chunk,
+                  int&nbsp;off,
+                  int&nbsp;len)
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">GuacamoleWriter</a></code></span></div>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream. The portion must contain only complete Guacamole
+ instructions.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">write</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - An array of characters containing Guacamole instructions.</dd>
+<dd><code>off</code> - The start offset of the portion of the array to write.</dd>
+<dd><code>len</code> - The length of the portion of the array to write.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            portion of the array specified.</dd>
+</dl>
+</li>
+</ul>
+<a name="write-char:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>public&nbsp;void&nbsp;write(char[]&nbsp;chunk)
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">GuacamoleWriter</a></code></span></div>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream. The array must consist only of complete Guacamole instructions.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">write</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - An array of characters consisting only of complete
+              Guacamole instructions.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            the specified array.</dd>
+</dl>
+</li>
+</ul>
+<a name="writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>writeInstruction</h4>
+<pre>public&nbsp;void&nbsp;writeInstruction(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)
+                      throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">GuacamoleWriter</a></code></span></div>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>instruction</code> - The Guacamole instruction to write.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            instruction.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WriterGuacamoleWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/WriterGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="WriterGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/GuacamoleReader.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/GuacamoleReader.html
new file mode 100644
index 0000000..7334cbe
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/GuacamoleReader.html
@@ -0,0 +1,289 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.io.GuacamoleReader (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.io.GuacamoleReader (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/GuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.io.GuacamoleReader" class="title">Uses of Interface<br>org.apache.guacamole.io.GuacamoleReader</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a> in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> that implement <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></span></code>
+<div class="block">A GuacamoleReader which wraps a standard Java Reader, using that Reader as
+ the Guacamole instruction stream.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a> in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that return <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireReader--">acquireReader</a></span>()</code>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireReader--">acquireReader</a></span>()</code>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#acquireReader--">acquireReader</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">InetGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#getReader--">getReader</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SSLGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#getReader--">getReader</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that implement <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></span></code>
+<div class="block">GuacamoleReader which applies a given GuacamoleFilter to observe or alter all
+ read instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ConfiguredGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getReader--">getReader</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#getReader--">getReader</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FailoverGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#getReader--">getReader</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#FilteredGuacamoleReader-org.apache.guacamole.io.GuacamoleReader-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleReader</a></span>(<a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;reader,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</code>
+<div class="block">Wraps the given GuacamoleReader, applying the given filter to all read
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/GuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/GuacamoleWriter.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/GuacamoleWriter.html
new file mode 100644
index 0000000..c3544a3
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/GuacamoleWriter.html
@@ -0,0 +1,289 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.io.GuacamoleWriter (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.io.GuacamoleWriter (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/GuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.io.GuacamoleWriter" class="title">Uses of Interface<br>org.apache.guacamole.io.GuacamoleWriter</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a> in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> that implement <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></span></code>
+<div class="block">A GuacamoleWriter which wraps a standard Java Writer, using that Writer as
+ the Guacamole instruction stream.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a> in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that return <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireWriter--">acquireWriter</a></span>()</code>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireWriter--">acquireWriter</a></span>()</code>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#acquireWriter--">acquireWriter</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">InetGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SSLGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that implement <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></span></code>
+<div class="block">GuacamoleWriter which applies a given GuacamoleFilter to observe or alter
+ all written instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ConfiguredGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FailoverGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#FilteredGuacamoleWriter-org.apache.guacamole.io.GuacamoleWriter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleWriter</a></span>(<a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;writer,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</code>
+<div class="block">Wraps the given GuacamoleWriter, applying the given filter to all written 
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/GuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/ReaderGuacamoleReader.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/ReaderGuacamoleReader.html
new file mode 100644
index 0000000..ae3521e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/ReaderGuacamoleReader.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.io.ReaderGuacamoleReader (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.io.ReaderGuacamoleReader (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/ReaderGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="ReaderGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.io.ReaderGuacamoleReader" class="title">Uses of Class<br>org.apache.guacamole.io.ReaderGuacamoleReader</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.io.ReaderGuacamoleReader</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/ReaderGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="ReaderGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/WriterGuacamoleWriter.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/WriterGuacamoleWriter.html
new file mode 100644
index 0000000..3a6c288
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/WriterGuacamoleWriter.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.io.WriterGuacamoleWriter (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.io.WriterGuacamoleWriter (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/WriterGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="WriterGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.io.WriterGuacamoleWriter" class="title">Uses of Class<br>org.apache.guacamole.io.WriterGuacamoleWriter</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.io.WriterGuacamoleWriter</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/WriterGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="WriterGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-frame.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-frame.html
new file mode 100644
index 0000000..cf047b5
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-frame.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.io (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/io/package-summary.html" target="classFrame">org.apache.guacamole.io</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="GuacamoleReader.html" title="interface in org.apache.guacamole.io" target="classFrame"><span class="interfaceName">GuacamoleReader</span></a></li>
+<li><a href="GuacamoleWriter.html" title="interface in org.apache.guacamole.io" target="classFrame"><span class="interfaceName">GuacamoleWriter</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io" target="classFrame">ReaderGuacamoleReader</a></li>
+<li><a href="WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io" target="classFrame">WriterGuacamoleWriter</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-summary.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-summary.html
new file mode 100644
index 0000000..0c47a78
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-summary.html
@@ -0,0 +1,188 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.io (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.io (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/net/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.io</h1>
+<div class="docSummary">
+<div class="block">All classes relating directly to data input or output.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></td>
+<td class="colLast">
+<div class="block">Provides abstract and raw character read access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></td>
+<td class="colLast">
+<div class="block">Provides abstract and raw character write access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleReader which wraps a standard Java Reader, using that Reader as
+ the Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleWriter which wraps a standard Java Writer, using that Writer as
+ the Guacamole instruction stream.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.io Description">Package org.apache.guacamole.io Description</h2>
+<div class="block">All classes relating directly to data input or output.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/net/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-tree.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-tree.html
new file mode 100644
index 0000000..4dc65e5
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-tree.html
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.io Class Hierarchy (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.io Class Hierarchy (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/net/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.io</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">ReaderGuacamoleReader</span></a> (implements org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>)</li>
+<li type="circle">org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">WriterGuacamoleWriter</span></a> (implements org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">GuacamoleReader</span></a></li>
+<li type="circle">org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">GuacamoleWriter</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/net/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-use.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-use.html
new file mode 100644
index 0000000..8adf39d
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-use.html
@@ -0,0 +1,231 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.io (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.io (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.io" class="title">Uses of Package<br>org.apache.guacamole.io</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> used by <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/io/class-use/GuacamoleReader.html#org.apache.guacamole.io">GuacamoleReader</a>
+<div class="block">Provides abstract and raw character read access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/io/class-use/GuacamoleWriter.html#org.apache.guacamole.io">GuacamoleWriter</a>
+<div class="block">Provides abstract and raw character write access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> used by <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/io/class-use/GuacamoleReader.html#org.apache.guacamole.net">GuacamoleReader</a>
+<div class="block">Provides abstract and raw character read access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/io/class-use/GuacamoleWriter.html#org.apache.guacamole.net">GuacamoleWriter</a>
+<div class="block">Provides abstract and raw character write access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> used by <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/io/class-use/GuacamoleReader.html#org.apache.guacamole.protocol">GuacamoleReader</a>
+<div class="block">Provides abstract and raw character read access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/io/class-use/GuacamoleWriter.html#org.apache.guacamole.protocol">GuacamoleWriter</a>
+<div class="block">Provides abstract and raw character write access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/AbstractGuacamoleTunnel.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/AbstractGuacamoleTunnel.html
new file mode 100644
index 0000000..6a9f924
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/AbstractGuacamoleTunnel.html
@@ -0,0 +1,496 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractGuacamoleTunnel (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractGuacamoleTunnel (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractGuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/AbstractGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="AbstractGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Class AbstractGuacamoleTunnel" class="title">Class AbstractGuacamoleTunnel</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.AbstractGuacamoleTunnel</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractGuacamoleTunnel</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></pre>
+<div class="block">Base GuacamoleTunnel implementation which synchronizes access to the
+ underlying reader and writer with reentrant locks. Implementations need only
+ provide the tunnel's UUID and socket.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.GuacamoleTunnel">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#INTERNAL_DATA_OPCODE">INTERNAL_DATA_OPCODE</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#AbstractGuacamoleTunnel--">AbstractGuacamoleTunnel</a></span>()</code>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the underlying
+ GuacamoleSocket.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireReader--">acquireReader</a></span>()</code>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireWriter--">acquireWriter</a></span>()</code>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#close--">close</a></span>()</code>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads</a></span>()</code>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads</a></span>()</code>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#releaseReader--">releaseReader</a></span>()</code>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#releaseWriter--">releaseWriter</a></span>()</code>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.GuacamoleTunnel">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">getSocket</a>, <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getUUID--">getUUID</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractGuacamoleTunnel--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractGuacamoleTunnel</h4>
+<pre>public&nbsp;AbstractGuacamoleTunnel()</pre>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the underlying
+ GuacamoleSocket.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="acquireReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acquireReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;acquireReader()</pre>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireReader--">acquireReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader for reading from the Guacamole instruction
+         stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="releaseReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>releaseReader</h4>
+<pre>public&nbsp;void&nbsp;releaseReader()</pre>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream. This function should be called whenever a thread finishes using
+ a GuacamoleTunnel's GuacamoleReader.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseReader--">releaseReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hasQueuedReaderThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasQueuedReaderThreads</h4>
+<pre>public&nbsp;boolean&nbsp;hasQueuedReaderThreads()</pre>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if threads are waiting for read access the Guacamole
+         instruction stream, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="acquireWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acquireWriter</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;acquireWriter()</pre>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireWriter--">acquireWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter for writing to the Guacamole instruction
+         stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="releaseWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>releaseWriter</h4>
+<pre>public&nbsp;void&nbsp;releaseWriter()</pre>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream. This function should be called whenever a thread finishes using
+ a GuacamoleTunnel's GuacamoleWriter.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseWriter--">releaseWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hasQueuedWriterThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasQueuedWriterThreads</h4>
+<pre>public&nbsp;boolean&nbsp;hasQueuedWriterThreads()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedWriterThreads--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if threads are waiting for write access the Guacamole
+         instruction stream, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#close--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - if an error occurs while releasing
+                            resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#isOpen--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#isOpen--">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleTunnel is open, false if it is closed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractGuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/AbstractGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="AbstractGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/DelegatingGuacamoleTunnel.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/DelegatingGuacamoleTunnel.html
new file mode 100644
index 0000000..3890245
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/DelegatingGuacamoleTunnel.html
@@ -0,0 +1,539 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingGuacamoleTunnel (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingGuacamoleTunnel (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingGuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="DelegatingGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Class DelegatingGuacamoleTunnel" class="title">Class DelegatingGuacamoleTunnel</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.DelegatingGuacamoleTunnel</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingGuacamoleTunnel</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></pre>
+<div class="block">GuacamoleTunnel implementation which simply delegates all function calls to
+ an underlying GuacamoleTunnel.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.GuacamoleTunnel">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#INTERNAL_DATA_OPCODE">INTERNAL_DATA_OPCODE</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#DelegatingGuacamoleTunnel-org.apache.guacamole.net.GuacamoleTunnel-">DelegatingGuacamoleTunnel</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</code>
+<div class="block">Wraps the given tunnel such that all function calls against this tunnel
+ will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#acquireReader--">acquireReader</a></span>()</code>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#acquireWriter--">acquireWriter</a></span>()</code>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#close--">close</a></span>()</code>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#getSocket--">getSocket</a></span>()</code>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#getUUID--">getUUID</a></span>()</code>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads</a></span>()</code>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads</a></span>()</code>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#releaseReader--">releaseReader</a></span>()</code>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#releaseWriter--">releaseWriter</a></span>()</code>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingGuacamoleTunnel-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingGuacamoleTunnel</h4>
+<pre>public&nbsp;DelegatingGuacamoleTunnel(<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</pre>
+<div class="block">Wraps the given tunnel such that all function calls against this tunnel
+ will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tunnel</code> - The GuacamoleTunnel to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="acquireReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acquireReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;acquireReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireReader--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireReader--">acquireReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader for reading from the Guacamole instruction
+         stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="releaseReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>releaseReader</h4>
+<pre>public&nbsp;void&nbsp;releaseReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseReader--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream. This function should be called whenever a thread finishes using
+ a GuacamoleTunnel's GuacamoleReader.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseReader--">releaseReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hasQueuedReaderThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasQueuedReaderThreads</h4>
+<pre>public&nbsp;boolean&nbsp;hasQueuedReaderThreads()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedReaderThreads--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if threads are waiting for read access the Guacamole
+         instruction stream, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="acquireWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acquireWriter</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;acquireWriter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireWriter--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireWriter--">acquireWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter for writing to the Guacamole instruction
+         stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="releaseWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>releaseWriter</h4>
+<pre>public&nbsp;void&nbsp;releaseWriter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseWriter--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream. This function should be called whenever a thread finishes using
+ a GuacamoleTunnel's GuacamoleWriter.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseWriter--">releaseWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hasQueuedWriterThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasQueuedWriterThreads</h4>
+<pre>public&nbsp;boolean&nbsp;hasQueuedWriterThreads()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedWriterThreads--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if threads are waiting for write access the Guacamole
+         instruction stream, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUUID--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUUID</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&nbsp;getUUID()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getUUID--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getUUID--">getUUID</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier associated with this GuacamoleTunnel.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSocket--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSocket</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;getSocket()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">getSocket</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleSocket used by this GuacamoleTunnel.</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#close--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - if an error occurs while releasing
+                            resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#isOpen--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#isOpen--">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleTunnel is open, false if it is closed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingGuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="DelegatingGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/GuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/GuacamoleSocket.html
new file mode 100644
index 0000000..684c8d1
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/GuacamoleSocket.html
@@ -0,0 +1,310 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/GuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Interface GuacamoleSocket" class="title">Interface GuacamoleSocket</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a>, <a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a>, <a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a>, <a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a>, <a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">GuacamoleSocket</span></pre>
+<div class="block">Provides abstract socket-like access to a Guacamole connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">close</a></span>()</code>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReader</h4>
+<pre><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;getReader()</pre>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader which can be used to read from the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriter</h4>
+<pre><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;getWriter()</pre>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter which can be used to write to the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>void&nbsp;close()
+    throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while releasing resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>boolean&nbsp;isOpen()</pre>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleSocket is open, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/GuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/GuacamoleTunnel.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/GuacamoleTunnel.html
new file mode 100644
index 0000000..c0f5f6b
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/GuacamoleTunnel.html
@@ -0,0 +1,479 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleTunnel (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleTunnel (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/GuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Interface GuacamoleTunnel" class="title">Interface GuacamoleTunnel</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a>, <a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a>, <a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">GuacamoleTunnel</span></pre>
+<div class="block">Provides a unique identifier and synchronized access to the GuacamoleReader
+ and GuacamoleWriter associated with a GuacamoleSocket.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#INTERNAL_DATA_OPCODE">INTERNAL_DATA_OPCODE</a></span></code>
+<div class="block">The Guacamole protocol instruction opcode reserved for arbitrary
+ internal use by tunnel implementations.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireReader--">acquireReader</a></span>()</code>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireWriter--">acquireWriter</a></span>()</code>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#close--">close</a></span>()</code>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">getSocket</a></span>()</code>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getUUID--">getUUID</a></span>()</code>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads</a></span>()</code>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads</a></span>()</code>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseReader--">releaseReader</a></span>()</code>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseWriter--">releaseWriter</a></span>()</code>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="INTERNAL_DATA_OPCODE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>INTERNAL_DATA_OPCODE</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> INTERNAL_DATA_OPCODE</pre>
+<div class="block">The Guacamole protocol instruction opcode reserved for arbitrary
+ internal use by tunnel implementations. The value of this opcode is
+ guaranteed to be the empty string (""). Tunnel implementations may use
+ this opcode for any purpose. It is currently used by the HTTP tunnel to
+ mark the end of the HTTP response, and by the WebSocket tunnel to
+ transmit the tunnel UUID.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.net.GuacamoleTunnel.INTERNAL_DATA_OPCODE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="acquireReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acquireReader</h4>
+<pre><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;acquireReader()</pre>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader for reading from the Guacamole instruction
+         stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="releaseReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>releaseReader</h4>
+<pre>void&nbsp;releaseReader()</pre>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream. This function should be called whenever a thread finishes using
+ a GuacamoleTunnel's GuacamoleReader.</div>
+</li>
+</ul>
+<a name="hasQueuedReaderThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasQueuedReaderThreads</h4>
+<pre>boolean&nbsp;hasQueuedReaderThreads()</pre>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if threads are waiting for read access the Guacamole
+         instruction stream, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="acquireWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acquireWriter</h4>
+<pre><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;acquireWriter()</pre>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter for writing to the Guacamole instruction
+         stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="releaseWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>releaseWriter</h4>
+<pre>void&nbsp;releaseWriter()</pre>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream. This function should be called whenever a thread finishes using
+ a GuacamoleTunnel's GuacamoleWriter.</div>
+</li>
+</ul>
+<a name="hasQueuedWriterThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasQueuedWriterThreads</h4>
+<pre>boolean&nbsp;hasQueuedWriterThreads()</pre>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if threads are waiting for write access the Guacamole
+         instruction stream, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUUID--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUUID</h4>
+<pre><a href="http://docs.oracle.com/javase/6/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&nbsp;getUUID()</pre>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier associated with this GuacamoleTunnel.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSocket--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSocket</h4>
+<pre><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;getSocket()</pre>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleSocket used by this GuacamoleTunnel.</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>void&nbsp;close()
+    throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - if an error occurs while releasing
+                            resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>boolean&nbsp;isOpen()</pre>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleTunnel is open, false if it is closed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/GuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/InetGuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/InetGuacamoleSocket.html
new file mode 100644
index 0000000..5f87685
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/InetGuacamoleSocket.html
@@ -0,0 +1,392 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>InetGuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="InetGuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InetGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/InetGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="InetGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Class InetGuacamoleSocket" class="title">Class InetGuacamoleSocket</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.InetGuacamoleSocket</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">InetGuacamoleSocket</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></pre>
+<div class="block">Provides abstract socket-like access to a Guacamole connection over a given
+ hostname and port.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#InetGuacamoleSocket-java.lang.String-int-">InetGuacamoleSocket</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                   int&nbsp;port)</code>
+<div class="block">Creates a new InetGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#close--">close</a></span>()</code>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="InetGuacamoleSocket-java.lang.String-int-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>InetGuacamoleSocket</h4>
+<pre>public&nbsp;InetGuacamoleSocket(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                           int&nbsp;port)
+                    throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Creates a new InetGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>hostname</code> - The hostname of the Guacamole proxy server to connect to.</dd>
+<dd><code>port</code> - The port of the Guacamole proxy server to connect to.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while connecting to the
+                            Guacamole proxy server.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">GuacamoleSocket</a></code></span></div>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while releasing resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="getReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;getReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader which can be used to read from the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriter</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;getWriter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter which can be used to write to the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleSocket is open, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InetGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/InetGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="InetGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/SSLGuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/SSLGuacamoleSocket.html
new file mode 100644
index 0000000..ba565ef
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/SSLGuacamoleSocket.html
@@ -0,0 +1,392 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SSLGuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SSLGuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SSLGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/SSLGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="SSLGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Class SSLGuacamoleSocket" class="title">Class SSLGuacamoleSocket</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.SSLGuacamoleSocket</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SSLGuacamoleSocket</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></pre>
+<div class="block">Provides abstract socket-like access to a Guacamole connection over SSL to
+ a given hostname and port.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#SSLGuacamoleSocket-java.lang.String-int-">SSLGuacamoleSocket</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                  int&nbsp;port)</code>
+<div class="block">Creates a new SSLGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port using SSL.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#close--">close</a></span>()</code>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SSLGuacamoleSocket-java.lang.String-int-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SSLGuacamoleSocket</h4>
+<pre>public&nbsp;SSLGuacamoleSocket(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                          int&nbsp;port)
+                   throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Creates a new SSLGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port using SSL.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>hostname</code> - The hostname of the Guacamole proxy server to connect to.</dd>
+<dd><code>port</code> - The port of the Guacamole proxy server to connect to.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while connecting to the
+                            Guacamole proxy server.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">GuacamoleSocket</a></code></span></div>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while releasing resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="getReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;getReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader which can be used to read from the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriter</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;getWriter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter which can be used to write to the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleSocket is open, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SSLGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/SSLGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="SSLGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/SimpleGuacamoleTunnel.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/SimpleGuacamoleTunnel.html
new file mode 100644
index 0000000..edd91cf
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/SimpleGuacamoleTunnel.html
@@ -0,0 +1,346 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleGuacamoleTunnel (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleGuacamoleTunnel (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleGuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/SimpleGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="SimpleGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Class SimpleGuacamoleTunnel" class="title">Class SimpleGuacamoleTunnel</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">org.apache.guacamole.net.AbstractGuacamoleTunnel</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.SimpleGuacamoleTunnel</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleGuacamoleTunnel</span>
+extends <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></pre>
+<div class="block">GuacamoleTunnel implementation which uses a provided socket. The UUID of
+ the tunnel will be randomly generated.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.GuacamoleTunnel">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#INTERNAL_DATA_OPCODE">INTERNAL_DATA_OPCODE</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html#SimpleGuacamoleTunnel-org.apache.guacamole.net.GuacamoleSocket-">SimpleGuacamoleTunnel</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</code>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the given GuacamoleSocket.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html#getSocket--">getSocket</a></span>()</code>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html#getUUID--">getUUID</a></span>()</code>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.AbstractGuacamoleTunnel">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireReader--">acquireReader</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireWriter--">acquireWriter</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#close--">close</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#isOpen--">isOpen</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#releaseReader--">releaseReader</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#releaseWriter--">releaseWriter</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleGuacamoleTunnel-org.apache.guacamole.net.GuacamoleSocket-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleGuacamoleTunnel</h4>
+<pre>public&nbsp;SimpleGuacamoleTunnel(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</pre>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the given GuacamoleSocket.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - The GuacamoleSocket to provide synchronized access for.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getUUID--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUUID</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&nbsp;getUUID()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getUUID--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier associated with this GuacamoleTunnel.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSocket--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getSocket</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;getSocket()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleSocket used by this GuacamoleTunnel.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleGuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/SimpleGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="SimpleGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/AbstractGuacamoleTunnel.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/AbstractGuacamoleTunnel.html
new file mode 100644
index 0000000..a55f30e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/AbstractGuacamoleTunnel.html
@@ -0,0 +1,171 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.AbstractGuacamoleTunnel (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.AbstractGuacamoleTunnel (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/AbstractGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="AbstractGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.AbstractGuacamoleTunnel" class="title">Uses of Class<br>org.apache.guacamole.net.AbstractGuacamoleTunnel</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a> in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a> in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></span></code>
+<div class="block">GuacamoleTunnel implementation which uses a provided socket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/AbstractGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="AbstractGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/DelegatingGuacamoleTunnel.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/DelegatingGuacamoleTunnel.html
new file mode 100644
index 0000000..0bce89e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/DelegatingGuacamoleTunnel.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.DelegatingGuacamoleTunnel (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.DelegatingGuacamoleTunnel (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/DelegatingGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="DelegatingGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.DelegatingGuacamoleTunnel" class="title">Uses of Class<br>org.apache.guacamole.net.DelegatingGuacamoleTunnel</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.DelegatingGuacamoleTunnel</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/DelegatingGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="DelegatingGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/GuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/GuacamoleSocket.html
new file mode 100644
index 0000000..0fcef3e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/GuacamoleSocket.html
@@ -0,0 +1,308 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.GuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.GuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/GuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.GuacamoleSocket" class="title">Uses of Interface<br>org.apache.guacamole.net.GuacamoleSocket</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a> in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that implement <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></span></code>
+<div class="block">Provides abstract socket-like access to a Guacamole connection over a given
+ hostname and port.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></span></code>
+<div class="block">Provides abstract socket-like access to a Guacamole connection over SSL to
+ a given hostname and port.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that return <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">getSocket</a></span>()</code>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#getSocket--">getSocket</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html#getSocket--">getSocket</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> with parameters of type <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html#SimpleGuacamoleTunnel-org.apache.guacamole.net.GuacamoleSocket-">SimpleGuacamoleTunnel</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</code>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the given GuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that implement <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></span></code>
+<div class="block">A GuacamoleSocket which pre-configures the connection based on a given
+ GuacamoleConfiguration, completing the initial protocol handshake before
+ accepting data for read or write.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></span></code>
+<div class="block">GuacamoleSocket which intercepts errors received early in the Guacamole
+ session.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></span></code>
+<div class="block">Implementation of GuacamoleSocket which allows individual instructions to be
+ intercepted, overridden, etc.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration to complete the initial protocol handshake over
+ the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a>&nbsp;info)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">FailoverGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until a maximum of 128KB of instruction data has been queued.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-int-">FailoverGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       int&nbsp;instructionQueueLimit)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until the given instruction queue limit is reached.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#FilteredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleFilter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;readFilter,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;writeFilter)</code>
+<div class="block">Creates a new FilteredGuacamoleSocket which uses the given filters to
+ determine whether instructions read/written are allowed through,
+ modified, etc.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/GuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/GuacamoleTunnel.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/GuacamoleTunnel.html
new file mode 100644
index 0000000..94d63ab
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/GuacamoleTunnel.html
@@ -0,0 +1,282 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.GuacamoleTunnel (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.GuacamoleTunnel (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/GuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.GuacamoleTunnel" class="title">Uses of Interface<br>org.apache.guacamole.net.GuacamoleTunnel</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.servlet">org.apache.guacamole.servlet</a></td>
+<td class="colLast">
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.websocket">org.apache.guacamole.websocket</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a> in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that implement <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></span></code>
+<div class="block">Base GuacamoleTunnel implementation which synchronizes access to the
+ underlying reader and writer with reentrant locks.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></span></code>
+<div class="block">GuacamoleTunnel implementation which simply delegates all function calls to
+ an underlying GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></span></code>
+<div class="block">GuacamoleTunnel implementation which uses a provided socket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> with parameters of type <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#DelegatingGuacamoleTunnel-org.apache.guacamole.net.GuacamoleTunnel-">DelegatingGuacamoleTunnel</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</code>
+<div class="block">Wraps the given tunnel such that all function calls against this tunnel
+ will be delegated to it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.servlet">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a> in <a href="../../../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a> that return <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doConnect-javax.servlet.http.HttpServletRequest-">doConnect</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a connection
+ request via HTTP.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#getTunnel-java.lang.String-">getTunnel</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Returns the tunnel with the given UUID, if it has been registered with
+ registerTunnel() and not yet deregistered with deregisterTunnel().</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a> with parameters of type <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#deregisterTunnel-org.apache.guacamole.net.GuacamoleTunnel-">deregisterTunnel</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</code>
+<div class="block">Deregisters the given tunnel such that future read/write requests to
+ that tunnel will be rejected.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#registerTunnel-org.apache.guacamole.net.GuacamoleTunnel-">registerTunnel</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</code>
+<div class="block">Registers the given tunnel such that future read/write requests to that
+ tunnel will be properly directed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a> in <a href="../../../../../org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a> that return <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleWebSocketTunnelEndpoint.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#createTunnel-javax.websocket.Session-javax.websocket.EndpointConfig-">createTunnel</a></span>(javax.websocket.Session&nbsp;session,
+            javax.websocket.EndpointConfig&nbsp;config)</code>
+<div class="block">Returns a new tunnel for the given session.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/GuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/InetGuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/InetGuacamoleSocket.html
new file mode 100644
index 0000000..76287ab
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/InetGuacamoleSocket.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.InetGuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.InetGuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/InetGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="InetGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.InetGuacamoleSocket" class="title">Uses of Class<br>org.apache.guacamole.net.InetGuacamoleSocket</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.InetGuacamoleSocket</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/InetGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="InetGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/SSLGuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/SSLGuacamoleSocket.html
new file mode 100644
index 0000000..d11b1f5
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/SSLGuacamoleSocket.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.SSLGuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.SSLGuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/SSLGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="SSLGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.SSLGuacamoleSocket" class="title">Uses of Class<br>org.apache.guacamole.net.SSLGuacamoleSocket</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.SSLGuacamoleSocket</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/SSLGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="SSLGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/SimpleGuacamoleTunnel.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/SimpleGuacamoleTunnel.html
new file mode 100644
index 0000000..f3451af
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/SimpleGuacamoleTunnel.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.SimpleGuacamoleTunnel (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.SimpleGuacamoleTunnel (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/SimpleGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="SimpleGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.SimpleGuacamoleTunnel" class="title">Uses of Class<br>org.apache.guacamole.net.SimpleGuacamoleTunnel</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.SimpleGuacamoleTunnel</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/SimpleGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="SimpleGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-frame.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-frame.html
new file mode 100644
index 0000000..1fa269b
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-frame.html
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/net/package-summary.html" target="classFrame">org.apache.guacamole.net</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="GuacamoleSocket.html" title="interface in org.apache.guacamole.net" target="classFrame"><span class="interfaceName">GuacamoleSocket</span></a></li>
+<li><a href="GuacamoleTunnel.html" title="interface in org.apache.guacamole.net" target="classFrame"><span class="interfaceName">GuacamoleTunnel</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net" target="classFrame">AbstractGuacamoleTunnel</a></li>
+<li><a href="DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net" target="classFrame">DelegatingGuacamoleTunnel</a></li>
+<li><a href="InetGuacamoleSocket.html" title="class in org.apache.guacamole.net" target="classFrame">InetGuacamoleSocket</a></li>
+<li><a href="SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net" target="classFrame">SimpleGuacamoleTunnel</a></li>
+<li><a href="SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net" target="classFrame">SSLGuacamoleSocket</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-summary.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-summary.html
new file mode 100644
index 0000000..d61bd3d
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-summary.html
@@ -0,0 +1,209 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net</h1>
+<div class="docSummary">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></td>
+<td class="colLast">
+<div class="block">Provides abstract socket-like access to a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></td>
+<td class="colLast">
+<div class="block">Provides a unique identifier and synchronized access to the GuacamoleReader
+ and GuacamoleWriter associated with a GuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></td>
+<td class="colLast">
+<div class="block">Base GuacamoleTunnel implementation which synchronizes access to the
+ underlying reader and writer with reentrant locks.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></td>
+<td class="colLast">
+<div class="block">GuacamoleTunnel implementation which simply delegates all function calls to
+ an underlying GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></td>
+<td class="colLast">
+<div class="block">Provides abstract socket-like access to a Guacamole connection over a given
+ hostname and port.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></td>
+<td class="colLast">
+<div class="block">GuacamoleTunnel implementation which uses a provided socket.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></td>
+<td class="colLast">
+<div class="block">Provides abstract socket-like access to a Guacamole connection over SSL to
+ a given hostname and port.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.net Description">Package org.apache.guacamole.net Description</h2>
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-tree.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-tree.html
new file mode 100644
index 0000000..70c2f25
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-tree.html
@@ -0,0 +1,151 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net Class Hierarchy (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net Class Hierarchy (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">AbstractGuacamoleTunnel</span></a> (implements org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">SimpleGuacamoleTunnel</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">DelegatingGuacamoleTunnel</span></a> (implements org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>)</li>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">InetGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">SSLGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">GuacamoleSocket</span></a></li>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">GuacamoleTunnel</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-use.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-use.html
new file mode 100644
index 0000000..72293dd
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-use.html
@@ -0,0 +1,246 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net" class="title">Uses of Package<br>org.apache.guacamole.net</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.servlet">org.apache.guacamole.servlet</a></td>
+<td class="colLast">
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.websocket">org.apache.guacamole.websocket</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> used by <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/net/class-use/AbstractGuacamoleTunnel.html#org.apache.guacamole.net">AbstractGuacamoleTunnel</a>
+<div class="block">Base GuacamoleTunnel implementation which synchronizes access to the
+ underlying reader and writer with reentrant locks.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/net/class-use/GuacamoleSocket.html#org.apache.guacamole.net">GuacamoleSocket</a>
+<div class="block">Provides abstract socket-like access to a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/net/class-use/GuacamoleTunnel.html#org.apache.guacamole.net">GuacamoleTunnel</a>
+<div class="block">Provides a unique identifier and synchronized access to the GuacamoleReader
+ and GuacamoleWriter associated with a GuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> used by <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/net/class-use/GuacamoleSocket.html#org.apache.guacamole.protocol">GuacamoleSocket</a>
+<div class="block">Provides abstract socket-like access to a Guacamole connection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.servlet">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> used by <a href="../../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/net/class-use/GuacamoleTunnel.html#org.apache.guacamole.servlet">GuacamoleTunnel</a>
+<div class="block">Provides a unique identifier and synchronized access to the GuacamoleReader
+ and GuacamoleWriter associated with a GuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.websocket">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> used by <a href="../../../../org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/net/class-use/GuacamoleTunnel.html#org.apache.guacamole.websocket">GuacamoleTunnel</a>
+<div class="block">Provides a unique identifier and synchronized access to the GuacamoleReader
+ and GuacamoleWriter associated with a GuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/package-frame.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/package-frame.html
new file mode 100644
index 0000000..23f85a8
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/package-frame.html
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../org/apache/guacamole/package-summary.html" target="classFrame">org.apache.guacamole</a></h1>
+<div class="indexContainer">
+<h2 title="Exceptions">Exceptions</h2>
+<ul title="Exceptions">
+<li><a href="GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientBadTypeException</a></li>
+<li><a href="GuacamoleClientException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientException</a></li>
+<li><a href="GuacamoleClientOverrunException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientOverrunException</a></li>
+<li><a href="GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientTimeoutException</a></li>
+<li><a href="GuacamoleClientTooManyException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientTooManyException</a></li>
+<li><a href="GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleConnectionClosedException</a></li>
+<li><a href="GuacamoleException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleException</a></li>
+<li><a href="GuacamoleResourceClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceClosedException</a></li>
+<li><a href="GuacamoleResourceConflictException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceConflictException</a></li>
+<li><a href="GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceNotFoundException</a></li>
+<li><a href="GuacamoleSecurityException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSecurityException</a></li>
+<li><a href="GuacamoleServerBusyException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleServerBusyException</a></li>
+<li><a href="GuacamoleServerException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleServerException</a></li>
+<li><a href="GuacamoleSessionClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionClosedException</a></li>
+<li><a href="GuacamoleSessionConflictException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionConflictException</a></li>
+<li><a href="GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionTimeoutException</a></li>
+<li><a href="GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUnauthorizedException</a></li>
+<li><a href="GuacamoleUnsupportedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUnsupportedException</a></li>
+<li><a href="GuacamoleUpstreamException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamException</a></li>
+<li><a href="GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamNotFoundException</a></li>
+<li><a href="GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamTimeoutException</a></li>
+<li><a href="GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamUnavailableException</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/package-summary.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/package-summary.html
new file mode 100644
index 0000000..9e2a818
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/package-summary.html
@@ -0,0 +1,308 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Package</li>
+<li><a href="../../../org/apache/guacamole/io/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole</h1>
+<div class="docSummary">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation">
+<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Exception</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when data has been submitted with an unsupported
+ mimetype.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></td>
+<td class="colLast">
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an error in the client's request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when the client has sent too much data.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when the client is taking too long to respond.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when too many requests have been received
+ by the current client, and further requests are being rejected, either
+ temporarily or permanently.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when an operation cannot be performed because
+ its corresponding connection is closed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></td>
+<td class="colLast">
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when a resource is no longer available because
+ it is closed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when a resource has been requested, but that
+ resource is locked or currently in use, and cannot be accessed by the
+ current user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></td>
+<td class="colLast">
+<div class="block">A generic exception thrown when part of the Guacamole API fails to find
+ a requested resource, such as a configuration or tunnel.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></td>
+<td class="colLast">
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when the server is too busy to service the
+ request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></td>
+<td class="colLast">
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an unexpected, internal error.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has been forcibly terminated.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it conflicted with another session.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it appeared to be inactive.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></td>
+<td class="colLast">
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource, but access MAY be granted were the user
+ authorized (logged in).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when the requested operation is unsupported
+ or unimplemented.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is returning an error or is otherwise unreachable.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) does not appear to exist.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is taking too long to respond.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) is not available to service the request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole Description">Package org.apache.guacamole Description</h2>
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Package</li>
+<li><a href="../../../org/apache/guacamole/io/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/package-tree.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/package-tree.html
new file mode 100644
index 0000000..55e6c2a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/package-tree.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole Class Hierarchy (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole Class Hierarchy (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li><a href="../../../org/apache/guacamole/io/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientBadTypeException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientOverrunException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientTimeoutException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientTooManyException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceClosedException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceConflictException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceNotFoundException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSecurityException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUnauthorizedException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleServerException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleConnectionClosedException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleServerBusyException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUnsupportedException</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionClosedException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionConflictException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionTimeoutException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamNotFoundException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamTimeoutException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamUnavailableException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li><a href="../../../org/apache/guacamole/io/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/package-use.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/package-use.html
new file mode 100644
index 0000000..50c711e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/package-use.html
@@ -0,0 +1,316 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole" class="title">Uses of Package<br>org.apache.guacamole</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.servlet">org.apache.guacamole.servlet</a></td>
+<td class="colLast">
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.websocket">org.apache.guacamole.websocket</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> used by <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleClientException.html#org.apache.guacamole">GuacamoleClientException</a>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an error in the client's request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleException.html#org.apache.guacamole">GuacamoleException</a>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleSecurityException.html#org.apache.guacamole">GuacamoleSecurityException</a>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleServerException.html#org.apache.guacamole">GuacamoleServerException</a>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an unexpected, internal error.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleUpstreamException.html#org.apache.guacamole">GuacamoleUpstreamException</a>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is returning an error or is otherwise unreachable.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> used by <a href="../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleException.html#org.apache.guacamole.io">GuacamoleException</a>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> used by <a href="../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleException.html#org.apache.guacamole.net">GuacamoleException</a>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> used by <a href="../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleException.html#org.apache.guacamole.protocol">GuacamoleException</a>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleUpstreamException.html#org.apache.guacamole.protocol">GuacamoleUpstreamException</a>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is returning an error or is otherwise unreachable.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.servlet">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> used by <a href="../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleException.html#org.apache.guacamole.servlet">GuacamoleException</a>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.websocket">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> used by <a href="../../../org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleException.html#org.apache.guacamole.websocket">GuacamoleException</a>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html
new file mode 100644
index 0000000..675c37c
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html
@@ -0,0 +1,506 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ConfiguredGuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConfiguredGuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConfiguredGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="ConfiguredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class ConfiguredGuacamoleSocket" class="title">Class ConfiguredGuacamoleSocket</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.ConfiguredGuacamoleSocket</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">ConfiguredGuacamoleSocket</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></pre>
+<div class="block">A GuacamoleSocket which pre-configures the connection based on a given
+ GuacamoleConfiguration, completing the initial protocol handshake before
+ accepting data for read or write.
+
+ This is useful for forcing a connection to the Guacamole proxy server with
+ a specific configuration while disallowing the client that will be using
+ this GuacamoleSocket from manually controlling the initial protocol
+ handshake.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration to complete the initial protocol handshake over
+ the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config,
+                         <a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a>&nbsp;info)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#close--">close</a></span>()</code>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getConfiguration--">getConfiguration</a></span>()</code>
+<div class="block">Returns the GuacamoleConfiguration used to configure this
+ ConfiguredGuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getConnectionID--">getConnectionID</a></span>()</code>
+<div class="block">Returns the unique ID associated with the Guacamole connection
+ negotiated by this ConfiguredGuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getProtocolVersion--">getProtocolVersion</a></span>()</code>
+<div class="block">Returns the version of the Guacamole protocol associated with the
+ Guacamole connection negotiated by this ConfiguredGuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ConfiguredGuacamoleSocket</h4>
+<pre>public&nbsp;ConfiguredGuacamoleSocket(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                                 <a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)
+                          throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration to complete the initial protocol handshake over
+ the given GuacamoleSocket. A default GuacamoleClientInformation object
+ is used to provide basic client information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - The GuacamoleSocket to wrap.</dd>
+<dd><code>config</code> - The GuacamoleConfiguration to use to complete the initial
+               protocol handshake.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while completing the
+                            initial protocol handshake.</dd>
+</dl>
+</li>
+</ul>
+<a name="ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ConfiguredGuacamoleSocket</h4>
+<pre>public&nbsp;ConfiguredGuacamoleSocket(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                                 <a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config,
+                                 <a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a>&nbsp;info)
+                          throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - The GuacamoleSocket to wrap.</dd>
+<dd><code>config</code> - The GuacamoleConfiguration to use to complete the initial
+               protocol handshake.</dd>
+<dd><code>info</code> - The GuacamoleClientInformation to use to complete the initial
+             protocol handshake.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while completing the
+                            initial protocol handshake.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;getConfiguration()</pre>
+<div class="block">Returns the GuacamoleConfiguration used to configure this
+ ConfiguredGuacamoleSocket.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleConfiguration used to configure this
+         ConfiguredGuacamoleSocket.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionID--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionID</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getConnectionID()</pre>
+<div class="block">Returns the unique ID associated with the Guacamole connection
+ negotiated by this ConfiguredGuacamoleSocket. The ID is provided by
+ the "ready" instruction returned by the Guacamole proxy.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ID of the negotiated Guacamole connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProtocolVersion--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocolVersion</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;getProtocolVersion()</pre>
+<div class="block">Returns the version of the Guacamole protocol associated with the
+ Guacamole connection negotiated by this ConfiguredGuacamoleSocket. This
+ version is the lowest version common to both ConfiguredGuacamoleSocket
+ and the relevant Guacamole proxy instance (guacd).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The protocol version that this ConfiguredGuacamoleSocket will use to
+     communicate with guacd.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriter</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;getWriter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter which can be used to write to the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="getReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;getReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader which can be used to read from the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">GuacamoleSocket</a></code></span></div>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while releasing resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleSocket is open, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConfiguredGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="ConfiguredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FailoverGuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FailoverGuacamoleSocket.html
new file mode 100644
index 0000000..a563372
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FailoverGuacamoleSocket.html
@@ -0,0 +1,442 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FailoverGuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FailoverGuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FailoverGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FailoverGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class FailoverGuacamoleSocket" class="title">Class FailoverGuacamoleSocket</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.FailoverGuacamoleSocket</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">FailoverGuacamoleSocket</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></pre>
+<div class="block">GuacamoleSocket which intercepts errors received early in the Guacamole
+ session. Upstream errors which are intercepted early enough result in
+ exceptions thrown immediately within the FailoverGuacamoleSocket's
+ constructor, allowing a different socket to be substituted prior to
+ fulfilling the connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">FailoverGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until a maximum of 128KB of instruction data has been queued.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-int-">FailoverGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       int&nbsp;instructionQueueLimit)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until the given instruction queue limit is reached.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#close--">close</a></span>()</code>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FailoverGuacamoleSocket</h4>
+<pre>public&nbsp;FailoverGuacamoleSocket(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                               int&nbsp;instructionQueueLimit)
+                        throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a>,
+                               <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until the given instruction queue limit is reached. If an
+ upstream error is encountered, it is thrown as a
+ GuacamoleUpstreamException. This constructor will block until an error
+ is encountered, until insufficient space remains in the instruction
+ queue, or until the connection appears to have been successful.
+ Once the FailoverGuacamoleSocket has been created, all reads, writes,
+ etc. will be delegated to the provided socket.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - The GuacamoleSocket of the Guacamole connection this
+     FailoverGuacamoleSocket should handle.</dd>
+<dd><code>instructionQueueLimit</code> - The maximum number of characters of Guacamole instruction data to
+     store within the instruction queue while searching for errors. Once
+     this limit is exceeded, the connection is assumed to be successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading data from the provided socket.</dd>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code> - If the connection to guacd succeeded, but an error occurred while
+     connecting to the remote desktop.</dd>
+</dl>
+</li>
+</ul>
+<a name="FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FailoverGuacamoleSocket</h4>
+<pre>public&nbsp;FailoverGuacamoleSocket(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)
+                        throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a>,
+                               <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until a maximum of 128KB of instruction data has been queued. If
+ an upstream error is encountered, it is thrown as a
+ GuacamoleUpstreamException. This constructor will block until an error
+ is encountered, until insufficient space remains in the instruction
+ queue, or until the connection appears to have been successful.
+ Once the FailoverGuacamoleSocket has been created, all reads, writes,
+ etc. will be delegated to the provided socket.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - The GuacamoleSocket of the Guacamole connection this
+     FailoverGuacamoleSocket should handle.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading data from the provided socket.</dd>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code> - If the connection to guacd succeeded, but an error occurred while
+     connecting to the remote desktop.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;getReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader which can be used to read from the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriter</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;getWriter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter which can be used to write to the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">GuacamoleSocket</a></code></span></div>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while releasing resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleSocket is open, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FailoverGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FailoverGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleReader.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleReader.html
new file mode 100644
index 0000000..9b77df6
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleReader.html
@@ -0,0 +1,377 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FilteredGuacamoleReader (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FilteredGuacamoleReader (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FilteredGuacamoleReader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FilteredGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class FilteredGuacamoleReader" class="title">Class FilteredGuacamoleReader</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.FilteredGuacamoleReader</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">FilteredGuacamoleReader</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></pre>
+<div class="block">GuacamoleReader which applies a given GuacamoleFilter to observe or alter all
+ read instructions. Instructions may also be dropped or denied by the the
+ filter.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#FilteredGuacamoleReader-org.apache.guacamole.io.GuacamoleReader-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleReader</a></span>(<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;reader,
+                       <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</code>
+<div class="block">Wraps the given GuacamoleReader, applying the given filter to all read
+ instructions.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#available--">available</a></span>()</code>
+<div class="block">Returns whether instruction data is available for reading.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>char[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#read--">read</a></span>()</code>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FilteredGuacamoleReader-org.apache.guacamole.io.GuacamoleReader-org.apache.guacamole.protocol.GuacamoleFilter-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FilteredGuacamoleReader</h4>
+<pre>public&nbsp;FilteredGuacamoleReader(<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;reader,
+                               <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</pre>
+<div class="block">Wraps the given GuacamoleReader, applying the given filter to all read
+ instructions. Future reads will return only instructions which pass
+ the filter.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>reader</code> - The GuacamoleReader to wrap.</dd>
+<dd><code>filter</code> - The filter which dictates which instructions are read, and
+               how.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="available--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>available</h4>
+<pre>public&nbsp;boolean&nbsp;available()
+                  throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#available--">GuacamoleReader</a></code></span></div>
+<div class="block">Returns whether instruction data is available for reading. Note that
+ this does not guarantee an entire instruction is available. If a full
+ instruction is not available, this function can return true, and a call
+ to read() will still block.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#available--">available</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if instruction data is available for reading, false
+         otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while checking for
+                            available data.</dd>
+</dl>
+</li>
+</ul>
+<a name="read--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>read</h4>
+<pre>public&nbsp;char[]&nbsp;read()
+            throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#read--">GuacamoleReader</a></code></span></div>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions. This function will block until at
+ least one complete instruction is available.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#read--">read</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A buffer containing at least one complete Guacamole instruction,
+         or null if no more instructions are available for reading.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading from the
+                            stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="readInstruction--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>readInstruction</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;readInstruction()
+                                     throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">GuacamoleReader</a></code></span></div>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">readInstruction</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The next complete instruction from the stream, fully parsed, or
+         null if no more instructions are available for reading.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading from the
+                            stream, or if the instruction cannot be
+                            parsed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FilteredGuacamoleReader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FilteredGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleSocket.html
new file mode 100644
index 0000000..f87a5ed
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleSocket.html
@@ -0,0 +1,394 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FilteredGuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FilteredGuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FilteredGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class FilteredGuacamoleSocket" class="title">Class FilteredGuacamoleSocket</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.FilteredGuacamoleSocket</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">FilteredGuacamoleSocket</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></pre>
+<div class="block">Implementation of GuacamoleSocket which allows individual instructions to be
+ intercepted, overridden, etc.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#FilteredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleFilter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;readFilter,
+                       <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;writeFilter)</code>
+<div class="block">Creates a new FilteredGuacamoleSocket which uses the given filters to
+ determine whether instructions read/written are allowed through,
+ modified, etc.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#close--">close</a></span>()</code>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FilteredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleFilter-org.apache.guacamole.protocol.GuacamoleFilter-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FilteredGuacamoleSocket</h4>
+<pre>public&nbsp;FilteredGuacamoleSocket(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                               <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;readFilter,
+                               <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;writeFilter)</pre>
+<div class="block">Creates a new FilteredGuacamoleSocket which uses the given filters to
+ determine whether instructions read/written are allowed through,
+ modified, etc. If reads or writes should be unfiltered, simply specify
+ null rather than a particular filter.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - The GuacamoleSocket to wrap.</dd>
+<dd><code>readFilter</code> - The GuacamoleFilter to apply to all read instructions,
+                   if any.</dd>
+<dd><code>writeFilter</code> - The GuacamoleFilter to apply to all written 
+                    instructions, if any.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;getReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader which can be used to read from the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriter</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;getWriter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter which can be used to write to the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">GuacamoleSocket</a></code></span></div>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while releasing resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleSocket is open, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FilteredGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleWriter.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleWriter.html
new file mode 100644
index 0000000..0ad5319
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleWriter.html
@@ -0,0 +1,377 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FilteredGuacamoleWriter (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FilteredGuacamoleWriter (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FilteredGuacamoleWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class FilteredGuacamoleWriter" class="title">Class FilteredGuacamoleWriter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.FilteredGuacamoleWriter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">FilteredGuacamoleWriter</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></pre>
+<div class="block">GuacamoleWriter which applies a given GuacamoleFilter to observe or alter
+ all written instructions. Instructions may also be dropped or denied by
+ the filter.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#FilteredGuacamoleWriter-org.apache.guacamole.io.GuacamoleWriter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleWriter</a></span>(<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;writer,
+                       <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</code>
+<div class="block">Wraps the given GuacamoleWriter, applying the given filter to all written 
+ instructions.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#write-char:A-">write</a></span>(char[]&nbsp;chunk)</code>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#write-char:A-int-int-">write</a></span>(char[]&nbsp;chunk,
+     int&nbsp;offset,
+     int&nbsp;length)</code>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FilteredGuacamoleWriter-org.apache.guacamole.io.GuacamoleWriter-org.apache.guacamole.protocol.GuacamoleFilter-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FilteredGuacamoleWriter</h4>
+<pre>public&nbsp;FilteredGuacamoleWriter(<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;writer,
+                               <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</pre>
+<div class="block">Wraps the given GuacamoleWriter, applying the given filter to all written 
+ instructions. Future writes will only write instructions which pass
+ the filter.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>writer</code> - The GuacamoleWriter to wrap.</dd>
+<dd><code>filter</code> - The filter which dictates which instructions are written,
+               and how.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="write-char:A-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>public&nbsp;void&nbsp;write(char[]&nbsp;chunk,
+                  int&nbsp;offset,
+                  int&nbsp;length)
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">GuacamoleWriter</a></code></span></div>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream. The portion must contain only complete Guacamole
+ instructions.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">write</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - An array of characters containing Guacamole instructions.</dd>
+<dd><code>offset</code> - The start offset of the portion of the array to write.</dd>
+<dd><code>length</code> - The length of the portion of the array to write.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            portion of the array specified.</dd>
+</dl>
+</li>
+</ul>
+<a name="write-char:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>public&nbsp;void&nbsp;write(char[]&nbsp;chunk)
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">GuacamoleWriter</a></code></span></div>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream. The array must consist only of complete Guacamole instructions.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">write</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - An array of characters consisting only of complete
+              Guacamole instructions.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            the specified array.</dd>
+</dl>
+</li>
+</ul>
+<a name="writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>writeInstruction</h4>
+<pre>public&nbsp;void&nbsp;writeInstruction(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)
+                      throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">GuacamoleWriter</a></code></span></div>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>instruction</code> - The Guacamole instruction to write.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            instruction.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FilteredGuacamoleWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleClientInformation.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleClientInformation.html
new file mode 100644
index 0000000..ec69054
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleClientInformation.html
@@ -0,0 +1,500 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleClientInformation (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleClientInformation (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientInformation.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleClientInformation.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientInformation.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class GuacamoleClientInformation" class="title">Class GuacamoleClientInformation</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleClientInformation</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleClientInformation</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">An abstract representation of Guacamole client information, including all
+ information required by the Guacamole protocol during the preamble.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#GuacamoleClientInformation--">GuacamoleClientInformation</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getAudioMimetypes--">getAudioMimetypes</a></span>()</code>
+<div class="block">Returns the list of audio mimetypes supported by the client.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getImageMimetypes--">getImageMimetypes</a></span>()</code>
+<div class="block">Returns the list of image mimetypes supported by the client.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getOptimalResolution--">getOptimalResolution</a></span>()</code>
+<div class="block">Returns the resolution of the screen if the optimal width and height are
+ used, in DPI.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getOptimalScreenHeight--">getOptimalScreenHeight</a></span>()</code>
+<div class="block">Returns the optimal screen height requested by the client, in pixels.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getOptimalScreenWidth--">getOptimalScreenWidth</a></span>()</code>
+<div class="block">Returns the optimal screen width requested by the client, in pixels.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getTimezone--">getTimezone</a></span>()</code>
+<div class="block">Return the timezone as reported by the client, or null if the timezone
+ is not set.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getVideoMimetypes--">getVideoMimetypes</a></span>()</code>
+<div class="block">Returns the list of video mimetypes supported by the client.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#setOptimalResolution-int-">setOptimalResolution</a></span>(int&nbsp;optimalResolution)</code>
+<div class="block">Sets the resolution of the screen if the optimal width and height are
+ used, in DPI.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#setOptimalScreenHeight-int-">setOptimalScreenHeight</a></span>(int&nbsp;optimalScreenHeight)</code>
+<div class="block">Sets the client's optimal screen height.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#setOptimalScreenWidth-int-">setOptimalScreenWidth</a></span>(int&nbsp;optimalScreenWidth)</code>
+<div class="block">Sets the client's optimal screen width.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#setTimezone-java.lang.String-">setTimezone</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timezone)</code>
+<div class="block">Set the string value of the timezone, or null if the timezone will not
+ be provided by the client.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleClientInformation--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleClientInformation</h4>
+<pre>public&nbsp;GuacamoleClientInformation()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getOptimalScreenWidth--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOptimalScreenWidth</h4>
+<pre>public&nbsp;int&nbsp;getOptimalScreenWidth()</pre>
+<div class="block">Returns the optimal screen width requested by the client, in pixels.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The optimal screen width requested by the client, in pixels.</dd>
+</dl>
+</li>
+</ul>
+<a name="setOptimalScreenWidth-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setOptimalScreenWidth</h4>
+<pre>public&nbsp;void&nbsp;setOptimalScreenWidth(int&nbsp;optimalScreenWidth)</pre>
+<div class="block">Sets the client's optimal screen width.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>optimalScreenWidth</code> - The optimal screen width of the client.</dd>
+</dl>
+</li>
+</ul>
+<a name="getOptimalScreenHeight--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOptimalScreenHeight</h4>
+<pre>public&nbsp;int&nbsp;getOptimalScreenHeight()</pre>
+<div class="block">Returns the optimal screen height requested by the client, in pixels.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The optimal screen height requested by the client, in pixels.</dd>
+</dl>
+</li>
+</ul>
+<a name="setOptimalScreenHeight-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setOptimalScreenHeight</h4>
+<pre>public&nbsp;void&nbsp;setOptimalScreenHeight(int&nbsp;optimalScreenHeight)</pre>
+<div class="block">Sets the client's optimal screen height.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>optimalScreenHeight</code> - The optimal screen height of the client.</dd>
+</dl>
+</li>
+</ul>
+<a name="getOptimalResolution--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOptimalResolution</h4>
+<pre>public&nbsp;int&nbsp;getOptimalResolution()</pre>
+<div class="block">Returns the resolution of the screen if the optimal width and height are
+ used, in DPI.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The optimal screen resolution.</dd>
+</dl>
+</li>
+</ul>
+<a name="setOptimalResolution-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setOptimalResolution</h4>
+<pre>public&nbsp;void&nbsp;setOptimalResolution(int&nbsp;optimalResolution)</pre>
+<div class="block">Sets the resolution of the screen if the optimal width and height are
+ used, in DPI.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>optimalResolution</code> - The optimal screen resolution in DPI.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAudioMimetypes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAudioMimetypes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAudioMimetypes()</pre>
+<div class="block">Returns the list of audio mimetypes supported by the client. To add or
+ removed supported mimetypes, the list returned by this function can be
+ modified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of audio mimetypes supported by the client.</dd>
+</dl>
+</li>
+</ul>
+<a name="getVideoMimetypes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getVideoMimetypes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getVideoMimetypes()</pre>
+<div class="block">Returns the list of video mimetypes supported by the client. To add or
+ removed supported mimetypes, the list returned by this function can be
+ modified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of video mimetypes supported by the client.</dd>
+</dl>
+</li>
+</ul>
+<a name="getImageMimetypes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getImageMimetypes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getImageMimetypes()</pre>
+<div class="block">Returns the list of image mimetypes supported by the client. To add or
+ removed supported mimetypes, the list returned by this function can be
+ modified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of image mimetypes supported by the client.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTimezone--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTimezone</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getTimezone()</pre>
+<div class="block">Return the timezone as reported by the client, or null if the timezone
+ is not set.  Valid timezones are specified in IANA zone key format,
+ also known as Olson time zone database or TZ Database.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A string value of the timezone reported by the client.</dd>
+</dl>
+</li>
+</ul>
+<a name="setTimezone-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setTimezone</h4>
+<pre>public&nbsp;void&nbsp;setTimezone(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timezone)</pre>
+<div class="block">Set the string value of the timezone, or null if the timezone will not
+ be provided by the client.  Valid timezones are specified in IANA zone
+ key format (aka Olson time zone database or tz database).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timezone</code> - The string value of the timezone reported by the client, in tz
+     database format, or null if the timezone is not provided by the
+     client.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientInformation.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleClientInformation.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientInformation.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleConfiguration.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleConfiguration.html
new file mode 100644
index 0000000..f9484fb
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleConfiguration.html
@@ -0,0 +1,519 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleConfiguration (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleConfiguration (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleConfiguration.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class GuacamoleConfiguration" class="title">Class GuacamoleConfiguration</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleConfiguration</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleConfiguration</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
+<div class="block">All information necessary to complete the initial protocol handshake of a
+ Guacamole session.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.protocol.GuacamoleConfiguration">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#GuacamoleConfiguration--">GuacamoleConfiguration</a></span>()</code>
+<div class="block">Creates a new, blank GuacamoleConfiguration with its protocol, connection
+ ID, and parameters unset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">GuacamoleConfiguration</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</code>
+<div class="block">Copies the given GuacamoleConfiguration, creating a new, indepedent
+ GuacamoleConfiguration containing the same protocol, connection ID,
+ and parameter values, if any.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#getConnectionID--">getConnectionID</a></span>()</code>
+<div class="block">Returns the ID of the connection being joined, if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#getParameter-java.lang.String-">getParameter</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the value set for the parameter with the given name, if any.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#getParameterNames--">getParameterNames</a></span>()</code>
+<div class="block">Returns a set of all currently defined parameter names.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#getParameters--">getParameters</a></span>()</code>
+<div class="block">Returns a map which contains parameter name/value pairs as key/value
+ pairs.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#getProtocol--">getProtocol</a></span>()</code>
+<div class="block">Returns the name of the protocol to be used.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#setConnectionID-java.lang.String-">setConnectionID</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;connectionID)</code>
+<div class="block">Sets the ID of the connection being joined, if any.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#setParameter-java.lang.String-java.lang.String-">setParameter</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Sets the value for the parameter with the given name.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#setParameters-java.util.Map-">setParameters</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</code>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#setProtocol-java.lang.String-">setProtocol</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;protocol)</code>
+<div class="block">Sets the name of the protocol to be used.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#unsetParameter-java.lang.String-">unsetParameter</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Removes the value set for the parameter with the given name.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleConfiguration</h4>
+<pre>public&nbsp;GuacamoleConfiguration()</pre>
+<div class="block">Creates a new, blank GuacamoleConfiguration with its protocol, connection
+ ID, and parameters unset.</div>
+</li>
+</ul>
+<a name="GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleConfiguration</h4>
+<pre>public&nbsp;GuacamoleConfiguration(<a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</pre>
+<div class="block">Copies the given GuacamoleConfiguration, creating a new, indepedent
+ GuacamoleConfiguration containing the same protocol, connection ID,
+ and parameter values, if any.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - The GuacamoleConfiguration to copy.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getConnectionID--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionID</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getConnectionID()</pre>
+<div class="block">Returns the ID of the connection being joined, if any. If no connection
+ is being joined, this returns null, and the protocol must be set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ID of the connection being joined, or null if no connection
+         is being joined.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConnectionID-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConnectionID</h4>
+<pre>public&nbsp;void&nbsp;setConnectionID(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;connectionID)</pre>
+<div class="block">Sets the ID of the connection being joined, if any. If no connection
+ is being joined, this value must be omitted, and the protocol must be
+ set instead.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connectionID</code> - The ID of the connection being joined.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProtocol--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocol</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getProtocol()</pre>
+<div class="block">Returns the name of the protocol to be used.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the protocol to be used.</dd>
+</dl>
+</li>
+</ul>
+<a name="setProtocol-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setProtocol</h4>
+<pre>public&nbsp;void&nbsp;setProtocol(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;protocol)</pre>
+<div class="block">Sets the name of the protocol to be used.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>protocol</code> - The name of the protocol to be used.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParameter-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameter</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParameter(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the value set for the parameter with the given name, if any.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the parameter to return the value for.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The value of the parameter with the given name, or null if
+         that parameter has not been set.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParameter-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParameter</h4>
+<pre>public&nbsp;void&nbsp;setParameter(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                         <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
+<div class="block">Sets the value for the parameter with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the parameter to set the value for.</dd>
+<dd><code>value</code> - The value to set for the parameter with the given name.</dd>
+</dl>
+</li>
+</ul>
+<a name="unsetParameter-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unsetParameter</h4>
+<pre>public&nbsp;void&nbsp;unsetParameter(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Removes the value set for the parameter with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the parameter to remove the value of.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParameterNames--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameterNames</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getParameterNames()</pre>
+<div class="block">Returns a set of all currently defined parameter names. Each name
+ corresponds to a parameter that has a value set on this
+ GuacamoleConfiguration via setParameter().</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all currently defined parameter names.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParameters--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameters</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getParameters()</pre>
+<div class="block">Returns a map which contains parameter name/value pairs as key/value
+ pairs. Changes to this map will affect the parameters stored within
+ this configuration.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map which contains all parameter name/value pairs as key/value
+     pairs.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParameters-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setParameters</h4>
+<pre>public&nbsp;void&nbsp;setParameters(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</pre>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map. Key/value pairs within the map represent parameter name/value
+ pairs.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parameters</code> - A map which contains all parameter name/value pairs as key/value
+     pairs.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleConfiguration.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleFilter.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleFilter.html
new file mode 100644
index 0000000..d352a7f
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleFilter.html
@@ -0,0 +1,246 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleFilter (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleFilter (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleFilter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Interface GuacamoleFilter" class="title">Interface GuacamoleFilter</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">GuacamoleFilter</span></pre>
+<div class="block">Interface which provides for the filtering of individual instructions. Each
+ filtered instruction may be allowed through untouched, modified, replaced,
+ dropped, or explicitly denied.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html#filter-org.apache.guacamole.protocol.GuacamoleInstruction-">filter</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Applies the filter to the given instruction, returning the original
+ instruction, a modified version of the original, or null, depending
+ on the implementation.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="filter-org.apache.guacamole.protocol.GuacamoleInstruction-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>filter</h4>
+<pre><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;filter(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)
+                     throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Applies the filter to the given instruction, returning the original
+ instruction, a modified version of the original, or null, depending
+ on the implementation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>instruction</code> - The instruction to filter.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The original instruction, if the instruction is to be allowed,
+         a modified version of the instruction, if the instruction is
+         to be overridden, or null, if the instruction is to be dropped.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs filtering the instruction,
+                            or if the instruction must be explicitly
+                            denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleFilter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleInstruction.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleInstruction.html
new file mode 100644
index 0000000..8ab7ded
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleInstruction.html
@@ -0,0 +1,370 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleInstruction (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleInstruction (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleInstruction.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleInstruction.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInstruction.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class GuacamoleInstruction" class="title">Class GuacamoleInstruction</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleInstruction</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleInstruction</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">An abstract representation of a Guacamole instruction, as defined by the
+ Guacamole protocol.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html#GuacamoleInstruction-java.lang.String-java.util.List-">GuacamoleInstruction</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;opcode,
+                    <a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;args)</code>
+<div class="block">Creates a new GuacamoleInstruction having the given Operation and
+ list of arguments values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html#GuacamoleInstruction-java.lang.String-java.lang.String...-">GuacamoleInstruction</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;opcode,
+                    <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;args)</code>
+<div class="block">Creates a new GuacamoleInstruction having the given Operation and
+ list of arguments values.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html#getArgs--">getArgs</a></span>()</code>
+<div class="block">Returns a List of all argument values specified for this
+ GuacamoleInstruction.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html#getOpcode--">getOpcode</a></span>()</code>
+<div class="block">Returns the opcode associated with this GuacamoleInstruction.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html#toString--">toString</a></span>()</code>
+<div class="block">Returns this GuacamoleInstruction in the form it would be sent over the
+ Guacamole protocol.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleInstruction-java.lang.String-java.lang.String...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleInstruction</h4>
+<pre>public&nbsp;GuacamoleInstruction(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;opcode,
+                            <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;args)</pre>
+<div class="block">Creates a new GuacamoleInstruction having the given Operation and
+ list of arguments values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>opcode</code> - The opcode of the instruction to create.</dd>
+<dd><code>args</code> - The list of argument values to provide in the new
+             instruction if any.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleInstruction-java.lang.String-java.util.List-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleInstruction</h4>
+<pre>public&nbsp;GuacamoleInstruction(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;opcode,
+                            <a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;args)</pre>
+<div class="block">Creates a new GuacamoleInstruction having the given Operation and
+ list of arguments values. The list given will be used to back the
+ internal list of arguments and the list returned by getArgs().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>opcode</code> - The opcode of the instruction to create.</dd>
+<dd><code>args</code> - The list of argument values to provide in the new
+             instruction if any.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getOpcode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOpcode</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getOpcode()</pre>
+<div class="block">Returns the opcode associated with this GuacamoleInstruction.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The opcode associated with this GuacamoleInstruction.</dd>
+</dl>
+</li>
+</ul>
+<a name="getArgs--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getArgs</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getArgs()</pre>
+<div class="block">Returns a List of all argument values specified for this
+ GuacamoleInstruction. Note that the List returned is immutable.
+ Attempts to modify the list will result in exceptions.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A List of all argument values specified for this
+         GuacamoleInstruction.</dd>
+</dl>
+</li>
+</ul>
+<a name="toString--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
+<div class="block">Returns this GuacamoleInstruction in the form it would be sent over the
+ Guacamole protocol.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>This GuacamoleInstruction in the form it would be sent over the
+     Guacamole protocol.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleInstruction.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleInstruction.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInstruction.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleParser.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleParser.html
new file mode 100644
index 0000000..e2e23b1
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleParser.html
@@ -0,0 +1,469 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleParser (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleParser (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleParser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleParser.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleParser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class GuacamoleParser" class="title">Class GuacamoleParser</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleParser</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleParser</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&gt;</pre>
+<div class="block">Parser for the Guacamole protocol. Arbitrary instruction data is appended,
+ and instructions are returned as a result. Invalid instructions result in
+ exceptions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_DIGITS">INSTRUCTION_MAX_DIGITS</a></span></code>
+<div class="block">The maximum number of digits to allow per length prefix.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_ELEMENTS">INSTRUCTION_MAX_ELEMENTS</a></span></code>
+<div class="block">The maximum number of elements per instruction, including the opcode.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_LENGTH">INSTRUCTION_MAX_LENGTH</a></span></code>
+<div class="block">The maximum number of characters per instruction.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#GuacamoleParser--">GuacamoleParser</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#append-char:A-">append</a></span>(char[]&nbsp;chunk)</code>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#append-char:A-int-int-">append</a></span>(char[]&nbsp;chunk,
+      int&nbsp;offset,
+      int&nbsp;length)</code>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#hasNext--">hasNext</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#next--">next</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#remove--">remove</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.util.Iterator">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.util.<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true#forEachRemaining-java.util.function.Consumer-" title="class or interface in java.util">forEachRemaining</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="INSTRUCTION_MAX_LENGTH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INSTRUCTION_MAX_LENGTH</h4>
+<pre>public static final&nbsp;int INSTRUCTION_MAX_LENGTH</pre>
+<div class="block">The maximum number of characters per instruction.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.protocol.GuacamoleParser.INSTRUCTION_MAX_LENGTH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="INSTRUCTION_MAX_DIGITS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INSTRUCTION_MAX_DIGITS</h4>
+<pre>public static final&nbsp;int INSTRUCTION_MAX_DIGITS</pre>
+<div class="block">The maximum number of digits to allow per length prefix.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.protocol.GuacamoleParser.INSTRUCTION_MAX_DIGITS">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="INSTRUCTION_MAX_ELEMENTS">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>INSTRUCTION_MAX_ELEMENTS</h4>
+<pre>public static final&nbsp;int INSTRUCTION_MAX_ELEMENTS</pre>
+<div class="block">The maximum number of elements per instruction, including the opcode.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.protocol.GuacamoleParser.INSTRUCTION_MAX_ELEMENTS">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleParser--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleParser</h4>
+<pre>public&nbsp;GuacamoleParser()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="append-char:A-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>append</h4>
+<pre>public&nbsp;int&nbsp;append(char[]&nbsp;chunk,
+                  int&nbsp;offset,
+                  int&nbsp;length)
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - The buffer containing the data to append.</dd>
+<dd><code>offset</code> - The offset within the buffer where the data begins.</dd>
+<dd><code>length</code> - The length of the data to append.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of characters appended, or 0 if complete instructions
+         have already been parsed and must be read via next() before
+         more data can be appended.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while parsing the new data.</dd>
+</dl>
+</li>
+</ul>
+<a name="append-char:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>append</h4>
+<pre>public&nbsp;int&nbsp;append(char[]&nbsp;chunk)
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - The data to append.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of characters appended, or 0 if complete instructions
+         have already been parsed and must be read via next() before
+         more data can be appended.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while parsing the new data.</dd>
+</dl>
+</li>
+</ul>
+<a name="hasNext--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;hasNext()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true#hasNext--" title="class or interface in java.util">hasNext</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a name="next--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>next</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;next()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true#next--" title="class or interface in java.util">next</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a name="remove--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>remove</h4>
+<pre>public&nbsp;void&nbsp;remove()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true#remove--" title="class or interface in java.util">remove</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleParser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleParser.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleParser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleProtocolCapability.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleProtocolCapability.html
new file mode 100644
index 0000000..dba4bb3
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleProtocolCapability.html
@@ -0,0 +1,403 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleProtocolCapability (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleProtocolCapability (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":9,"i2":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProtocolCapability.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolCapability.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Enum GuacamoleProtocolCapability" class="title">Enum GuacamoleProtocolCapability</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleProtocolCapability</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public enum <span class="typeNameLabel">GuacamoleProtocolCapability</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>&gt;</pre>
+<div class="block">Capabilities which may not be present in all versions of the Guacamole
+ protocol.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#ARBITRARY_HANDSHAKE_ORDER">ARBITRARY_HANDSHAKE_ORDER</a></span></code>
+<div class="block">The protocol does not require handshake instructions to be sent in a
+ specific order, nor that all handshake instructions be sent.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#PROTOCOL_VERSION_DETECTION">PROTOCOL_VERSION_DETECTION</a></span></code>
+<div class="block">Negotiation of Guacamole protocol version between client and server
+ during the protocol handshake.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#TIMEZONE_HANDSHAKE">TIMEZONE_HANDSHAKE</a></span></code>
+<div class="block">Support for the "timezone" handshake instruction.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#isSupported-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">isSupported</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;version)</code>
+<div class="block">Returns whether this capability is supported in the given Guacamole
+ protocol version.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="ARBITRARY_HANDSHAKE_ORDER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ARBITRARY_HANDSHAKE_ORDER</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a> ARBITRARY_HANDSHAKE_ORDER</pre>
+<div class="block">The protocol does not require handshake instructions to be sent in a
+ specific order, nor that all handshake instructions be sent. Arbitrary
+ handshake order was introduced in
+ <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_1_0"><code>GuacamoleProtocolVersion.VERSION_1_1_0</code></a>.</div>
+</li>
+</ul>
+<a name="PROTOCOL_VERSION_DETECTION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PROTOCOL_VERSION_DETECTION</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a> PROTOCOL_VERSION_DETECTION</pre>
+<div class="block">Negotiation of Guacamole protocol version between client and server
+ during the protocol handshake. The ability to negotiate protocol
+ versions was introduced in
+ <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_1_0"><code>GuacamoleProtocolVersion.VERSION_1_1_0</code></a>.</div>
+</li>
+</ul>
+<a name="TIMEZONE_HANDSHAKE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TIMEZONE_HANDSHAKE</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a> TIMEZONE_HANDSHAKE</pre>
+<div class="block">Support for the "timezone" handshake instruction. The "timezone"
+ instruction allows the client to request that the server forward their
+ local timezone for use within the remote desktop session. Support for
+ forwarding the client timezone was introduced in
+ <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_1_0"><code>GuacamoleProtocolVersion.VERSION_1_1_0</code></a>.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (GuacamoleProtocolCapability c : GuacamoleProtocolCapability.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+<a name="isSupported-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isSupported</h4>
+<pre>public&nbsp;boolean&nbsp;isSupported(<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;version)</pre>
+<div class="block">Returns whether this capability is supported in the given Guacamole
+ protocol version.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>version</code> - The Guacamole protocol version to check.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this capability is supported by the given protocol version,
+     false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProtocolCapability.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolCapability.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleProtocolVersion.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleProtocolVersion.html
new file mode 100644
index 0000000..a7435c7
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleProtocolVersion.html
@@ -0,0 +1,522 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleProtocolVersion (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleProtocolVersion (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9,"i7":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProtocolVersion.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolVersion.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class GuacamoleProtocolVersion" class="title">Class GuacamoleProtocolVersion</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleProtocolVersion</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleProtocolVersion</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Representation of a Guacamole protocol version. Convenience methods are
+ provided for parsing and comparing versions, as is necessary when
+ determining the version of the Guacamole protocol common to guacd and a
+ client.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#LATEST">LATEST</a></span></code>
+<div class="block">The most recent version of the Guacamole protocol at the time this
+ version of GuacamoleProtocolVersion was built.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_0_0">VERSION_1_0_0</a></span></code>
+<div class="block">Protocol version 1.0.0 and older.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_1_0">VERSION_1_1_0</a></span></code>
+<div class="block">Protocol version 1.1.0, which introduces Client-Server version
+ detection, arbitrary handshake instruction order, and support
+ for passing the client timezone to the server during the handshake.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#GuacamoleProtocolVersion-int-int-int-">GuacamoleProtocolVersion</a></span>(int&nbsp;major,
+                        int&nbsp;minor,
+                        int&nbsp;patch)</code>
+<div class="block">Generate a new GuacamoleProtocolVersion object with the given
+ major version, minor version, and patch version.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#atLeast-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">atLeast</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;otherVersion)</code>
+<div class="block">Returns whether this GuacamoleProtocolVersion is at least as recent as
+ (greater than or equal to) the given version.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#getMajor--">getMajor</a></span>()</code>
+<div class="block">Return the major version component of the protocol version.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#getMinor--">getMinor</a></span>()</code>
+<div class="block">Return the minor version component of the protocol version.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#getPatch--">getPatch</a></span>()</code>
+<div class="block">Return the patch version component of the protocol version.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#parseVersion-java.lang.String-">parseVersion</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;version)</code>
+<div class="block">Parse the String format of the version provided and return the
+ the enum value matching that version.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#toString--">toString</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="VERSION_1_0_0">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>VERSION_1_0_0</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a> VERSION_1_0_0</pre>
+<div class="block">Protocol version 1.0.0 and older.  Any client that doesn't explicitly
+ set the protocol version will negotiate down to this protocol version.
+ This requires that handshake instructions be ordered correctly, and
+ lacks support for certain protocol-related features introduced in later
+ versions.</div>
+</li>
+</ul>
+<a name="VERSION_1_1_0">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>VERSION_1_1_0</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a> VERSION_1_1_0</pre>
+<div class="block">Protocol version 1.1.0, which introduces Client-Server version
+ detection, arbitrary handshake instruction order, and support
+ for passing the client timezone to the server during the handshake.</div>
+</li>
+</ul>
+<a name="LATEST">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LATEST</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a> LATEST</pre>
+<div class="block">The most recent version of the Guacamole protocol at the time this
+ version of GuacamoleProtocolVersion was built.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleProtocolVersion-int-int-int-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleProtocolVersion</h4>
+<pre>public&nbsp;GuacamoleProtocolVersion(int&nbsp;major,
+                                int&nbsp;minor,
+                                int&nbsp;patch)</pre>
+<div class="block">Generate a new GuacamoleProtocolVersion object with the given
+ major version, minor version, and patch version.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>major</code> - The integer representation of the major version component.</dd>
+<dd><code>minor</code> - The integer representation of the minor version component.</dd>
+<dd><code>patch</code> - The integer representation of the patch version component.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getMajor--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMajor</h4>
+<pre>public&nbsp;int&nbsp;getMajor()</pre>
+<div class="block">Return the major version component of the protocol version.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The integer major version component.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMinor--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMinor</h4>
+<pre>public&nbsp;int&nbsp;getMinor()</pre>
+<div class="block">Return the minor version component of the protocol version.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The integer minor version component.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPatch--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPatch</h4>
+<pre>public&nbsp;int&nbsp;getPatch()</pre>
+<div class="block">Return the patch version component of the protocol version.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The integer patch version component.</dd>
+</dl>
+</li>
+</ul>
+<a name="atLeast-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>atLeast</h4>
+<pre>public&nbsp;boolean&nbsp;atLeast(<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;otherVersion)</pre>
+<div class="block">Returns whether this GuacamoleProtocolVersion is at least as recent as
+ (greater than or equal to) the given version.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>otherVersion</code> - The version to which this GuacamoleProtocolVersion should be compared.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this object is at least as recent as the given version,
+     false if the given version is newer.</dd>
+</dl>
+</li>
+</ul>
+<a name="parseVersion-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parseVersion</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;parseVersion(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;version)</pre>
+<div class="block">Parse the String format of the version provided and return the
+ the enum value matching that version.  If no value is provided, return
+ null.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>version</code> - The String format of the version to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The enum value that matches the specified version, VERSION_1_0_0
+     if no match is found, or null if no comparison version is provided.</dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="toString--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProtocolVersion.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolVersion.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleStatus.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleStatus.html
new file mode 100644
index 0000000..970a634
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleStatus.html
@@ -0,0 +1,749 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleStatus (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleStatus (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleStatus.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleStatus.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleStatus.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Enum GuacamoleStatus" class="title">Enum GuacamoleStatus</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleStatus</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public enum <span class="typeNameLabel">GuacamoleStatus</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&gt;</pre>
+<div class="block">All possible statuses returned by various Guacamole instructions, each having
+ a corresponding code.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_BAD_REQUEST">CLIENT_BAD_REQUEST</a></span></code>
+<div class="block">The operation could not be performed because bad parameters were given.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_BAD_TYPE">CLIENT_BAD_TYPE</a></span></code>
+<div class="block">The client sent data of an unsupported or unexpected type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_FORBIDDEN">CLIENT_FORBIDDEN</a></span></code>
+<div class="block">Permission was denied to perform the operation, and this operation will
+ not be granted even if the user is authorized.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_OVERRUN">CLIENT_OVERRUN</a></span></code>
+<div class="block">The client sent too much data.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_TIMEOUT">CLIENT_TIMEOUT</a></span></code>
+<div class="block">The client took too long to respond.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_TOO_MANY">CLIENT_TOO_MANY</a></span></code>
+<div class="block">The operation failed because the current client is already using too
+ many resources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_UNAUTHORIZED">CLIENT_UNAUTHORIZED</a></span></code>
+<div class="block">Permission was denied to perform the operation, as the user is not yet
+ authorized (not yet logged in, for example).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#RESOURCE_CLOSED">RESOURCE_CLOSED</a></span></code>
+<div class="block">The operation could not be performed as the requested resource is now
+ closed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#RESOURCE_CONFLICT">RESOURCE_CONFLICT</a></span></code>
+<div class="block">The operation could not be performed as the requested resource is already
+ in use.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#RESOURCE_NOT_FOUND">RESOURCE_NOT_FOUND</a></span></code>
+<div class="block">The operation could not be performed as the requested resource does not
+ exist.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#SERVER_BUSY">SERVER_BUSY</a></span></code>
+<div class="block">The operation could not be performed as the server is busy.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#SERVER_ERROR">SERVER_ERROR</a></span></code>
+<div class="block">The operation could not be performed due to an internal failure.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#SESSION_CLOSED">SESSION_CLOSED</a></span></code>
+<div class="block">The session within the upstream server has been forcibly terminated.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#SESSION_CONFLICT">SESSION_CONFLICT</a></span></code>
+<div class="block">The session within the upstream server has ended because it conflicted
+ with another session.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#SESSION_TIMEOUT">SESSION_TIMEOUT</a></span></code>
+<div class="block">The session within the upstream server has ended because it appeared to
+ be inactive.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#SUCCESS">SUCCESS</a></span></code>
+<div class="block">The operation succeeded.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#UNSUPPORTED">UNSUPPORTED</a></span></code>
+<div class="block">The requested operation is unsupported.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#UPSTREAM_ERROR">UPSTREAM_ERROR</a></span></code>
+<div class="block">The operation was unsuccessful due to an error or otherwise unexpected
+ condition of the upstream server.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#UPSTREAM_NOT_FOUND">UPSTREAM_NOT_FOUND</a></span></code>
+<div class="block">The operation could not be performed because the upstream server does
+ not appear to exist.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#UPSTREAM_TIMEOUT">UPSTREAM_TIMEOUT</a></span></code>
+<div class="block">The operation could not be performed because the upstream server is not
+ responding.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#UPSTREAM_UNAVAILABLE">UPSTREAM_UNAVAILABLE</a></span></code>
+<div class="block">The operation could not be performed because the upstream server is not
+ available to service the request.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#fromGuacamoleStatusCode-int-">fromGuacamoleStatusCode</a></span>(int&nbsp;code)</code>
+<div class="block">Returns the GuacamoleStatus corresponding to the given Guacamole
+ protocol status code.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#getGuacamoleStatusCode--">getGuacamoleStatusCode</a></span>()</code>
+<div class="block">Returns the corresponding Guacamole protocol status code.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#getHttpStatusCode--">getHttpStatusCode</a></span>()</code>
+<div class="block">Returns the most applicable HTTP error code.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#getWebSocketCode--">getWebSocketCode</a></span>()</code>
+<div class="block">Returns the most applicable HTTP error code.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="SUCCESS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SUCCESS</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> SUCCESS</pre>
+<div class="block">The operation succeeded.</div>
+</li>
+</ul>
+<a name="UNSUPPORTED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UNSUPPORTED</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> UNSUPPORTED</pre>
+<div class="block">The requested operation is unsupported.</div>
+</li>
+</ul>
+<a name="SERVER_ERROR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SERVER_ERROR</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> SERVER_ERROR</pre>
+<div class="block">The operation could not be performed due to an internal failure.</div>
+</li>
+</ul>
+<a name="SERVER_BUSY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SERVER_BUSY</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> SERVER_BUSY</pre>
+<div class="block">The operation could not be performed as the server is busy.</div>
+</li>
+</ul>
+<a name="UPSTREAM_TIMEOUT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UPSTREAM_TIMEOUT</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> UPSTREAM_TIMEOUT</pre>
+<div class="block">The operation could not be performed because the upstream server is not
+ responding.</div>
+</li>
+</ul>
+<a name="UPSTREAM_ERROR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UPSTREAM_ERROR</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> UPSTREAM_ERROR</pre>
+<div class="block">The operation was unsuccessful due to an error or otherwise unexpected
+ condition of the upstream server.</div>
+</li>
+</ul>
+<a name="RESOURCE_NOT_FOUND">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RESOURCE_NOT_FOUND</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> RESOURCE_NOT_FOUND</pre>
+<div class="block">The operation could not be performed as the requested resource does not
+ exist.</div>
+</li>
+</ul>
+<a name="RESOURCE_CONFLICT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RESOURCE_CONFLICT</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> RESOURCE_CONFLICT</pre>
+<div class="block">The operation could not be performed as the requested resource is already
+ in use.</div>
+</li>
+</ul>
+<a name="RESOURCE_CLOSED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RESOURCE_CLOSED</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> RESOURCE_CLOSED</pre>
+<div class="block">The operation could not be performed as the requested resource is now
+ closed.</div>
+</li>
+</ul>
+<a name="UPSTREAM_NOT_FOUND">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UPSTREAM_NOT_FOUND</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> UPSTREAM_NOT_FOUND</pre>
+<div class="block">The operation could not be performed because the upstream server does
+ not appear to exist.</div>
+</li>
+</ul>
+<a name="UPSTREAM_UNAVAILABLE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UPSTREAM_UNAVAILABLE</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> UPSTREAM_UNAVAILABLE</pre>
+<div class="block">The operation could not be performed because the upstream server is not
+ available to service the request.</div>
+</li>
+</ul>
+<a name="SESSION_CONFLICT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SESSION_CONFLICT</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> SESSION_CONFLICT</pre>
+<div class="block">The session within the upstream server has ended because it conflicted
+ with another session.</div>
+</li>
+</ul>
+<a name="SESSION_TIMEOUT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SESSION_TIMEOUT</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> SESSION_TIMEOUT</pre>
+<div class="block">The session within the upstream server has ended because it appeared to
+ be inactive.</div>
+</li>
+</ul>
+<a name="SESSION_CLOSED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SESSION_CLOSED</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> SESSION_CLOSED</pre>
+<div class="block">The session within the upstream server has been forcibly terminated.</div>
+</li>
+</ul>
+<a name="CLIENT_BAD_REQUEST">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_BAD_REQUEST</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_BAD_REQUEST</pre>
+<div class="block">The operation could not be performed because bad parameters were given.</div>
+</li>
+</ul>
+<a name="CLIENT_UNAUTHORIZED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_UNAUTHORIZED</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_UNAUTHORIZED</pre>
+<div class="block">Permission was denied to perform the operation, as the user is not yet
+ authorized (not yet logged in, for example). As HTTP 401 has implications
+ for HTTP-specific authorization schemes, this status continues to map to
+ HTTP 403 ("Forbidden"). To do otherwise would risk unintended effects.</div>
+</li>
+</ul>
+<a name="CLIENT_FORBIDDEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_FORBIDDEN</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_FORBIDDEN</pre>
+<div class="block">Permission was denied to perform the operation, and this operation will
+ not be granted even if the user is authorized.</div>
+</li>
+</ul>
+<a name="CLIENT_TIMEOUT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_TIMEOUT</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_TIMEOUT</pre>
+<div class="block">The client took too long to respond.</div>
+</li>
+</ul>
+<a name="CLIENT_OVERRUN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_OVERRUN</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_OVERRUN</pre>
+<div class="block">The client sent too much data.</div>
+</li>
+</ul>
+<a name="CLIENT_BAD_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_BAD_TYPE</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_BAD_TYPE</pre>
+<div class="block">The client sent data of an unsupported or unexpected type.</div>
+</li>
+</ul>
+<a name="CLIENT_TOO_MANY">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CLIENT_TOO_MANY</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_TOO_MANY</pre>
+<div class="block">The operation failed because the current client is already using too
+ many resources.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (GuacamoleStatus c : GuacamoleStatus.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+<a name="getHttpStatusCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHttpStatusCode</h4>
+<pre>public&nbsp;int&nbsp;getHttpStatusCode()</pre>
+<div class="block">Returns the most applicable HTTP error code.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The most applicable HTTP error code.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWebSocketCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWebSocketCode</h4>
+<pre>public&nbsp;int&nbsp;getWebSocketCode()</pre>
+<div class="block">Returns the most applicable HTTP error code.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The most applicable HTTP error code.</dd>
+</dl>
+</li>
+</ul>
+<a name="getGuacamoleStatusCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGuacamoleStatusCode</h4>
+<pre>public&nbsp;int&nbsp;getGuacamoleStatusCode()</pre>
+<div class="block">Returns the corresponding Guacamole protocol status code.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole protocol status code.</dd>
+</dl>
+</li>
+</ul>
+<a name="fromGuacamoleStatusCode-int-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>fromGuacamoleStatusCode</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;fromGuacamoleStatusCode(int&nbsp;code)</pre>
+<div class="block">Returns the GuacamoleStatus corresponding to the given Guacamole
+ protocol status code. If no such GuacamoleStatus is defined, null is
+ returned.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>code</code> - The Guacamole protocol status code to translate into a
+     GuacamoleStatus.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleStatus corresponding to the given Guacamole protocol
+     status code, or null if no such GuacamoleStatus is defined.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleStatus.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleStatus.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleStatus.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/ConfiguredGuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/ConfiguredGuacamoleSocket.html
new file mode 100644
index 0000000..76cf2cc
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/ConfiguredGuacamoleSocket.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.ConfiguredGuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.ConfiguredGuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/ConfiguredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="ConfiguredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.ConfiguredGuacamoleSocket" class="title">Uses of Class<br>org.apache.guacamole.protocol.ConfiguredGuacamoleSocket</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.protocol.ConfiguredGuacamoleSocket</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/ConfiguredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="ConfiguredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FailoverGuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FailoverGuacamoleSocket.html
new file mode 100644
index 0000000..e2b3b34
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FailoverGuacamoleSocket.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.FailoverGuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.FailoverGuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FailoverGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FailoverGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.FailoverGuacamoleSocket" class="title">Uses of Class<br>org.apache.guacamole.protocol.FailoverGuacamoleSocket</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.protocol.FailoverGuacamoleSocket</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FailoverGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FailoverGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleReader.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleReader.html
new file mode 100644
index 0000000..f798211
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleReader.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleReader (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleReader (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FilteredGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleReader" class="title">Uses of Class<br>org.apache.guacamole.protocol.FilteredGuacamoleReader</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.protocol.FilteredGuacamoleReader</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FilteredGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleSocket.html
new file mode 100644
index 0000000..6860947
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleSocket.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FilteredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleSocket" class="title">Uses of Class<br>org.apache.guacamole.protocol.FilteredGuacamoleSocket</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.protocol.FilteredGuacamoleSocket</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FilteredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleWriter.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleWriter.html
new file mode 100644
index 0000000..ad09424
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleWriter.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleWriter (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleWriter (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FilteredGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleWriter" class="title">Uses of Class<br>org.apache.guacamole.protocol.FilteredGuacamoleWriter</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.protocol.FilteredGuacamoleWriter</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FilteredGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleClientInformation.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleClientInformation.html
new file mode 100644
index 0000000..f8f1fad
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleClientInformation.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleClientInformation (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleClientInformation (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleClientInformation.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientInformation.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleClientInformation" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleClientInformation</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a>&nbsp;info)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleClientInformation.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientInformation.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleConfiguration.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleConfiguration.html
new file mode 100644
index 0000000..7d4573a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleConfiguration.html
@@ -0,0 +1,203 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleConfiguration (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleConfiguration (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleConfiguration" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleConfiguration</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ConfiguredGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getConfiguration--">getConfiguration</a></span>()</code>
+<div class="block">Returns the GuacamoleConfiguration used to configure this
+ ConfiguredGuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration to complete the initial protocol handshake over
+ the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a>&nbsp;info)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">GuacamoleConfiguration</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</code>
+<div class="block">Copies the given GuacamoleConfiguration, creating a new, indepedent
+ GuacamoleConfiguration containing the same protocol, connection ID,
+ and parameter values, if any.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleFilter.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleFilter.html
new file mode 100644
index 0000000..15e72cf
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleFilter.html
@@ -0,0 +1,186 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.protocol.GuacamoleFilter (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.protocol.GuacamoleFilter (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleFilter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.protocol.GuacamoleFilter" class="title">Uses of Interface<br>org.apache.guacamole.protocol.GuacamoleFilter</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#FilteredGuacamoleReader-org.apache.guacamole.io.GuacamoleReader-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleReader</a></span>(<a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;reader,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</code>
+<div class="block">Wraps the given GuacamoleReader, applying the given filter to all read
+ instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#FilteredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleFilter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;readFilter,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;writeFilter)</code>
+<div class="block">Creates a new FilteredGuacamoleSocket which uses the given filters to
+ determine whether instructions read/written are allowed through,
+ modified, etc.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#FilteredGuacamoleWriter-org.apache.guacamole.io.GuacamoleWriter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleWriter</a></span>(<a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;writer,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</code>
+<div class="block">Wraps the given GuacamoleWriter, applying the given filter to all written 
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleFilter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html
new file mode 100644
index 0000000..53d6a6a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html
@@ -0,0 +1,252 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleInstruction (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleInstruction (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInstruction.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleInstruction" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleInstruction</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a> in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReaderGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> with parameters of type <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">WriterGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html#filter-org.apache.guacamole.protocol.GuacamoleInstruction-">filter</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Applies the filter to the given instruction, returning the original
+ instruction, a modified version of the original, or null, depending
+ on the implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleParser.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleParser.html#next--">next</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html#filter-org.apache.guacamole.protocol.GuacamoleInstruction-">filter</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Applies the filter to the given instruction, returning the original
+ instruction, a modified version of the original, or null, depending
+ on the implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInstruction.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleParser.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleParser.html
new file mode 100644
index 0000000..3057f8f
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleParser.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleParser (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleParser (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleParser.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleParser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleParser" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleParser</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.protocol.GuacamoleParser</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleParser.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleParser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleProtocolCapability.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleProtocolCapability.html
new file mode 100644
index 0000000..01b5bb4
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleProtocolCapability.html
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleProtocolCapability (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleProtocolCapability (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleProtocolCapability.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolCapability.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleProtocolCapability" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleProtocolCapability</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolCapability.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolCapability.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleProtocolCapability.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolCapability.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleProtocolVersion.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleProtocolVersion.html
new file mode 100644
index 0000000..5832ce7
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleProtocolVersion.html
@@ -0,0 +1,231 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleProtocolVersion (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleProtocolVersion (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleProtocolVersion.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolVersion.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleProtocolVersion" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleProtocolVersion</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> declared as <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolVersion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#LATEST">LATEST</a></span></code>
+<div class="block">The most recent version of the Guacamole protocol at the time this
+ version of GuacamoleProtocolVersion was built.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolVersion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_0_0">VERSION_1_0_0</a></span></code>
+<div class="block">Protocol version 1.0.0 and older.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolVersion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_1_0">VERSION_1_1_0</a></span></code>
+<div class="block">Protocol version 1.1.0, which introduces Client-Server version
+ detection, arbitrary handshake instruction order, and support
+ for passing the client timezone to the server during the handshake.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ConfiguredGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getProtocolVersion--">getProtocolVersion</a></span>()</code>
+<div class="block">Returns the version of the Guacamole protocol associated with the
+ Guacamole connection negotiated by this ConfiguredGuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolVersion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#parseVersion-java.lang.String-">parseVersion</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;version)</code>
+<div class="block">Parse the String format of the version provided and return the
+ the enum value matching that version.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolVersion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#atLeast-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">atLeast</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;otherVersion)</code>
+<div class="block">Returns whether this GuacamoleProtocolVersion is at least as recent as
+ (greater than or equal to) the given version.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolCapability.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#isSupported-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">isSupported</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;version)</code>
+<div class="block">Returns whether this capability is supported in the given Guacamole
+ protocol version.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleProtocolVersion.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolVersion.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleStatus.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleStatus.html
new file mode 100644
index 0000000..9284896
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleStatus.html
@@ -0,0 +1,296 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleStatus (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleStatus (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleStatus.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleStatus.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleStatus" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleStatus</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> in <a href="../../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleServerBusyException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleServerBusyException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleUpstreamNotFoundException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleClientOverrunException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleClientOverrunException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleServerException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleServerException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleUnsupportedException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleUnsupportedException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleClientBadTypeException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleClientBadTypeException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleResourceClosedException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleResourceClosedException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleUpstreamUnavailableException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleClientTimeoutException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleClientTimeoutException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSecurityException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleSecurityException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleResourceNotFoundException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleUnauthorizedException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleUnauthorizedException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleClientTooManyException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleClientTooManyException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSessionConflictException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleSessionConflictException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleUpstreamTimeoutException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleClientException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleResourceConflictException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleResourceConflictException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleConnectionClosedException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleConnectionClosedException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSessionClosedException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleSessionClosedException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSessionTimeoutException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleUpstreamException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleStatus.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#fromGuacamoleStatusCode-int-">fromGuacamoleStatusCode</a></span>(int&nbsp;code)</code>
+<div class="block">Returns the GuacamoleStatus corresponding to the given Guacamole
+ protocol status code.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleStatus.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleStatus.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleStatus.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleStatus.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-frame.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-frame.html
new file mode 100644
index 0000000..35c907c
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-frame.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.protocol (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/protocol/package-summary.html" target="classFrame">org.apache.guacamole.protocol</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol" target="classFrame"><span class="interfaceName">GuacamoleFilter</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol" target="classFrame">ConfiguredGuacamoleSocket</a></li>
+<li><a href="FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol" target="classFrame">FailoverGuacamoleSocket</a></li>
+<li><a href="FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol" target="classFrame">FilteredGuacamoleReader</a></li>
+<li><a href="FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol" target="classFrame">FilteredGuacamoleSocket</a></li>
+<li><a href="FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol" target="classFrame">FilteredGuacamoleWriter</a></li>
+<li><a href="GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleClientInformation</a></li>
+<li><a href="GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleConfiguration</a></li>
+<li><a href="GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleInstruction</a></li>
+<li><a href="GuacamoleParser.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleParser</a></li>
+<li><a href="GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleProtocolVersion</a></li>
+</ul>
+<h2 title="Enums">Enums</h2>
+<ul title="Enums">
+<li><a href="GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol" target="classFrame">GuacamoleProtocolCapability</a></li>
+<li><a href="GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol" target="classFrame">GuacamoleStatus</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-summary.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-summary.html
new file mode 100644
index 0000000..00c929e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-summary.html
@@ -0,0 +1,260 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.protocol (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.protocol (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/servlet/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.protocol</h1>
+<div class="docSummary">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a></td>
+<td class="colLast">
+<div class="block">Interface which provides for the filtering of individual instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleSocket which pre-configures the connection based on a given
+ GuacamoleConfiguration, completing the initial protocol handshake before
+ accepting data for read or write.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></td>
+<td class="colLast">
+<div class="block">GuacamoleSocket which intercepts errors received early in the Guacamole
+ session.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></td>
+<td class="colLast">
+<div class="block">GuacamoleReader which applies a given GuacamoleFilter to observe or alter all
+ read instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></td>
+<td class="colLast">
+<div class="block">Implementation of GuacamoleSocket which allows individual instructions to be
+ intercepted, overridden, etc.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></td>
+<td class="colLast">
+<div class="block">GuacamoleWriter which applies a given GuacamoleFilter to observe or alter
+ all written instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></td>
+<td class="colLast">
+<div class="block">An abstract representation of Guacamole client information, including all
+ information required by the Guacamole protocol during the preamble.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></td>
+<td class="colLast">
+<div class="block">All information necessary to complete the initial protocol handshake of a
+ Guacamole session.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></td>
+<td class="colLast">
+<div class="block">An abstract representation of a Guacamole instruction, as defined by the
+ Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></td>
+<td class="colLast">
+<div class="block">Parser for the Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></td>
+<td class="colLast">
+<div class="block">Representation of a Guacamole protocol version.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation">
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></td>
+<td class="colLast">
+<div class="block">Capabilities which may not be present in all versions of the Guacamole
+ protocol.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></td>
+<td class="colLast">
+<div class="block">All possible statuses returned by various Guacamole instructions, each having
+ a corresponding code.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.protocol Description">Package org.apache.guacamole.protocol Description</h2>
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/servlet/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-tree.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-tree.html
new file mode 100644
index 0000000..c9b8037
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-tree.html
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.protocol Class Hierarchy (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.protocol Class Hierarchy (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/servlet/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.protocol</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">ConfiguredGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FailoverGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleReader</span></a> (implements org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleWriter</span></a> (implements org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleClientInformation</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleConfiguration</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleInstruction</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleParser</span></a> (implements java.util.<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;E&gt;)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleProtocolVersion</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleFilter</span></a></li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleProtocolCapability</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleStatus</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/servlet/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-use.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-use.html
new file mode 100644
index 0000000..ecd52b9
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-use.html
@@ -0,0 +1,248 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.protocol (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.protocol (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.protocol" class="title">Uses of Package<br>org.apache.guacamole.protocol</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> used by <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleStatus.html#org.apache.guacamole">GuacamoleStatus</a>
+<div class="block">All possible statuses returned by various Guacamole instructions, each having
+ a corresponding code.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> used by <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html#org.apache.guacamole.io">GuacamoleInstruction</a>
+<div class="block">An abstract representation of a Guacamole instruction, as defined by the
+ Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> used by <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleClientInformation.html#org.apache.guacamole.protocol">GuacamoleClientInformation</a>
+<div class="block">An abstract representation of Guacamole client information, including all
+ information required by the Guacamole protocol during the preamble.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleConfiguration.html#org.apache.guacamole.protocol">GuacamoleConfiguration</a>
+<div class="block">All information necessary to complete the initial protocol handshake of a
+ Guacamole session.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleFilter.html#org.apache.guacamole.protocol">GuacamoleFilter</a>
+<div class="block">Interface which provides for the filtering of individual instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html#org.apache.guacamole.protocol">GuacamoleInstruction</a>
+<div class="block">An abstract representation of a Guacamole instruction, as defined by the
+ Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleProtocolCapability.html#org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>
+<div class="block">Capabilities which may not be present in all versions of the Guacamole
+ protocol.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleProtocolVersion.html#org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>
+<div class="block">Representation of a Guacamole protocol version.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleStatus.html#org.apache.guacamole.protocol">GuacamoleStatus</a>
+<div class="block">All possible statuses returned by various Guacamole instructions, each having
+ a corresponding code.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html
new file mode 100644
index 0000000..07934a7
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html
@@ -0,0 +1,596 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleHTTPTunnelServlet (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleHTTPTunnelServlet (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":6,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleHTTPTunnelServlet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleHTTPTunnelServlet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.servlet</div>
+<h2 title="Class GuacamoleHTTPTunnelServlet" class="title">Class GuacamoleHTTPTunnelServlet</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.servlet.GenericServlet</li>
+<li>
+<ul class="inheritance">
+<li>javax.servlet.http.HttpServlet</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">GuacamoleHTTPTunnelServlet</span>
+extends javax.servlet.http.HttpServlet</pre>
+<div class="block">A HttpServlet implementing and abstracting the operations required by the
+ HTTP implementation of the JavaScript Guacamole client's tunnel.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#GuacamoleHTTPTunnelServlet--">GuacamoleHTTPTunnelServlet</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#deregisterTunnel-org.apache.guacamole.net.GuacamoleTunnel-">deregisterTunnel</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</code>
+<div class="block">Deregisters the given tunnel such that future read/write requests to
+ that tunnel will be rejected.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#destroy--">destroy</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doConnect-javax.servlet.http.HttpServletRequest-">doConnect</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a connection
+ request via HTTP.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doGet-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">doGet</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+     javax.servlet.http.HttpServletResponse&nbsp;response)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doPost-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">doPost</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+      javax.servlet.http.HttpServletResponse&nbsp;response)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doRead-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">doRead</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+      javax.servlet.http.HttpServletResponse&nbsp;response,
+      <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a read request.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doWrite-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">doWrite</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+       javax.servlet.http.HttpServletResponse&nbsp;response,
+       <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a write request.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#getTunnel-java.lang.String-">getTunnel</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Returns the tunnel with the given UUID, if it has been registered with
+ registerTunnel() and not yet deregistered with deregisterTunnel().</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#handleTunnelRequest-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">handleTunnelRequest</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+                   javax.servlet.http.HttpServletResponse&nbsp;response)</code>
+<div class="block">Dispatches every HTTP GET and POST request to the appropriate handler
+ function based on the query string.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#registerTunnel-org.apache.guacamole.net.GuacamoleTunnel-">registerTunnel</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</code>
+<div class="block">Registers the given tunnel such that future read/write requests to that
+ tunnel will be properly directed.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#sendError-javax.servlet.http.HttpServletResponse-int-int-java.lang.String-">sendError</a></span>(javax.servlet.http.HttpServletResponse&nbsp;response,
+         int&nbsp;guacamoleStatusCode,
+         int&nbsp;guacamoleHttpCode,
+         <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Sends an error on the given HTTP response using the information within
+ the given GuacamoleStatus.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.javax.servlet.http.HttpServlet">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.servlet.http.HttpServlet</h3>
+<code>doDelete, doHead, doOptions, doPut, doTrace, getLastModified, service, service</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.javax.servlet.GenericServlet">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.servlet.GenericServlet</h3>
+<code>getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, init, log, log</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleHTTPTunnelServlet--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleHTTPTunnelServlet</h4>
+<pre>public&nbsp;GuacamoleHTTPTunnelServlet()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="registerTunnel-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>registerTunnel</h4>
+<pre>protected&nbsp;void&nbsp;registerTunnel(<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</pre>
+<div class="block">Registers the given tunnel such that future read/write requests to that
+ tunnel will be properly directed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tunnel</code> - The tunnel to register.</dd>
+</dl>
+</li>
+</ul>
+<a name="deregisterTunnel-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deregisterTunnel</h4>
+<pre>protected&nbsp;void&nbsp;deregisterTunnel(<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</pre>
+<div class="block">Deregisters the given tunnel such that future read/write requests to
+ that tunnel will be rejected.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tunnel</code> - The tunnel to deregister.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTunnel-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTunnel</h4>
+<pre>protected&nbsp;<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;getTunnel(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)
+                             throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Returns the tunnel with the given UUID, if it has been registered with
+ registerTunnel() and not yet deregistered with deregisterTunnel().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tunnelUUID</code> - The UUID of registered tunnel.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The tunnel corresponding to the given UUID.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If the requested tunnel does not exist because it has not yet been
+     registered or it has been deregistered.</dd>
+</dl>
+</li>
+</ul>
+<a name="doGet-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doGet</h4>
+<pre>protected&nbsp;void&nbsp;doGet(javax.servlet.http.HttpServletRequest&nbsp;request,
+                     javax.servlet.http.HttpServletResponse&nbsp;response)
+              throws javax.servlet.ServletException</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>doGet</code>&nbsp;in class&nbsp;<code>javax.servlet.http.HttpServlet</code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>javax.servlet.ServletException</code></dd>
+</dl>
+</li>
+</ul>
+<a name="doPost-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doPost</h4>
+<pre>protected&nbsp;void&nbsp;doPost(javax.servlet.http.HttpServletRequest&nbsp;request,
+                      javax.servlet.http.HttpServletResponse&nbsp;response)
+               throws javax.servlet.ServletException</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>doPost</code>&nbsp;in class&nbsp;<code>javax.servlet.http.HttpServlet</code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>javax.servlet.ServletException</code></dd>
+</dl>
+</li>
+</ul>
+<a name="sendError-javax.servlet.http.HttpServletResponse-int-int-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendError</h4>
+<pre>protected&nbsp;void&nbsp;sendError(javax.servlet.http.HttpServletResponse&nbsp;response,
+                         int&nbsp;guacamoleStatusCode,
+                         int&nbsp;guacamoleHttpCode,
+                         <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)
+                  throws javax.servlet.ServletException</pre>
+<div class="block">Sends an error on the given HTTP response using the information within
+ the given GuacamoleStatus.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - The HTTP response to use to send the error.</dd>
+<dd><code>guacamoleStatusCode</code> - The GuacamoleStatus code to send.</dd>
+<dd><code>guacamoleHttpCode</code> - The numeric HTTP code to send.</dd>
+<dd><code>message</code> - The human-readable error message to send.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>javax.servlet.ServletException</code> - If an error prevents sending of the error code.</dd>
+</dl>
+</li>
+</ul>
+<a name="handleTunnelRequest-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>handleTunnelRequest</h4>
+<pre>protected&nbsp;void&nbsp;handleTunnelRequest(javax.servlet.http.HttpServletRequest&nbsp;request,
+                                   javax.servlet.http.HttpServletResponse&nbsp;response)
+                            throws javax.servlet.ServletException</pre>
+<div class="block">Dispatches every HTTP GET and POST request to the appropriate handler
+ function based on the query string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>request</code> - The HttpServletRequest associated with the GET or POST request
+     received.</dd>
+<dd><code>response</code> - The HttpServletResponse associated with the GET or POST request
+     received.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>javax.servlet.ServletException</code> - If an error occurs while servicing the request.</dd>
+</dl>
+</li>
+</ul>
+<a name="doConnect-javax.servlet.http.HttpServletRequest-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doConnect</h4>
+<pre>protected abstract&nbsp;<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;doConnect(javax.servlet.http.HttpServletRequest&nbsp;request)
+                                      throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Called whenever the JavaScript Guacamole client makes a connection
+ request via HTTP. It it up to the implementor of this function to define
+ what conditions must be met for a tunnel to be configured and returned
+ as a result of this connection request (whether some sort of credentials
+ must be specified, for example).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>request</code> - The HttpServletRequest associated with the connection request
+     received. Any parameters specified along with the connection request
+     can be read from this object.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A newly constructed GuacamoleTunnel if successful, null otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while constructing the GuacamoleTunnel, or if the
+     conditions required for connection are not met.</dd>
+</dl>
+</li>
+</ul>
+<a name="doRead-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doRead</h4>
+<pre>protected&nbsp;void&nbsp;doRead(javax.servlet.http.HttpServletRequest&nbsp;request,
+                      javax.servlet.http.HttpServletResponse&nbsp;response,
+                      <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)
+               throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Called whenever the JavaScript Guacamole client makes a read request.
+ This function should in general not be overridden, as it already
+ contains a proper implementation of the read operation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>request</code> - The HttpServletRequest associated with the read request received.</dd>
+<dd><code>response</code> - The HttpServletResponse associated with the write request received.
+     Any data to be sent to the client in response to the write request
+     should be written to the response body of this HttpServletResponse.</dd>
+<dd><code>tunnelUUID</code> - The UUID of the tunnel to read from, as specified in the write
+     request. This tunnel must have been created by a previous call to
+     doConnect().</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while handling the read request.</dd>
+</dl>
+</li>
+</ul>
+<a name="doWrite-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doWrite</h4>
+<pre>protected&nbsp;void&nbsp;doWrite(javax.servlet.http.HttpServletRequest&nbsp;request,
+                       javax.servlet.http.HttpServletResponse&nbsp;response,
+                       <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)
+                throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Called whenever the JavaScript Guacamole client makes a write request.
+ This function should in general not be overridden, as it already
+ contains a proper implementation of the write operation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>request</code> - The HttpServletRequest associated with the write request received.
+     Any data to be written will be specified within the body of this
+     request.</dd>
+<dd><code>response</code> - The HttpServletResponse associated with the write request received.</dd>
+<dd><code>tunnelUUID</code> - The UUID of the tunnel to write to, as specified in the write
+     request. This tunnel must have been created by a previous call to
+     doConnect().</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while handling the write request.</dd>
+</dl>
+</li>
+</ul>
+<a name="destroy--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>destroy</h4>
+<pre>public&nbsp;void&nbsp;destroy()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>destroy</code>&nbsp;in interface&nbsp;<code>javax.servlet.Servlet</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>destroy</code>&nbsp;in class&nbsp;<code>javax.servlet.GenericServlet</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleHTTPTunnelServlet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleHTTPTunnelServlet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/class-use/GuacamoleHTTPTunnelServlet.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/class-use/GuacamoleHTTPTunnelServlet.html
new file mode 100644
index 0000000..a4a4836
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/class-use/GuacamoleHTTPTunnelServlet.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/servlet/class-use/GuacamoleHTTPTunnelServlet.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleHTTPTunnelServlet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet" class="title">Uses of Class<br>org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/servlet/class-use/GuacamoleHTTPTunnelServlet.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleHTTPTunnelServlet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-frame.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-frame.html
new file mode 100644
index 0000000..93f8452
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-frame.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.servlet (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/servlet/package-summary.html" target="classFrame">org.apache.guacamole.servlet</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet" target="classFrame">GuacamoleHTTPTunnelServlet</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-summary.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-summary.html
new file mode 100644
index 0000000..477080f
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-summary.html
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.servlet (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.servlet (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/websocket/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.servlet</h1>
+<div class="docSummary">
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></td>
+<td class="colLast">
+<div class="block">A HttpServlet implementing and abstracting the operations required by the
+ HTTP implementation of the JavaScript Guacamole client's tunnel.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.servlet Description">Package org.apache.guacamole.servlet Description</h2>
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/websocket/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-tree.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-tree.html
new file mode 100644
index 0000000..7a16e4a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-tree.html
@@ -0,0 +1,147 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.servlet Class Hierarchy (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.servlet Class Hierarchy (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/websocket/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.servlet</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">javax.servlet.GenericServlet (implements java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig)
+<ul>
+<li type="circle">javax.servlet.http.HttpServlet (implements java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.servlet.<a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet"><span class="typeNameLink">GuacamoleHTTPTunnelServlet</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/websocket/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-use.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-use.html
new file mode 100644
index 0000000..2594ca6
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-use.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.servlet (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.servlet (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.servlet" class="title">Uses of Package<br>org.apache.guacamole.servlet</h1>
+</div>
+<div class="contentContainer">No usage of org.apache.guacamole.servlet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html
new file mode 100644
index 0000000..4fc9c7b
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html
@@ -0,0 +1,359 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleWebSocketTunnelEndpoint (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleWebSocketTunnelEndpoint (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleWebSocketTunnelEndpoint.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWebSocketTunnelEndpoint.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.websocket</div>
+<h2 title="Class GuacamoleWebSocketTunnelEndpoint" class="title">Class GuacamoleWebSocketTunnelEndpoint</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.websocket.Endpoint</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">GuacamoleWebSocketTunnelEndpoint</span>
+extends javax.websocket.Endpoint</pre>
+<div class="block">A WebSocket implementation of GuacamoleTunnel functionality, compatible with
+ the Guacamole.WebSocketTunnel object included with the JavaScript API.
+ Messages sent/received are simply chunks of the Guacamole protocol
+ instruction stream.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#GuacamoleWebSocketTunnelEndpoint--">GuacamoleWebSocketTunnelEndpoint</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#createTunnel-javax.websocket.Session-javax.websocket.EndpointConfig-">createTunnel</a></span>(javax.websocket.Session&nbsp;session,
+            javax.websocket.EndpointConfig&nbsp;config)</code>
+<div class="block">Returns a new tunnel for the given session.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#onClose-javax.websocket.Session-javax.websocket.CloseReason-">onClose</a></span>(javax.websocket.Session&nbsp;session,
+       javax.websocket.CloseReason&nbsp;closeReason)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#onMessage-java.lang.String-">onMessage</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#onOpen-javax.websocket.Session-javax.websocket.EndpointConfig-">onOpen</a></span>(javax.websocket.Session&nbsp;session,
+      javax.websocket.EndpointConfig&nbsp;config)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.javax.websocket.Endpoint">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.websocket.Endpoint</h3>
+<code>onError</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleWebSocketTunnelEndpoint--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleWebSocketTunnelEndpoint</h4>
+<pre>public&nbsp;GuacamoleWebSocketTunnelEndpoint()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="createTunnel-javax.websocket.Session-javax.websocket.EndpointConfig-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createTunnel</h4>
+<pre>protected abstract&nbsp;<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;createTunnel(javax.websocket.Session&nbsp;session,
+                                                javax.websocket.EndpointConfig&nbsp;config)
+                                         throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Returns a new tunnel for the given session. How this tunnel is created
+ or retrieved is implementation-dependent.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - The session associated with the active WebSocket
+                connection.</dd>
+<dd><code>config</code> - Configuration information associated with the instance of
+               the endpoint created for handling this single connection.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A connected tunnel, or null if no such tunnel exists.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while retrieving the
+                            tunnel, or if access to the tunnel is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="onOpen-javax.websocket.Session-javax.websocket.EndpointConfig-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onOpen</h4>
+<pre>public&nbsp;void&nbsp;onOpen(javax.websocket.Session&nbsp;session,
+                   javax.websocket.EndpointConfig&nbsp;config)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>onOpen</code>&nbsp;in class&nbsp;<code>javax.websocket.Endpoint</code></dd>
+</dl>
+</li>
+</ul>
+<a name="onMessage-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onMessage</h4>
+<pre>public&nbsp;void&nbsp;onMessage(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+</li>
+</ul>
+<a name="onClose-javax.websocket.Session-javax.websocket.CloseReason-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onClose</h4>
+<pre>public&nbsp;void&nbsp;onClose(javax.websocket.Session&nbsp;session,
+                    javax.websocket.CloseReason&nbsp;closeReason)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>onClose</code>&nbsp;in class&nbsp;<code>javax.websocket.Endpoint</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleWebSocketTunnelEndpoint.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWebSocketTunnelEndpoint.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/class-use/GuacamoleWebSocketTunnelEndpoint.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/class-use/GuacamoleWebSocketTunnelEndpoint.html
new file mode 100644
index 0000000..06c3449
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/class-use/GuacamoleWebSocketTunnelEndpoint.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/websocket/class-use/GuacamoleWebSocketTunnelEndpoint.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWebSocketTunnelEndpoint.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint" class="title">Uses of Class<br>org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/websocket/class-use/GuacamoleWebSocketTunnelEndpoint.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWebSocketTunnelEndpoint.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-frame.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-frame.html
new file mode 100644
index 0000000..e18dd18
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-frame.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.websocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/websocket/package-summary.html" target="classFrame">org.apache.guacamole.websocket</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket" target="classFrame">GuacamoleWebSocketTunnelEndpoint</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-summary.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-summary.html
new file mode 100644
index 0000000..1e39e22
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-summary.html
@@ -0,0 +1,147 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.websocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.websocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/servlet/package-summary.html">Prev&nbsp;Package</a></li>
+<li>Next&nbsp;Package</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.websocket</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></td>
+<td class="colLast">
+<div class="block">A WebSocket implementation of GuacamoleTunnel functionality, compatible with
+ the Guacamole.WebSocketTunnel object included with the JavaScript API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/servlet/package-summary.html">Prev&nbsp;Package</a></li>
+<li>Next&nbsp;Package</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-tree.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-tree.html
new file mode 100644
index 0000000..ba74a24
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-tree.html
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.websocket Class Hierarchy (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.websocket Class Hierarchy (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/servlet/package-tree.html">Prev</a></li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.websocket</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">javax.websocket.Endpoint
+<ul>
+<li type="circle">org.apache.guacamole.websocket.<a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket"><span class="typeNameLink">GuacamoleWebSocketTunnelEndpoint</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/servlet/package-tree.html">Prev</a></li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-use.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-use.html
new file mode 100644
index 0000000..a247bfc
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-use.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.websocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.websocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.websocket" class="title">Uses of Package<br>org.apache.guacamole.websocket</h1>
+</div>
+<div class="contentContainer">No usage of org.apache.guacamole.websocket</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/overview-frame.html b/doc/1.1.0/guacamole-common/overview-frame.html
new file mode 100644
index 0000000..f657e9a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/overview-frame.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Overview List (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<div class="indexHeader"><span><a href="allclasses-frame.html" target="packageFrame">All&nbsp;Classes</a></span></div>
+<div class="indexContainer">
+<h2 title="Packages">Packages</h2>
+<ul title="Packages">
+<li><a href="org/apache/guacamole/package-frame.html" target="packageFrame">org.apache.guacamole</a></li>
+<li><a href="org/apache/guacamole/io/package-frame.html" target="packageFrame">org.apache.guacamole.io</a></li>
+<li><a href="org/apache/guacamole/net/package-frame.html" target="packageFrame">org.apache.guacamole.net</a></li>
+<li><a href="org/apache/guacamole/protocol/package-frame.html" target="packageFrame">org.apache.guacamole.protocol</a></li>
+<li><a href="org/apache/guacamole/servlet/package-frame.html" target="packageFrame">org.apache.guacamole.servlet</a></li>
+<li><a href="org/apache/guacamole/websocket/package-frame.html" target="packageFrame">org.apache.guacamole.websocket</a></li>
+</ul>
+</div>
+<p>&nbsp;</p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/overview-summary.html b/doc/1.1.0/guacamole-common/overview-summary.html
new file mode 100644
index 0000000..c34e938
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/overview-summary.html
@@ -0,0 +1,174 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Overview (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Overview (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
+<li><a href="overview-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">guacamole-common 1.1.0 API</h1>
+</div>
+<div class="contentContainer">
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Packages table, listing packages, and an explanation">
+<caption><span>Packages</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a></td>
+<td class="colLast">
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
+<li><a href="overview-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/overview-tree.html b/doc/1.1.0/guacamole-common/overview-tree.html
new file mode 100644
index 0000000..238b747
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/overview-tree.html
@@ -0,0 +1,243 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Class Hierarchy (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Class Hierarchy (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For All Packages</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="org/apache/guacamole/package-tree.html">org.apache.guacamole</a>, </li>
+<li><a href="org/apache/guacamole/io/package-tree.html">org.apache.guacamole.io</a>, </li>
+<li><a href="org/apache/guacamole/net/package-tree.html">org.apache.guacamole.net</a>, </li>
+<li><a href="org/apache/guacamole/protocol/package-tree.html">org.apache.guacamole.protocol</a>, </li>
+<li><a href="org/apache/guacamole/servlet/package-tree.html">org.apache.guacamole.servlet</a>, </li>
+<li><a href="org/apache/guacamole/websocket/package-tree.html">org.apache.guacamole.websocket</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">AbstractGuacamoleTunnel</span></a> (implements org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">SimpleGuacamoleTunnel</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">ConfiguredGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">DelegatingGuacamoleTunnel</span></a> (implements org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>)</li>
+<li type="circle">javax.websocket.Endpoint
+<ul>
+<li type="circle">org.apache.guacamole.websocket.<a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket"><span class="typeNameLink">GuacamoleWebSocketTunnelEndpoint</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FailoverGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleReader</span></a> (implements org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleWriter</span></a> (implements org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>)</li>
+<li type="circle">javax.servlet.GenericServlet (implements java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig)
+<ul>
+<li type="circle">javax.servlet.http.HttpServlet (implements java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet"><span class="typeNameLink">GuacamoleHTTPTunnelServlet</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleClientInformation</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleConfiguration</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleInstruction</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleParser</span></a> (implements java.util.<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;E&gt;)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleProtocolVersion</span></a></li>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">InetGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">org.apache.guacamole.io.<a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">ReaderGuacamoleReader</span></a> (implements org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>)</li>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">SSLGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientBadTypeException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientOverrunException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientTimeoutException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientTooManyException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceClosedException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceConflictException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceNotFoundException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSecurityException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUnauthorizedException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleServerException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleConnectionClosedException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleServerBusyException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUnsupportedException</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionClosedException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionConflictException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionTimeoutException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamNotFoundException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamTimeoutException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamUnavailableException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.io.<a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">WriterGuacamoleWriter</span></a> (implements org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleFilter</span></a></li>
+<li type="circle">org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">GuacamoleReader</span></a></li>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">GuacamoleSocket</span></a></li>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">GuacamoleTunnel</span></a></li>
+<li type="circle">org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">GuacamoleWriter</span></a></li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleProtocolCapability</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleStatus</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/package-list b/doc/1.1.0/guacamole-common/package-list
new file mode 100644
index 0000000..a64bfa3
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/package-list
@@ -0,0 +1,6 @@
+org.apache.guacamole
+org.apache.guacamole.io
+org.apache.guacamole.net
+org.apache.guacamole.protocol
+org.apache.guacamole.servlet
+org.apache.guacamole.websocket
diff --git a/doc/1.1.0/guacamole-common/script.js b/doc/1.1.0/guacamole-common/script.js
new file mode 100644
index 0000000..b346356
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/script.js
@@ -0,0 +1,30 @@
+function show(type)
+{
+    count = 0;
+    for (var key in methods) {
+        var row = document.getElementById(key);
+        if ((methods[key] &  type) != 0) {
+            row.style.display = '';
+            row.className = (count++ % 2) ? rowColor : altColor;
+        }
+        else
+            row.style.display = 'none';
+    }
+    updateTabs(type);
+}
+
+function updateTabs(type)
+{
+    for (var value in tabs) {
+        var sNode = document.getElementById(tabs[value][0]);
+        var spanNode = sNode.firstChild;
+        if (value == type) {
+            sNode.className = activeTableTab;
+            spanNode.innerHTML = tabs[value][1];
+        }
+        else {
+            sNode.className = tableTab;
+            spanNode.innerHTML = "<a href=\"javascript:show("+ value + ");\">" + tabs[value][1] + "</a>";
+        }
+    }
+}
diff --git a/doc/1.1.0/guacamole-common/serialized-form.html b/doc/1.1.0/guacamole-common/serialized-form.html
new file mode 100644
index 0000000..145d576
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/serialized-form.html
@@ -0,0 +1,308 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Serialized Form (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Serialized Form (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li>
+<li><a href="serialized-form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Serialized Form" class="title">Serialized Form</h1>
+</div>
+<div class="serializedFormContainer">
+<ul class="blockList">
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.guacamole</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleClientBadTypeException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientBadTypeException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleClientException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a> extends <a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleClientOverrunException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientOverrunException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleClientTimeoutException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientTimeoutException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleClientTooManyException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientTooManyException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleConnectionClosedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleConnectionClosedException</a> extends <a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a> extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleResourceClosedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleResourceClosedException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleResourceConflictException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleResourceConflictException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleResourceNotFoundException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleResourceNotFoundException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleSecurityException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleSecurityException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleServerBusyException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleServerBusyException</a> extends <a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleServerException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleServerException</a> extends <a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleSessionClosedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleSessionClosedException</a> extends <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleSessionConflictException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleSessionConflictException</a> extends <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleSessionTimeoutException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleSessionTimeoutException</a> extends <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleUnauthorizedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUnauthorizedException</a> extends <a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleUnsupportedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUnsupportedException</a> extends <a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleUpstreamException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a> extends <a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleUpstreamNotFoundException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamNotFoundException</a> extends <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleUpstreamTimeoutException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamTimeoutException</a> extends <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleUpstreamUnavailableException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamUnavailableException</a> extends <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> implements Serializable</h3>
+</li>
+</ul>
+</li>
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.guacamole.protocol</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.protocol.GuacamoleConfiguration">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">org.apache.guacamole.protocol.GuacamoleConfiguration</a> extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>1L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>connectionID</h4>
+<pre><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> connectionID</pre>
+<div class="block">The ID of the connection being joined. If this value is present,
+ the protocol need not be specified.</div>
+</li>
+<li class="blockList">
+<h4>protocol</h4>
+<pre><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> protocol</pre>
+<div class="block">The name of the protocol associated with this configuration.</div>
+</li>
+<li class="blockListLast">
+<h4>parameters</h4>
+<pre><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">K</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">V</a>&gt; parameters</pre>
+<div class="block">Map of all associated parameter values, indexed by parameter name.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.guacamole.servlet</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet</a> extends javax.servlet.http.HttpServlet implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>logger</h4>
+<pre>org.slf4j.Logger logger</pre>
+<div class="block">Logger for this class.</div>
+</li>
+<li class="blockListLast">
+<h4>tunnels</h4>
+<pre>org.apache.guacamole.servlet.GuacamoleHTTPTunnelMap tunnels</pre>
+<div class="block">Map of absolutely all active tunnels using HTTP, indexed by tunnel UUID.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li>
+<li><a href="serialized-form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/stylesheet.css b/doc/1.1.0/guacamole-common/stylesheet.css
new file mode 100644
index 0000000..98055b2
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/stylesheet.css
@@ -0,0 +1,574 @@
+/* Javadoc style sheet */
+/*
+Overall document style
+*/
+
+@import url('resources/fonts/dejavu.css');
+
+body {
+    background-color:#ffffff;
+    color:#353833;
+    font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
+    font-size:14px;
+    margin:0;
+}
+a:link, a:visited {
+    text-decoration:none;
+    color:#4A6782;
+}
+a:hover, a:focus {
+    text-decoration:none;
+    color:#bb7a2a;
+}
+a:active {
+    text-decoration:none;
+    color:#4A6782;
+}
+a[name] {
+    color:#353833;
+}
+a[name]:hover {
+    text-decoration:none;
+    color:#353833;
+}
+pre {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+}
+h1 {
+    font-size:20px;
+}
+h2 {
+    font-size:18px;
+}
+h3 {
+    font-size:16px;
+    font-style:italic;
+}
+h4 {
+    font-size:13px;
+}
+h5 {
+    font-size:12px;
+}
+h6 {
+    font-size:11px;
+}
+ul {
+    list-style-type:disc;
+}
+code, tt {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+    margin-top:8px;
+    line-height:1.4em;
+}
+dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+}
+table tr td dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    vertical-align:top;
+    padding-top:4px;
+}
+sup {
+    font-size:8px;
+}
+/*
+Document title and Copyright styles
+*/
+.clear {
+    clear:both;
+    height:0px;
+    overflow:hidden;
+}
+.aboutLanguage {
+    float:right;
+    padding:0px 21px;
+    font-size:11px;
+    z-index:200;
+    margin-top:-9px;
+}
+.legalCopy {
+    margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+    color:#FFFFFF;
+    text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+    color:#bb7a2a;
+}
+.tab {
+    background-color:#0066FF;
+    color:#ffffff;
+    padding:8px;
+    width:5em;
+    font-weight:bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    padding:.8em .5em .4em .8em;
+    height:auto;/*height:1.8em;*/
+    font-size:11px;
+    margin:0;
+}
+.topNav {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px; 
+}
+.bottomNav {
+    margin-top:10px;
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav {
+    background-color:#dee3e9;
+    float:left;
+    width:100%;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav div {
+    clear:left;
+    float:left;
+    padding:0 0 5px 6px;
+    text-transform:uppercase;
+}
+ul.navList, ul.subNavList {
+    float:left;
+    margin:0 25px 0 0;
+    padding:0;
+}
+ul.navList li{
+    list-style:none;
+    float:left;
+    padding: 5px 6px;
+    text-transform:uppercase;
+}
+ul.subNavList li{
+    list-style:none;
+    float:left;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+    color:#FFFFFF;
+    text-decoration:none;
+    text-transform:uppercase;
+}
+.topNav a:hover, .bottomNav a:hover {
+    text-decoration:none;
+    color:#bb7a2a;
+    text-transform:uppercase;
+}
+.navBarCell1Rev {
+    background-color:#F8981D;
+    color:#253441;
+    margin: auto 5px;
+}
+.skipNav {
+    position:absolute;
+    top:auto;
+    left:-9999px;
+    overflow:hidden;
+}
+/*
+Page header and footer styles
+*/
+.header, .footer {
+    clear:both;
+    margin:0 20px;
+    padding:5px 0 0 0;
+}
+.indexHeader {
+    margin:10px;
+    position:relative;
+}
+.indexHeader span{
+    margin-right:15px;
+}
+.indexHeader h1 {
+    font-size:13px;
+}
+.title {
+    color:#2c4557;
+    margin:10px 0;
+}
+.subTitle {
+    margin:5px 0 0 0;
+}
+.header ul {
+    margin:0 0 15px 0;
+    padding:0;
+}
+.footer ul {
+    margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+    list-style:none;
+    font-size:13px;
+}
+/*
+Heading styles
+*/
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+    padding:0;
+    margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+    padding:0px 0 20px 0;
+}
+/*
+Page layout container styles
+*/
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
+    clear:both;
+    padding:10px 20px;
+    position:relative;
+}
+.indexContainer {
+    margin:10px;
+    position:relative;
+    font-size:12px;
+}
+.indexContainer h2 {
+    font-size:13px;
+    padding:0 0 3px 0;
+}
+.indexContainer ul {
+    margin:0;
+    padding:0;
+}
+.indexContainer ul li {
+    list-style:none;
+    padding-top:2px;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+    font-size:12px;
+    font-weight:bold;
+    margin:10px 0 0 0;
+    color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+    margin:5px 0 10px 0px;
+    font-size:14px;
+    font-family:'DejaVu Sans Mono',monospace;
+}
+.serializedFormContainer dl.nameValue dt {
+    margin-left:1px;
+    font-size:1.1em;
+    display:inline;
+    font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+    margin:0 0 0 1px;
+    font-size:1.1em;
+    display:inline;
+}
+/*
+List styles
+*/
+ul.horizontal li {
+    display:inline;
+    font-size:0.9em;
+}
+ul.inheritance {
+    margin:0;
+    padding:0;
+}
+ul.inheritance li {
+    display:inline;
+    list-style:none;
+}
+ul.inheritance li ul.inheritance {
+    margin-left:15px;
+    padding-left:15px;
+    padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+    margin:10px 0 10px 0;
+    padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+    list-style:none;
+    margin-bottom:15px;
+    line-height:1.4;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+    padding:0px 20px 5px 10px;
+    border:1px solid #ededed; 
+    background-color:#f8f8f8;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+    padding:0 0 5px 8px;
+    background-color:#ffffff;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+    margin-left:0;
+    padding-left:0;
+    padding-bottom:15px;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+    list-style:none;
+    border-bottom:none;
+    padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+    margin-top:0;
+    margin-bottom:1px;
+}
+/*
+Table styles
+*/
+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
+    width:100%;
+    border-left:1px solid #EEE; 
+    border-right:1px solid #EEE; 
+    border-bottom:1px solid #EEE; 
+}
+.overviewSummary, .memberSummary  {
+    padding:0px;
+}
+.overviewSummary caption, .memberSummary caption, .typeSummary caption,
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
+    position:relative;
+    text-align:left;
+    background-repeat:no-repeat;
+    color:#253441;
+    font-weight:bold;
+    clear:none;
+    overflow:hidden;
+    padding:0px;
+    padding-top:10px;
+    padding-left:1px;
+    margin:0px;
+    white-space:pre;
+}
+.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
+.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
+.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
+.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
+.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
+    color:#FFFFFF;
+}
+.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    padding-bottom:7px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    border: none;
+    height:16px;
+}
+.memberSummary caption span.activeTableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    height:16px;
+}
+.memberSummary caption span.tableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#4D7A97;
+    height:16px;
+}
+.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
+    padding-top:0px;
+    padding-left:0px;
+    padding-right:0px;
+    background-image:none;
+    float:none;
+    display:inline;
+}
+.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
+    display:none;
+    width:5px;
+    position:relative;
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .activeTableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative; 
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .tableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative;
+    background-color:#4D7A97;
+    float:left;
+
+}
+.overviewSummary td, .memberSummary td, .typeSummary td,
+.useSummary td, .constantsSummary td, .deprecatedSummary td {
+    text-align:left;
+    padding:0px 0px 12px 10px;
+}
+th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
+td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
+    vertical-align:top;
+    padding-right:0px;
+    padding-top:8px;
+    padding-bottom:3px;
+}
+th.colFirst, th.colLast, th.colOne, .constantsSummary th {
+    background:#dee3e9;
+    text-align:left;
+    padding:8px 3px 3px 7px;
+}
+td.colFirst, th.colFirst {
+    white-space:nowrap;
+    font-size:13px;
+}
+td.colLast, th.colLast {
+    font-size:13px;
+}
+td.colOne, th.colOne {
+    font-size:13px;
+}
+.overviewSummary td.colFirst, .overviewSummary th.colFirst,
+.useSummary td.colFirst, .useSummary th.colFirst,
+.overviewSummary td.colOne, .overviewSummary th.colOne,
+.memberSummary td.colFirst, .memberSummary th.colFirst,
+.memberSummary td.colOne, .memberSummary th.colOne,
+.typeSummary td.colFirst{
+    width:25%;
+    vertical-align:top;
+}
+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+    font-weight:bold;
+}
+.tableSubHeadingColor {
+    background-color:#EEEEFF;
+}
+.altColor {
+    background-color:#FFFFFF;
+}
+.rowColor {
+    background-color:#EEEEEF;
+}
+/*
+Content styles
+*/
+.description pre {
+    margin-top:0;
+}
+.deprecatedContent {
+    margin:0;
+    padding:10px 0;
+}
+.docSummary {
+    padding:0;
+}
+
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    font-style:normal;
+}
+
+div.block {
+    font-size:14px;
+    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+
+td.colLast div {
+    padding-top:0px;
+}
+
+
+td.colLast a {
+    padding-bottom:3px;
+}
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+    color:green;
+    padding:0 30px 0 0;
+}
+h1.hidden {
+    visibility:hidden;
+    overflow:hidden;
+    font-size:10px;
+}
+.block {
+    display:block;
+    margin:3px 10px 2px 0px;
+    color:#474747;
+}
+.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
+.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
+.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
+    font-weight:bold;
+}
+.deprecationComment, .emphasizedPhrase, .interfaceName {
+    font-style:italic;
+}
+
+div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
+div.block div.block span.interfaceName {
+    font-style:normal;
+}
+
+div.contentContainer ul.blockList li.blockList h2{
+    padding-bottom:0px;
+}
diff --git a/doc/1.1.0/guacamole-ext/allclasses-frame.html b/doc/1.1.0/guacamole-ext/allclasses-frame.html
new file mode 100644
index 0000000..60444cc
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/allclasses-frame.html
@@ -0,0 +1,139 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:18 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>All Classes (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractActiveConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractAuthenticatedUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractAuthenticationProvider</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractIdentifiable</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractSharingProfile</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractUserContext</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractUserGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ActiveConnection</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ActivityRecord</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ActivityRecordSet</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth" target="classFrame">ActivityRecordSet.SortableProperty</a></li>
+<li><a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Attributes</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">AuthenticatedUser</span></a></li>
+<li><a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">AuthenticationFailureEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">AuthenticationFailureListener</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">AuthenticationProvider</span></a></li>
+<li><a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">AuthenticationSuccessEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">AuthenticationSuccessListener</span></a></li>
+<li><a href="org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form" target="classFrame">BooleanField</a></li>
+<li><a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">BooleanGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Connectable</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Connection</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ConnectionGroup</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth" target="classFrame">ConnectionGroup.Type</a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ConnectionRecord</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ConnectionRecordSet</span></a></li>
+<li><a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event" target="classFrame"><span class="interfaceName">CredentialEvent</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth" target="classFrame">Credentials</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">CredentialsInfo</a></li>
+<li><a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form" target="classFrame">DateField</a></li>
+<li><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DecoratingDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingSharingProfile</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingUserContext</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingUserGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Directory</span></a></li>
+<li><a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml" target="classFrame">DocumentHandler</a></li>
+<li><a href="org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form" target="classFrame">EmailField</a></li>
+<li><a href="org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form" target="classFrame">EnumField</a></li>
+<li><a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment" target="classFrame"><span class="interfaceName">Environment</span></a></li>
+<li><a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form" target="classFrame">Field</a></li>
+<li><a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form" target="classFrame">Field.Type</a></li>
+<li><a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form" target="classFrame">FieldOption</a></li>
+<li><a href="org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">FileGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form" target="classFrame">Form</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">GuacamoleCredentialsException</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">GuacamoleInsufficientCredentialsException</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">GuacamoleInvalidCredentialsException</a></li>
+<li><a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties" target="classFrame"><span class="interfaceName">GuacamoleProperty</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth" target="classFrame">GuacamoleProxyConfiguration</a></li>
+<li><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth" target="classFrame">GuacamoleProxyConfiguration.EncryptionMethod</a></li>
+<li><a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Identifiable</span></a></li>
+<li><a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">IntegerGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form" target="classFrame">LanguageField</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">Listener</span></a></li>
+<li><a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment" target="classFrame">LocalEnvironment</a></li>
+<li><a href="org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">LongGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form" target="classFrame">MultilineField</a></li>
+<li><a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form" target="classFrame">NumericField</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission" target="classFrame">ObjectPermission</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission" target="classFrame">ObjectPermission.Type</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">ObjectPermissionSet</span></a></li>
+<li><a href="org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form" target="classFrame">PasswordField</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">Permission</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Permissions</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">PermissionSet</span></a></li>
+<li><a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols" target="classFrame">ProtocolInfo</a></li>
+<li><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">RelatedObjectSet</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Shareable</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">SharingProfile</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleActivityRecordSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleAuthenticationProvider</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionGroupDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionRecordSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleObjectPermissionSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleRelatedObjectSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleSystemPermissionSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUserContext</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUserDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUserGroup</a></li>
+<li><a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token" target="classFrame">StandardTokens</a></li>
+<li><a href="org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">StringGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission" target="classFrame">SystemPermission</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission" target="classFrame">SystemPermission.Type</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">SystemPermissionSet</span></a></li>
+<li><a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml" target="classFrame"><span class="interfaceName">TagHandler</span></a></li>
+<li><a href="org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form" target="classFrame">TerminalColorSchemeField</a></li>
+<li><a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form" target="classFrame">TextField</a></li>
+<li><a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form" target="classFrame">TimeField</a></li>
+<li><a href="org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form" target="classFrame">TimeZoneField</a></li>
+<li><a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token" target="classFrame">TokenFilter</a></li>
+<li><a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">TokenInjectingConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">TokenInjectingConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth" target="classFrame">TokenInjectingUserContext</a></li>
+<li><a href="org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token" target="classFrame">TokenName</a></li>
+<li><a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language" target="classFrame"><span class="interfaceName">Translatable</span></a></li>
+<li><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableMessage</a></li>
+<li><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">TunnelCloseEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">TunnelCloseListener</span></a></li>
+<li><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">TunnelConnectEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">TunnelConnectListener</span></a></li>
+<li><a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event" target="classFrame"><span class="interfaceName">TunnelEvent</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">User</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth" target="classFrame">User.Attribute</a></li>
+<li><a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">UserContext</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">UserCredentials</a></li>
+<li><a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event" target="classFrame"><span class="interfaceName">UserEvent</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">UserGroup</span></a></li>
+<li><a href="org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form" target="classFrame">UsernameField</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/allclasses-noframe.html b/doc/1.1.0/guacamole-ext/allclasses-noframe.html
new file mode 100644
index 0000000..6f5fd95
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/allclasses-noframe.html
@@ -0,0 +1,139 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:18 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>All Classes (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">ActiveConnection</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">ActivityRecord</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">ActivityRecordSet</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></li>
+<li><a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Attributes</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">AuthenticatedUser</span></a></li>
+<li><a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="interfaceName">AuthenticationFailureListener</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">AuthenticationProvider</span></a></li>
+<li><a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="interfaceName">AuthenticationSuccessListener</span></a></li>
+<li><a href="org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">BooleanField</a></li>
+<li><a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Connectable</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Connection</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">ConnectionGroup</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">ConnectionRecord</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">ConnectionRecordSet</span></a></li>
+<li><a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="interfaceName">CredentialEvent</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></li>
+<li><a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></li>
+<li><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Directory</span></a></li>
+<li><a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">DocumentHandler</a></li>
+<li><a href="org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">EmailField</a></li>
+<li><a href="org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">EnumField</a></li>
+<li><a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment"><span class="interfaceName">Environment</span></a></li>
+<li><a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></li>
+<li><a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></li>
+<li><a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></li>
+<li><a href="org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">FileGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></li>
+<li><a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="interfaceName">GuacamoleProperty</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></li>
+<li><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></li>
+<li><a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Identifiable</span></a></li>
+<li><a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">LanguageField</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="interfaceName">Listener</span></a></li>
+<li><a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></li>
+<li><a href="org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">LongGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">MultilineField</a></li>
+<li><a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="interfaceName">ObjectPermissionSet</span></a></li>
+<li><a href="org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">PasswordField</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="interfaceName">Permission</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Permissions</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="interfaceName">PermissionSet</span></a></li>
+<li><a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></li>
+<li><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">RelatedObjectSet</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Shareable</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">SharingProfile</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></li>
+<li><a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></li>
+<li><a href="org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="interfaceName">SystemPermissionSet</span></a></li>
+<li><a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml"><span class="interfaceName">TagHandler</span></a></li>
+<li><a href="org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">TerminalColorSchemeField</a></li>
+<li><a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a></li>
+<li><a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></li>
+<li><a href="org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">TimeZoneField</a></li>
+<li><a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></li>
+<li><a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></li>
+<li><a href="org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token">TokenName</a></li>
+<li><a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language"><span class="interfaceName">Translatable</span></a></li>
+<li><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></li>
+<li><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="interfaceName">TunnelCloseListener</span></a></li>
+<li><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="interfaceName">TunnelConnectListener</span></a></li>
+<li><a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="interfaceName">TunnelEvent</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">User</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></li>
+<li><a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">UserContext</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></li>
+<li><a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event"><span class="interfaceName">UserEvent</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">UserGroup</span></a></li>
+<li><a href="org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">UsernameField</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/constant-values.html b/doc/1.1.0/guacamole-ext/constant-values.html
new file mode 100644
index 0000000..41df684
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/constant-values.html
@@ -0,0 +1,270 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Constant Field Values (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Constant Field Values (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
+<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
+<h2 title="Contents">Contents</h2>
+<ul>
+<li><a href="#org.apache">org.apache.*</a></li>
+</ul>
+</div>
+<div class="constantValuesContainer"><a name="org.apache">
+<!--   -->
+</a>
+<h2 title="org.apache">org.apache.*</h2>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.form.<a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.DateField.FORMAT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/DateField.html#FORMAT">FORMAT</a></code></td>
+<td class="colLast"><code>"yyyy-MM-dd"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.TimeField.FORMAT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/TimeField.html#FORMAT">FORMAT</a></code></td>
+<td class="colLast"><code>"HH:mm:ss"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.net.auth.AbstractUserContext.DEFAULT_ROOT_CONNECTION_GROUP">
+<!--   -->
+</a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#DEFAULT_ROOT_CONNECTION_GROUP">DEFAULT_ROOT_CONNECTION_GROUP</a></code></td>
+<td class="colLast"><code>"ROOT"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.net.auth.AuthenticatedUser.ANONYMOUS_IDENTIFIER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html#ANONYMOUS_IDENTIFIER">ANONYMOUS_IDENTIFIER</a></code></td>
+<td class="colLast"><code>""</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.token.StandardTokens.CLIENT_ADDRESS_TOKEN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/token/StandardTokens.html#CLIENT_ADDRESS_TOKEN">CLIENT_ADDRESS_TOKEN</a></code></td>
+<td class="colLast"><code>"GUAC_CLIENT_ADDRESS"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.guacamole.token.StandardTokens.CLIENT_HOSTNAME_TOKEN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/token/StandardTokens.html#CLIENT_HOSTNAME_TOKEN">CLIENT_HOSTNAME_TOKEN</a></code></td>
+<td class="colLast"><code>"GUAC_CLIENT_HOSTNAME"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.token.StandardTokens.DATE_TOKEN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/token/StandardTokens.html#DATE_TOKEN">DATE_TOKEN</a></code></td>
+<td class="colLast"><code>"GUAC_DATE"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.guacamole.token.StandardTokens.PASSWORD_TOKEN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/token/StandardTokens.html#PASSWORD_TOKEN">PASSWORD_TOKEN</a></code></td>
+<td class="colLast"><code>"GUAC_PASSWORD"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.token.StandardTokens.TIME_TOKEN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/token/StandardTokens.html#TIME_TOKEN">TIME_TOKEN</a></code></td>
+<td class="colLast"><code>"GUAC_TIME"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.guacamole.token.StandardTokens.USERNAME_TOKEN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/token/StandardTokens.html#USERNAME_TOKEN">USERNAME_TOKEN</a></code></td>
+<td class="colLast"><code>"GUAC_USERNAME"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
+<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/deprecated-list.html b/doc/1.1.0/guacamole-ext/deprecated-list.html
new file mode 100644
index 0000000..d04c5ed
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/deprecated-list.html
@@ -0,0 +1,288 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:18 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Deprecated List (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Deprecated List (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Deprecated API" class="title">Deprecated API</h1>
+<h2 title="Contents">Contents</h2>
+<ul>
+<li><a href="#interface">Deprecated Interfaces</a></li>
+<li><a href="#class">Deprecated Classes</a></li>
+<li><a href="#method">Deprecated Methods</a></li>
+<li><a href="#constructor">Deprecated Constructors</a></li>
+</ul>
+</div>
+<div class="contentContainer"><a name="interface">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Interfaces table, listing deprecated interfaces, and an explanation">
+<caption><span>Deprecated Interfaces</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener.AuthenticationFailureListener</a>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener.AuthenticationSuccessListener</a>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.ConnectionRecordSet</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>&lt;<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt; instead.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener.TunnelCloseListener</a>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener.TunnelConnectListener</a>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="class">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Classes table, listing deprecated classes, and an explanation">
+<caption><span>Deprecated Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleActivityRecordSet</code></a>&lt;<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt;
+     instead.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleUserDirectory</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">org.apache.guacamole.token.StandardTokens</a>
+<div class="block"><span class="deprecationComment">Standard tokens are now supplied by default to the connect()
+ functions of connections and connection groups. Manually generating the
+ standard tokens is not necessary.</span></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="method">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Methods table, listing deprecated methods, and an explanation">
+<caption><span>Deprecated Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">org.apache.guacamole.net.auth.Connectable.connect(GuacamoleClientInformation)</a>
+<div class="block"><span class="deprecationComment">This function has been deprecated in favor of
+     <a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>Connectable.connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>,
+     which allows for connection parameter tokens to be injected and
+     applied by cooperating extensions, replacing the functionality
+     previously provided through the <a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><code>StandardTokens</code></a>
+     class. It continues to be defined on this interface for
+     compatibility. <strong>New implementations should instead implement
+     <a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>Connectable.connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>.</strong></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">org.apache.guacamole.net.auth.DelegatingConnectionGroup.connect(GuacamoleClientInformation)</a></td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">org.apache.guacamole.net.auth.DelegatingConnection.connect(GuacamoleClientInformation)</a></td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">org.apache.guacamole.net.auth.simple.SimpleConnection.connect(GuacamoleClientInformation)</a></td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">org.apache.guacamole.net.auth.simple.SimpleConnectionGroup.connect(GuacamoleClientInformation)</a></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="constructor">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Constructors table, listing deprecated constructors, and an explanation">
+<caption><span>Deprecated Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-">org.apache.guacamole.net.auth.simple.SimpleUser(String, Collection&lt;String&gt;, Collection&lt;String&gt;)</a>
+<div class="block"><span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-java.util.Collection-">org.apache.guacamole.net.auth.simple.SimpleUser(String, Collection&lt;String&gt;, Collection&lt;String&gt;, Collection&lt;String&gt;)</a>
+<div class="block"><span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/help-doc.html b/doc/1.1.0/guacamole-ext/help-doc.html
new file mode 100644
index 0000000..4e52afa
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/help-doc.html
@@ -0,0 +1,231 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:18 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>API Help (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="API Help (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
+<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">How This API Document Is Organized</h1>
+<div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<h2>Overview</h2>
+<p>The <a href="overview-summary.html">Overview</a> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</p>
+</li>
+<li class="blockList">
+<h2>Package</h2>
+<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:</p>
+<ul>
+<li>Interfaces (italic)</li>
+<li>Classes</li>
+<li>Enums</li>
+<li>Exceptions</li>
+<li>Errors</li>
+<li>Annotation Types</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Class/Interface</h2>
+<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
+<ul>
+<li>Class inheritance diagram</li>
+<li>Direct Subclasses</li>
+<li>All Known Subinterfaces</li>
+<li>All Known Implementing Classes</li>
+<li>Class/interface declaration</li>
+<li>Class/interface description</li>
+</ul>
+<ul>
+<li>Nested Class Summary</li>
+<li>Field Summary</li>
+<li>Constructor Summary</li>
+<li>Method Summary</li>
+</ul>
+<ul>
+<li>Field Detail</li>
+<li>Constructor Detail</li>
+<li>Method Detail</li>
+</ul>
+<p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
+</li>
+<li class="blockList">
+<h2>Annotation Type</h2>
+<p>Each annotation type has its own separate page with the following sections:</p>
+<ul>
+<li>Annotation Type declaration</li>
+<li>Annotation Type description</li>
+<li>Required Element Summary</li>
+<li>Optional Element Summary</li>
+<li>Element Detail</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Enum</h2>
+<p>Each enum has its own separate page with the following sections:</p>
+<ul>
+<li>Enum declaration</li>
+<li>Enum description</li>
+<li>Enum Constant Summary</li>
+<li>Enum Constant Detail</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Use</h2>
+<p>Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</p>
+</li>
+<li class="blockList">
+<h2>Tree (Class Hierarchy)</h2>
+<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.</p>
+<ul>
+<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
+<li>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Deprecated API</h2>
+<p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p>
+</li>
+<li class="blockList">
+<h2>Index</h2>
+<p>The <a href="index-all.html">Index</a> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</p>
+</li>
+<li class="blockList">
+<h2>Prev/Next</h2>
+<p>These links take you to the next or previous class, interface, package, or related page.</p>
+</li>
+<li class="blockList">
+<h2>Frames/No Frames</h2>
+<p>These links show and hide the HTML frames.  All pages are available with or without frames.</p>
+</li>
+<li class="blockList">
+<h2>All Classes</h2>
+<p>The <a href="allclasses-noframe.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
+</li>
+<li class="blockList">
+<h2>Serialized Form</h2>
+<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
+</li>
+<li class="blockList">
+<h2>Constant Field Values</h2>
+<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
+</li>
+</ul>
+<span class="emphasizedPhrase">This help file applies to API documentation generated using the standard doclet.</span></div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
+<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/index-all.html b/doc/1.1.0/guacamole-ext/index-all.html
new file mode 100644
index 0000000..26d5c14
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/index-all.html
@@ -0,0 +1,3422 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:18 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Index (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="contentContainer"><a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a name="I:A">
+<!--   -->
+</a>
+<h2 class="title">A</h2>
+<dl>
+<dt><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractActiveConnection</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#AbstractActiveConnection--">AbstractActiveConnection()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticatedUser</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Basic implementation of an AuthenticatedUser which uses the username to
+ determine equality.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html#AbstractAuthenticatedUser--">AbstractAuthenticatedUser()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticationProvider</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Base implementation of AuthenticationProvider which provides default
+ implementations of most functions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#AbstractAuthenticationProvider--">AbstractAuthenticationProvider()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnection</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#AbstractConnection--">AbstractConnection()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnectionGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#AbstractConnectionGroup--">AbstractConnectionGroup()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractIdentifiable</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Abstract implementation of Identifiable which provides equals() and
+ hashCode() implementations which use the identifier to determine equality.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html#AbstractIdentifiable--">AbstractIdentifiable()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractSharingProfile</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Base implementation of a sharing profile which can be used to share a
+ Guacamole connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#AbstractSharingProfile--">AbstractSharingProfile()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUser</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#AbstractUser--">AbstractUser()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserContext</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Base implementation of UserContext which provides default implementations of
+ most functions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#AbstractUserContext--">AbstractUserContext()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#AbstractUserGroup--">AbstractUserGroup()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecord</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A logging record describing when a user started and ended a particular
+ activity.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecordSet</span></a>&lt;<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a> extends <a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt; - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A set of all available records related to a type of activity which has a
+ defined start and end time, such as a user being logged in or connected, or a
+ subset of those records.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecordSet.SortableProperty</span></a> - Enum in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">All properties of activity records which can be used as sorting
+ criteria.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#add-ObjectType-">add(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#add-ObjectType-">add(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">add(ObjectType)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></dt>
+<dd>
+<div class="block">Adds the given object to the overall set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#add-ObjectType-">add(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html#addObjects-java.util.Set-">addObjects(Set&lt;String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></dt>
+<dd>
+<div class="block">Adds the objects having the given identifiers, if not already present.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#addObjects-java.util.Set-">addObjects(Set&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission(ObjectPermission.Type, String)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Adds the specified permission for the object having the given
+ identifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission(SystemPermission.Type)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>
+<div class="block">Adds the specified permission.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission(ObjectPermission.Type, String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission(SystemPermission.Type)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions(Set&lt;ObjectPermission&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">addPermissions(Set&lt;PermissionType&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a></dt>
+<dd>
+<div class="block">Adds the specified permissions, if not already granted.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions(Set&lt;SystemPermission&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions(Set&lt;ObjectPermission&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions(Set&lt;SystemPermission&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-">addStandardTokens(TokenFilter)</a></span> - Static method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter and which do not require a corresponding Credentials object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.Credentials-">addStandardTokens(TokenFilter, Credentials)</a></span> - Static method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given Credentials object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.AuthenticatedUser-">addStandardTokens(TokenFilter, AuthenticatedUser)</a></span> - Static method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given AuthenticatedUser object,
+ including any associated credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html#ANONYMOUS_IDENTIFIER">ANONYMOUS_IDENTIFIER</a></span> - Static variable in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></dt>
+<dd>
+<div class="block">The identifier reserved for representing a user that has authenticated
+ anonymously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">asCollection()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></dt>
+<dd>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#asCollection--">asCollection()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#asCollection--">asCollection()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.Attribute.html#Attribute--">Attribute()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Attributes</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">An object which is associated with a set of arbitrary attributes, defined
+ as name/value pairs.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">AuthenticatedUser</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser(Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser(Credentials)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser(Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html#authenticationFailed-org.apache.guacamole.net.event.AuthenticationFailureEvent-">authenticationFailed(AuthenticationFailureEvent)</a></span> - Method in interface org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener">AuthenticationFailureListener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ fails.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">AuthenticationFailureEvent</span></a> - Class in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">An event which is triggered whenever a user's credentials fail to be
+ authenticated.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html#AuthenticationFailureEvent-org.apache.guacamole.net.auth.Credentials-">AuthenticationFailureEvent(Credentials)</a></span> - Constructor for class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></dt>
+<dd>
+<div class="block">Creates a new AuthenticationFailureEvent which represents the failure
+ to authenticate the given credentials.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">AuthenticationFailureListener</span></a> - Interface in <a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">AuthenticationProvider</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Provides means of authorizing users and for accessing and managing data
+ associated with those users.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html#authenticationSucceeded-org.apache.guacamole.net.event.AuthenticationSuccessEvent-">authenticationSucceeded(AuthenticationSuccessEvent)</a></span> - Method in interface org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener">AuthenticationSuccessListener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ succeeds.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">AuthenticationSuccessEvent</span></a> - Class in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">An event which is triggered whenever a user's credentials pass
+ authentication.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#AuthenticationSuccessEvent-org.apache.guacamole.net.auth.AuthenticatedUser-">AuthenticationSuccessEvent(AuthenticatedUser)</a></span> - Constructor for class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></dt>
+<dd>
+<div class="block">Creates a new AuthenticationSuccessEvent which represents a successful
+ authentication attempt by the user identified by the given
+ AuthenticatedUser object.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">AuthenticationSuccessListener</span></a> - Interface in <a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+</dd>
+</dl>
+<a name="I:B">
+<!--   -->
+</a>
+<h2 class="title">B</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#BOOLEAN">BOOLEAN</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A boolean field, whose value is either blank or "true".</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">BooleanField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a field with strictly one possible value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/BooleanField.html#BooleanField-java.lang.String-java.lang.String-">BooleanField(String, String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">BooleanField</a></dt>
+<dd>
+<div class="block">Creates a new BooleanField with the given name and truth value.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">BooleanGuacamoleProperty</span></a> - Class in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">A GuacamoleProperty whose value is an boolean.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html#BooleanGuacamoleProperty--">BooleanGuacamoleProperty()</a></span> - Constructor for class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:C">
+<!--   -->
+</a>
+<h2 class="title">C</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenName.html#canonicalize-java.lang.String-java.lang.String-">canonicalize(String, String)</a></span> - Static method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token">TokenName</a></dt>
+<dd>
+<div class="block">Generates the name of the parameter token that should be populated with
+ the given string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenName.html#canonicalize-java.lang.String-">canonicalize(String)</a></span> - Static method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token">TokenName</a></dt>
+<dd>
+<div class="block">Generate the name of a parameter token from the given string, with no
+ added prefix, such that the token name will simply be the transformed
+ version of the string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/DocumentHandler.html#characters-char:A-int-int-">characters(char[], int, int)</a></span> - Method in class org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">DocumentHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/TagHandler.html#childElement-java.lang.String-">childElement(String)</a></span> - Method in interface org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></dt>
+<dd>
+<div class="block">Called when a child element of the current element is parsed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#CLIENT_ADDRESS_TOKEN">CLIENT_ADDRESS_TOKEN</a></span> - Static variable in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">The name of the client address token added via addStandardTokens().</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#CLIENT_HOSTNAME_TOKEN">CLIENT_HOSTNAME_TOKEN</a></span> - Static variable in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">The name of the client hostname token added via addStandardTokens().</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/TagHandler.html#complete-java.lang.String-">complete(String)</a></span> - Method in interface org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></dt>
+<dd>
+<div class="block">Called when this element, and all child elements, have been fully parsed,
+ and the entire text content of this element (if any) is available.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect(GuacamoleClientInformation)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">This function has been deprecated in favor of
+     <a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>Connectable.connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>,
+     which allows for connection parameter tokens to be injected and
+     applied by cooperating extensions, replacing the functionality
+     previously provided through the <a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><code>StandardTokens</code></a>
+     class. It continues to be defined on this interface for
+     compatibility. <strong>New implementations should instead implement
+     <a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>Connectable.connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>.</strong></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></dt>
+<dd>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect(GuacamoleClientInformation)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect(GuacamoleClientInformation)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect(GuacamoleClientInformation)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect(GuacamoleClientInformation)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connectable</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">An object which Guacamole can connect to.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup.Type</span></a> - Enum in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">All legal types of connection group.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionRecord</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A logging record describing when a user started and ended usage of a
+ particular connection.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionRecordSet</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>&lt;<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt; instead.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">contains(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></dt>
+<dd>
+<div class="block">Returns the subset of records which contain the given value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#contains-java.lang.String-">contains(String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#contains-java.lang.String-">contains(String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">CredentialEvent</span></a> - Interface in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">Abstract basis for events which may have associated user credentials when
+ triggered.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Credentials</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#Credentials-java.lang.String-java.lang.String-javax.servlet.http.HttpServletRequest-">Credentials(String, String, HttpServletRequest)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Construct a Credentials object with the given username, password,
+ and HTTP request.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">CredentialsInfo</span></a> - Class in <a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></dt>
+<dd>
+<div class="block">Information which describes a set of valid credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#CredentialsInfo-java.util.Collection-">CredentialsInfo(Collection&lt;Field&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></dt>
+<dd>
+<div class="block">Creates a new CredentialsInfo object which requires the given fields for
+ any conforming credentials.</div>
+</dd>
+</dl>
+<a name="I:D">
+<!--   -->
+</a>
+<h2 class="title">D</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#DATE">DATE</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A date field whose legal values conform to the pattern "YYYY-MM-DD",
+ zero-padded.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#DATE_TOKEN">DATE_TOKEN</a></span> - Static variable in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">The name of the date token (server-local time) added via
+ addStandardTokens().</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">DateField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a date field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/DateField.html#DateField-java.lang.String-">DateField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></dt>
+<dd>
+<div class="block">Creates a new DateField with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate(UserContext, AuthenticatedUser, Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate(UserContext, AuthenticatedUser, Credentials)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#decorate-ObjectType-">decorate(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>
+<div class="block">Given an object retrieved from a Directory which originates from a
+ different AuthenticationProvider, returns an identical type of object
+ optionally wrapped with additional information, functionality, etc.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DecoratingDirectory</span></a>&lt;<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt; - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Directory implementation which simplifies decorating the objects within an
+ underlying Directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#DecoratingDirectory-org.apache.guacamole.net.auth.Directory-">DecoratingDirectory(Directory&lt;ObjectType&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>
+<div class="block">Creates a new DecoratingDirectory which decorates the objects within
+ the given directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#DEFAULT_ROOT_CONNECTION_GROUP">DEFAULT_ROOT_CONNECTION_GROUP</a></span> - Static variable in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">The unique identifier that will be used for the root connection group if
+ <a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--"><code>AbstractUserContext.getRootConnectionGroup()</code></a> is not overridden.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingConnection</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#DelegatingConnection-org.apache.guacamole.net.auth.Connection-">DelegatingConnection(Connection)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>
+<div class="block">Wraps the given Connection such that all function calls against this
+ DelegatingConnection will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingConnectionGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#DelegatingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">DelegatingConnectionGroup(ConnectionGroup)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>
+<div class="block">Wraps the given ConnectionGroup such that all function calls against this
+ DelegatingConnectionGroup will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingDirectory</span></a>&lt;<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt; - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Directory implementation which simply delegates all function calls to an
+ underlying Directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#DelegatingDirectory-org.apache.guacamole.net.auth.Directory-">DelegatingDirectory(Directory&lt;ObjectType&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>
+<div class="block">Wraps the given Directory such that all function calls against this
+ DelegatingDirectory will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingSharingProfile</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">SharingProfile implementation which simply delegates all function calls to an
+ underlying SharingProfile.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#DelegatingSharingProfile-org.apache.guacamole.net.auth.SharingProfile-">DelegatingSharingProfile(SharingProfile)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>
+<div class="block">Wraps the given SharingProfile such that all function calls against this
+ DelegatingSharingProfile will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUser</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#DelegatingUser-org.apache.guacamole.net.auth.User-">DelegatingUser(User)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>
+<div class="block">Wraps the given User such that all function calls against this
+ DelegatingUser will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUserContext</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">UserContext implementation which simply delegates all function calls to
+ an underlying UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#DelegatingUserContext-org.apache.guacamole.net.auth.UserContext-">DelegatingUserContext(UserContext)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>
+<div class="block">Wraps the given UserContext such that all function calls against this
+ DelegatingUserContext will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUserGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#DelegatingUserGroup-org.apache.guacamole.net.auth.UserGroup-">DelegatingUserGroup(UserGroup)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>
+<div class="block">Wraps the given UserGroup such that all function calls against this
+ DelegatingUserGroup will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Directory</span></a>&lt;<a href="org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a> extends <a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt; - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Provides access to a collection of all objects with associated identifiers,
+ and allows user manipulation and removal.</div>
+</dd>
+<dt><a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml"><span class="typeNameLink">DocumentHandler</span></a> - Class in <a href="org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a></dt>
+<dd>
+<div class="block">A simple ContentHandler implementation which digests SAX document events and
+ produces simpler tag-level events, maintaining its own stack for the
+ convenience of the tag handlers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/DocumentHandler.html#DocumentHandler-java.lang.String-org.apache.guacamole.xml.TagHandler-">DocumentHandler(String, TagHandler)</a></span> - Constructor for class org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">DocumentHandler</a></dt>
+<dd>
+<div class="block">Creates a new DocumentHandler which will use the given TagHandler
+ to handle the root element.</div>
+</dd>
+</dl>
+<a name="I:E">
+<!--   -->
+</a>
+<h2 class="title">E</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#EMAIL">EMAIL</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">An email address field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.Attribute.html#EMAIL_ADDRESS">EMAIL_ADDRESS</a></span> - Static variable in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></dt>
+<dd>
+<div class="block">The email address of the user.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">EmailField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a text field which may contain an email address.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/EmailField.html#EmailField-java.lang.String-">EmailField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">EmailField</a></dt>
+<dd>
+<div class="block">Creates a new EmailField with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#EMPTY">EMPTY</a></span> - Static variable in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></dt>
+<dd>
+<div class="block">CredentialsInfo object which describes empty credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#EMPTY_SET">EMPTY_SET</a></span> - Static variable in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>
+<div class="block">An immutable instance of ObjectPermissionSet which contains no
+ permissions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#EMPTY_SET">EMPTY_SET</a></span> - Static variable in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>
+<div class="block">An immutable instance of SystemPermissionSet which contains no
+ permissions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html#EMPTY_SET">EMPTY_SET</a></span> - Static variable in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></dt>
+<dd>
+<div class="block">An immutable instance of RelatedObjectSEt which contains no objects.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/DocumentHandler.html#endElement-java.lang.String-java.lang.String-java.lang.String-">endElement(String, String, String)</a></span> - Method in class org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">DocumentHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#ENUM">ENUM</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">An enumerated field, whose legal values are fully enumerated by a
+ provided, finite list.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">EnumField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents an arbitrary field with a finite, enumerated set of possible
+ values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/EnumField.html#EnumField-java.lang.String-java.util.Collection-">EnumField(String, Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">EnumField</a></dt>
+<dd>
+<div class="block">Creates a new EnumField with the given name and possible values.</div>
+</dd>
+<dt><a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment"><span class="typeNameLink">Environment</span></a> - Interface in <a href="org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></dt>
+<dd>
+<div class="block">The environment of an arbitrary Guacamole instance, describing available
+ protocols, configuration parameters, and the GUACAMOLE_HOME directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:F">
+<!--   -->
+</a>
+<h2 class="title">F</h2>
+<dl>
+<dt><a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Field</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents an arbitrary field, such as an HTTP parameter, the parameter of a
+ remote desktop protocol, or an input field within a form.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#Field--">Field()</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Creates a new Parameter with no associated name or type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#Field-java.lang.String-java.lang.String-">Field(String, String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Creates a new Field with the given name  and type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#Field-java.lang.String-java.lang.String-java.util.Collection-">Field(String, String, Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Creates a new Field with the given name, type, and possible values.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Field.Type</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">All types of fields which are available by default.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">FieldOption</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Describes an available legal value for an enumerated field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/FieldOption.html#FieldOption--">FieldOption()</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></dt>
+<dd>
+<div class="block">Creates a new FieldOption with no associated value or title.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/FieldOption.html#FieldOption-java.lang.String-java.lang.String-">FieldOption(String, String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></dt>
+<dd>
+<div class="block">Creates a new FieldOption having the given value and title.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">FileGuacamoleProperty</span></a> - Class in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">A GuacamoleProperty whose value is a filename.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/FileGuacamoleProperty.html#FileGuacamoleProperty--">FileGuacamoleProperty()</a></span> - Constructor for class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">FileGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#filter-java.lang.String-">filter(String)</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Filters the given string, replacing any tokens with their corresponding
+ values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#filterValues-java.util.Map-">filterValues(Map&lt;?, String&gt;)</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Given an arbitrary map containing String values, replace each non-null
+ value with the corresponding filtered value.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Form</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Information which describes logical set of fields.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Form.html#Form--">Form()</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></dt>
+<dd>
+<div class="block">Creates a new Form object with no associated fields.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Form.html#Form-java.lang.String-java.util.Collection-">Form(String, Collection&lt;Field&gt;)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></dt>
+<dd>
+<div class="block">Creates a new Form object having the given name and containing the given
+ fields.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/DateField.html#FORMAT">FORMAT</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></dt>
+<dd>
+<div class="block">The date format used by date fields, compatible with SimpleDateFormat.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/DateField.html#format-java.util.Date-">format(Date)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></dt>
+<dd>
+<div class="block">Converts the given date into a string which follows the format used by
+ date fields.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/NumericField.html#format-java.lang.Integer-">format(Integer)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a></dt>
+<dd>
+<div class="block">Formats the given integer in the format required by a numeric field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TimeField.html#FORMAT">FORMAT</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></dt>
+<dd>
+<div class="block">The time format used by time fields, compatible with SimpleDateFormat.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TimeField.html#format-java.util.Date-">format(Date)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></dt>
+<dd>
+<div class="block">Converts the given time into a string which follows the format used by
+ time fields.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.Attribute.html#FULL_NAME">FULL_NAME</a></span> - Static variable in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></dt>
+<dd>
+<div class="block">The user's full name.</div>
+</dd>
+</dl>
+<a name="I:G">
+<!--   -->
+</a>
+<h2 class="title">G</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#get-java.lang.String-">get(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#get-java.lang.String-">get(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">get(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></dt>
+<dd>
+<div class="block">Returns the object having the given identifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#get-java.lang.String-">get(String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects(Collection&lt;ObjectPermission.Type&gt;, Collection&lt;String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Tests whether this user has the specified permissions for the objects
+ having the given identifiers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects(Collection&lt;ObjectPermission.Type&gt;, Collection&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getActiveConnections--">getActiveConnections()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></dt>
+<dd>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getActiveConnections--">getActiveConnections()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getActiveConnections--">getActiveConnections()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#getActiveConnections--">getActiveConnections()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getActiveConnections--">getActiveConnections()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#getAll-java.util.Collection-">getAll(Collection&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#getAll-java.util.Collection-">getAll(Collection&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">getAll(Collection&lt;String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></dt>
+<dd>
+<div class="block">Returns the objects having the given identifiers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getAll-java.util.Collection-">getAll(Collection&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all attributes associated with this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all attributes associated with this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></dt>
+<dd>
+<div class="block">Returns all attributes associated with this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#getAuthenticatedUser--">getAuthenticatedUser()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html#getAuthenticatedUser--">getAuthenticatedUser()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html#getAuthenticatedUser--">getAuthenticatedUser()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">getAuthenticatedUser()</a></span> - Method in interface org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></dt>
+<dd>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html#getAuthenticationProvider--">getAuthenticationProvider()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></dt>
+<dd>
+<div class="block">Returns the AuthenticationProvider that authenticated this user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getAuthenticationProvider--">getAuthenticationProvider()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getAuthenticationProvider--">getAuthenticationProvider()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">getAuthenticationProvider()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getAuthorizedConfigurations-org.apache.guacamole.net.auth.Credentials-">getAuthorizedConfigurations(Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Given an arbitrary credentials object, returns a Map containing all
+ configurations authorized by those credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#getConfiguration--">getConfiguration()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#getConfiguration--">getConfiguration()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getConfiguration--">getConfiguration()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionAttributes--">getConnectionAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionAttributes--">getConnectionAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getConnectionAttributes--">getConnectionAttributes()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--">getConnectionDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionDirectory--">getConnectionDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getConnectionDirectory--">getConnectionDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionDirectory--">getConnectionDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#getConnectionForms--">getConnectionForms()</a></span> - Method in class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Returns a mutable collection of forms describing all known parameters for
+ a connection using this protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionHistory--">getConnectionHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionHistory--">getConnectionHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">getConnectionHistory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#getConnectionIdentifier--">getConnectionIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getConnectionIdentifier--">getConnectionIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns the identifier of the connection being actively used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionRecord.html#getConnectionIdentifier--">getConnectionIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></dt>
+<dd>
+<div class="block">Returns the identifier of the connection associated with this
+ connection record.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionRecord.html#getConnectionName--">getConnectionName()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></dt>
+<dd>
+<div class="block">Returns the name of the connection associated with this connection
+ record.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getConnectionPermissions--">getConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all connection permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionPermissions--">getConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all connection permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getConnectionPermissions--">getConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getConnectionPermissions--">getConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all connection permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#getConnectionPermissions--">getConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html#getCredentials--">getCredentials()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></dt>
+<dd>
+<div class="block">Returns the credentials that the user provided when they successfully
+ authenticated.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html#getCredentials--">getCredentials()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#getCredentials--">getCredentials()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials()</a></span> - Method in interface org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></dt>
+<dd>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html#getCredentials--">getCredentials()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html#getCredentials--">getCredentials()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#getCredentialsInfo--">getCredentialsInfo()</a></span> - Method in exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></dt>
+<dd>
+<div class="block">Returns information describing the form of valid credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration()</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Returns the connection information which should be used, by default, to
+ connect to guacd when establishing a remote desktop connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration()</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getDelegateConnection--">getDelegateConnection()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>
+<div class="block">Returns the underlying Connection wrapped by this DelegatingConnection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getDelegateConnectionGroup--">getDelegateConnectionGroup()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>
+<div class="block">Returns the underlying ConnectionGroup wrapped by this
+ DelegatingConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#getDelegateDirectory--">getDelegateDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>
+<div class="block">Returns the underlying Directory wrapped by this DelegatingDirectory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getDelegateSharingProfile--">getDelegateSharingProfile()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>
+<div class="block">Returns the underlying SharingProfile wrapped by this
+ DelegatingSharingProfile.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getDelegateUser--">getDelegateUser()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>
+<div class="block">Returns the underlying User wrapped by this DelegatingUser.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getDelegateUserContext--">getDelegateUserContext()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>
+<div class="block">Returns the underlying UserContext wrapped by this
+ DelegatingUserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getDelegateUserGroupGroup--">getDelegateUserGroupGroup()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>
+<div class="block">Returns the underlying UserGroup wrapped by this DelegatingUserGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getEffectivePermissions--">getEffectivePermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getEffectivePermissions--">getEffectivePermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.html#getEffectivePermissions--">getEffectivePermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dt>
+<dd>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html#getEffectiveUserGroups--">getEffectiveUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html#getEffectiveUserGroups--">getEffectiveUserGroups()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></dt>
+<dd>
+<div class="block">Returns a read-only set of the identifiers of all user groups which
+ apply to this authenticated user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getEncryptionMethod--">getEncryptionMethod()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></dt>
+<dd>
+<div class="block">Returns the type of encryption required by guacd.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecord.html#getEndDate--">getEndDate()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></dt>
+<dd>
+<div class="block">Returns the date and time the activity ended, if applicable.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Form.html#getFields--">getFields()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></dt>
+<dd>
+<div class="block">Returns a mutable collection of the fields associated with this form.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#getFields--">getFields()</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></dt>
+<dd>
+<div class="block">Returns all fields required for valid credentials as described by this
+ object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#getFullConfiguration--">getFullConfiguration()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block">Returns the GuacamoleConfiguration describing how to connect to this
+ connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getGuacamoleHome--">getGuacamoleHome()</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Returns the Guacamole home directory as determined when this Environment
+ object was created.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getGuacamoleHome--">getGuacamoleHome()</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getHistory--">getHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#getHistory--">getHistory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Returns a list of ConnectionRecords representing the usage history
+ of this Connection, including any active users.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getHistory--">getHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getHistory--">getHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#getHistory--">getHistory()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.html#getHistory--">getHistory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dt>
+<dd>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getHostname--">getHostname()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></dt>
+<dd>
+<div class="block">Returns the hostname or address of the machine where guacd is running.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#getIdentifier--">getIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns the identifier which uniquely and consistently identifies this
+ AuthenticationProvider implementation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dt>
+<dd>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#getIdentifiers--">getIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Directory.html#getIdentifiers--">getIdentifiers()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></dt>
+<dd>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getIdentifiers--">getIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableMessage.html#getKey--">getKey()</a></span> - Method in class org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></dt>
+<dd>
+<div class="block">Returns the arbitrary key which can be used to look up the message to be
+ displayed in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getLastActive--">getLastActive()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns the date and time that this user was last active.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#getLastActive--">getLastActive()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Returns the date and time that this connection was last used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getLastActive--">getLastActive()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getLastActive--">getLastActive()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#getLastActive--">getLastActive()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.html#getLastActive--">getLastActive()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dt>
+<dd>
+<div class="block">Returns the date and time that this user was last active.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUserGroups--">getMemberUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getMemberUserGroups--">getMemberUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserGroup.html#getMemberUserGroups--">getMemberUserGroups()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dt>
+<dd>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUsers--">getMemberUsers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getMemberUsers--">getMemberUsers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserGroup.html#getMemberUsers--">getMemberUsers()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dt>
+<dd>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Returns the unique name associated with this field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Form.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></dt>
+<dd>
+<div class="block">Returns the name of this form.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#getName--">getName()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Returns the name assigned to this Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#getName--">getName()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/SharingProfile.html#getName--">getName()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dt>
+<dd>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName()</a></span> - Method in interface org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></dt>
+<dd>
+<div class="block">Returns the name of the property in guacamole.properties that this
+ GuacamoleProperty will parse.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Returns the unique name of this protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html#getObjectIdentifier--">getObjectIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></dt>
+<dd>
+<div class="block">Returns the identifier of the specific object affected by this
+ permission.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html#getObjects--">getObjects()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></dt>
+<dd>
+<div class="block">Returns a Set which contains the identifiers of all objects contained
+ within this RelatedObjectSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getObjects--">getObjects()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Returns the Map which currently backs this SimpleDirectory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#getObjects--">getObjects()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#getOptions--">getOptions()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Returns a mutable collection of field options.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#getParameters--">getParameters()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getParameters--">getParameters()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/SharingProfile.html#getParameters--">getParameters()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dt>
+<dd>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#getParentIdentifier--">getParentIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getParentIdentifier--">getParentIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#getParentIdentifier--">getParentIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#getParentIdentifier--">getParentIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getParentIdentifier--">getParentIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getParentIdentifier--">getParentIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getPassword--">getPassword()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#getPassword--">getPassword()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Returns the password associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getPassword--">getPassword()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.html#getPassword--">getPassword()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dt>
+<dd>
+<div class="block">Returns this user's password.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getPermissions--">getPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">getPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a></dt>
+<dd>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#getPermissions--">getPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#getPermissions--">getPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#getPermissions--">getPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getPort--">getPort()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></dt>
+<dd>
+<div class="block">Returns the port that guacd is listening on.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/SharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dt>
+<dd>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty(GuacamoleProperty&lt;Type&gt;)</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty(GuacamoleProperty&lt;Type&gt;, Type)</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty(GuacamoleProperty&lt;Type&gt;)</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty(GuacamoleProperty&lt;Type&gt;, Type)</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getProtocol-java.lang.String-">getProtocol(String)</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Returns the protocol having the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getProtocol-java.lang.String-">getProtocol(String)</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getProtocols--">getProtocols()</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Returns a map of all available protocols, where each key is the name of
+ that protocol as would be passed to guacd during connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getProtocols--">getProtocols()</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#getRemoteAddress--">getRemoteAddress()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Returns the address of the client end of the connection which provided
+ these credentials, if known.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#getRemoteHost--">getRemoteHost()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getRemoteHost--">getRemoteHost()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns the hostname or IP address of the remote host that initiated the
+ connection, if known.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecord.html#getRemoteHost--">getRemoteHost()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></dt>
+<dd>
+<div class="block">Returns the hostname or IP address of the remote host that performed the
+ activity associated with this record, if known.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#getRemoteHostname--">getRemoteHostname()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Returns the hostname of the client end of the connection which provided
+ these credentials, if known.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#getRequest--">getRequest()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Returns the HttpServletRequest associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty(GuacamoleProperty&lt;Type&gt;)</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty(GuacamoleProperty&lt;Type&gt;)</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getResource--">getResource()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns an arbitrary REST resource representing this
+ AuthenticationProvider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getResource--">getResource()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Returns an arbitrary REST resource representing this UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#getResource--">getResource()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns an arbitrary REST resource representing this
+ AuthenticationProvider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getResource--">getResource()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getResource--">getResource()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getResource--">getResource()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Returns an arbitrary REST resource representing this UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--">getRootConnectionGroup()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getRootConnectionGroup--">getRootConnectionGroup()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getRootConnectionGroup--">getRootConnectionGroup()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#getSession--">getSession()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Returns the HttpSession associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Shareable.html#getSharingCredentials-java.lang.String-">getSharingCredentials(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a></dt>
+<dd>
+<div class="block">Returns a full set of credentials which can be used to authenticate as a
+ user with access strictly to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#getSharingProfileForms--">getSharingProfileForms()</a></span> - Method in class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Returns a mutable collection of forms describing all known parameters
+ relevant to a sharing profile whose primary connection uses this
+ protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#getSharingProfileIdentifier--">getSharingProfileIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getSharingProfileIdentifier--">getSharingProfileIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns the identifier of the sharing profile being actively used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionRecord.html#getSharingProfileIdentifier--">getSharingProfileIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></dt>
+<dd>
+<div class="block">Returns the identifier of the sharing profile that was used to access the
+ connection associated with this connection record.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionRecord.html#getSharingProfileName--">getSharingProfileName()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></dt>
+<dd>
+<div class="block">Returns the name of the sharing profile that was used to access the
+ connection associated with this connection record.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getSharingProfilePermissions--">getSharingProfilePermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getSharingProfilePermissions--">getSharingProfilePermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#getStartDate--">getStartDate()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getStartDate--">getStartDate()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns the date and time the connection began.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecord.html#getStartDate--">getStartDate()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></dt>
+<dd>
+<div class="block">Returns the date and time the activity began.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getSystemPermissions--">getSystemPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getSystemPermissions--">getSystemPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getSystemPermissions--">getSystemPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getSystemPermissions--">getSystemPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/FieldOption.html#getTitle--">getTitle()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></dt>
+<dd>
+<div class="block">Returns the human-readable title describing the effect of this option.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#getToken-java.lang.String-">getToken(String)</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Returns the value of the token with the given name, or null if no such
+ token has been set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getTokens-org.apache.guacamole.net.auth.Connection-">getTokens(Connection)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dt>
+<dd>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getTokens-org.apache.guacamole.net.auth.ConnectionGroup-">getTokens(ConnectionGroup)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dt>
+<dd>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#getTokens--">getTokens()</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Returns a map of all tokens, with each key being a token name, and each
+ value being the corresponding token value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in interface org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dt>
+<dd>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#getTunnel--">getTunnel()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getTunnel--">getTunnel()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns the connected GuacamoleTunnel being used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html#getTunnel--">getTunnel()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html#getTunnel--">getTunnel()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelEvent.html#getTunnel--">getTunnel()</a></span> - Method in interface org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></dt>
+<dd>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#getType--">getType()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Returns the type of this field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getType--">getType()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">getType()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Returns the type of this connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getType--">getType()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html#getType--">getType()</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/Permission.html#getType--">getType()</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a></dt>
+<dd>
+<div class="block">Returns the type of operation affected by this permission.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html#getType--">getType()</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getUserAttributes--">getUserAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserAttributes--">getUserAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getUserAttributes--">getUserAttributes()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext(AuthenticatedUser)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext(AuthenticatedUser)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext(AuthenticatedUser)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getUserDirectory--">getUserDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserDirectory--">getUserDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">getUserDirectory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupAttributes--">getUserGroupAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupAttributes--">getUserGroupAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getUserGroupAttributes--">getUserGroupAttributes()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupDirectory--">getUserGroupDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupDirectory--">getUserGroupDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">getUserGroupDirectory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getUserGroupPermissions--">getUserGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all user group permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all user group permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getUserGroupPermissions--">getUserGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all user group permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getUserGroups--">getUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroups--">getUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getUserGroups--">getUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserGroups--">getUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.html#getUserGroups--">getUserGroups()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dt>
+<dd>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserGroup.html#getUserGroups--">getUserGroups()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dt>
+<dd>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getUserHistory--">getUserHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserHistory--">getUserHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">getUserHistory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#getUsername--">getUsername()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getUsername--">getUsername()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns the name of the user who is using this connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecord.html#getUsername--">getUsername()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></dt>
+<dd>
+<div class="block">Returns the name of the user who performed or is performing the activity
+ at the times given by this record.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#getUsername--">getUsername()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Returns the username associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getUserPermissions--">getUserPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all user permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserPermissions--">getUserPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all user permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getUserPermissions--">getUserPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserPermissions--">getUserPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all user permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#getUserPermissions--">getUserPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/FieldOption.html#getValue--">getValue()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></dt>
+<dd>
+<div class="block">Returns the value that will be assigned if this option is chosen.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValue-java.lang.String-">getValue(String)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Returns the value defined by this UserCrendentials object for the field
+ having the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValue-org.apache.guacamole.form.Field-">getValue(Field)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Returns the value defined by this UserCrendentials object for the given
+ field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValues--">getValues()</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Returns a map of field names to values which backs this UserCredentials
+ object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableMessage.html#getVariables--">getVariables()</a></span> - Method in class org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></dt>
+<dd>
+<div class="block">Returns an arbitrary object whose properties should be substituted for
+ the corresponding placeholders within the string associated with the key.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleCredentialsException</span></a> - Exception in <a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></dt>
+<dd>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ of a problem related to the provided credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException(String, Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException(String, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException(Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleInsufficientCredentialsException</span></a> - Exception in <a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></dt>
+<dd>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are not sufficient for authentication to succeed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException(String, Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException(String, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException(Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ cause and associated credential information.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleInvalidCredentialsException</span></a> - Exception in <a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></dt>
+<dd>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are invalid.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException(String, Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException(String, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException(Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">GuacamoleProperty</span></a>&lt;<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="type parameter in GuacamoleProperty">Type</a>&gt; - Interface in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">An abstract representation of a property in the guacamole.properties file,
+ which parses into a specific type.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">GuacamoleProxyConfiguration</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Information which describes how the connection to guacd should be
+ established.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#GuacamoleProxyConfiguration-java.lang.String-int-org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod-">GuacamoleProxyConfiguration(String, int, GuacamoleProxyConfiguration.EncryptionMethod)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname,
+ port, and encryption method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#GuacamoleProxyConfiguration-java.lang.String-int-boolean-">GuacamoleProxyConfiguration(String, int, boolean)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname and
+ port, with encryption method being restricted to either NONE or SSL.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">GuacamoleProxyConfiguration.EncryptionMethod</span></a> - Enum in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">All possible types of encryption used by guacd.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#GUACD_HOSTNAME">GUACD_HOSTNAME</a></span> - Static variable in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">The hostname of the server where guacd (the Guacamole proxy server) is
+ running.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#GUACD_PORT">GUACD_PORT</a></span> - Static variable in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">The port that guacd (the Guacamole proxy server) is listening on.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#GUACD_SSL">GUACD_SSL</a></span> - Static variable in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Whether guacd requires SSL/TLS on connections.</div>
+</dd>
+</dl>
+<a name="I:H">
+<!--   -->
+</a>
+<h2 class="title">H</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/listener/Listener.html#handleEvent-java.lang.Object-">handleEvent(Object)</a></span> - Method in interface org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener">Listener</a></dt>
+<dd>
+<div class="block">Notifies the recipient that an event has occurred.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#hashCode--">hashCode()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html#hashCode--">hashCode()</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html#hashCode--">hashCode()</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission(ObjectPermission.Type, String)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Tests whether the permission of the given type is granted for the
+ object having the given identifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission(SystemPermission.Type)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>
+<div class="block">Tests whether the permission of the given type is granted.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission(ObjectPermission.Type, String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission(SystemPermission.Type)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:I">
+<!--   -->
+</a>
+<h2 class="title">I</h2>
+<dl>
+<dt><a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Identifiable</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">An object which has a deterministic, unique identifier, which may not be
+ null.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/TagHandler.html#init-org.xml.sax.Attributes-">init(Attributes)</a></span> - Method in interface org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></dt>
+<dd>
+<div class="block">Called when the element corresponding to this TagHandler is first seen,
+ just after an instance is created.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">IntegerGuacamoleProperty</span></a> - Class in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">A GuacamoleProperty whose value is an integer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html#IntegerGuacamoleProperty--">IntegerGuacamoleProperty()</a></span> - Constructor for class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html#invalidate--">invalidate()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#invalidate--">invalidate()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Invalidates this user context, releasing all associated resources.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html#invalidate--">invalidate()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></dt>
+<dd>
+<div class="block">Invalidates this authenticated user and their associated token such that
+ they are no longer logged in.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#invalidate--">invalidate()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#invalidate--">invalidate()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Invalidates this user context, releasing all associated resources.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecord.html#isActive--">isActive()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></dt>
+<dd>
+<div class="block">Returns whether the activity associated with this record is still
+ ongoing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#isConnectable--">isConnectable()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns whether this ActiveConnection may be joined through a call to
+ <a href="org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>ActiveConnection.connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>
+ by the user that retrieved this ActiveConnection.</div>
+</dd>
+</dl>
+<a name="I:L">
+<!--   -->
+</a>
+<h2 class="title">L</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#LANGUAGE">LANGUAGE</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">Field type which allows selection of languages.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">LanguageField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a language field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/LanguageField.html#LanguageField-java.lang.String-">LanguageField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">LanguageField</a></dt>
+<dd>
+<div class="block">Creates a new LanguageField with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">limit(int)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></dt>
+<dd>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#limit-int-">limit(int)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#limit-int-">limit(int)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Listener</span></a> - Interface in <a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></dt>
+<dd>
+<div class="block">A listener for events that occur in handing various Guacamole requests
+ such as authentication, tunnel connect/close, etc.</div>
+</dd>
+<dt><a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment"><span class="typeNameLink">LocalEnvironment</span></a> - Class in <a href="org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></dt>
+<dd>
+<div class="block">The environment of the locally-running Guacamole instance, describing
+ available protocols, configuration parameters, and the GUACAMOLE_HOME
+ directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#LocalEnvironment--">LocalEnvironment()</a></span> - Constructor for class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>
+<div class="block">Creates a new Environment, initializing that environment based on the
+ location of GUACAMOLE_HOME and the contents of guacamole.properties.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">LongGuacamoleProperty</span></a> - Class in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">A GuacamoleProperty whose value is an long.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/LongGuacamoleProperty.html#LongGuacamoleProperty--">LongGuacamoleProperty()</a></span> - Constructor for class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">LongGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:M">
+<!--   -->
+</a>
+<h2 class="title">M</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#MULTILINE">MULTILINE</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A text field that can span more than one line.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">MultilineField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a field which can contain multiple lines of text.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/MultilineField.html#MultilineField-java.lang.String-">MultilineField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">MultilineField</a></dt>
+<dd>
+<div class="block">Creates a new MultilineField with the given name.</div>
+</dd>
+</dl>
+<a name="I:N">
+<!--   -->
+</a>
+<h2 class="title">N</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#NUMERIC">NUMERIC</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A numeric field, whose value must contain only digits.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">NumericField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a field which may contain only integer values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/NumericField.html#NumericField-java.lang.String-">NumericField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a></dt>
+<dd>
+<div class="block">Creates a new NumericField with the given name.</div>
+</dd>
+</dl>
+<a name="I:O">
+<!--   -->
+</a>
+<h2 class="title">O</h2>
+<dl>
+<dt><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermission</span></a> - Class in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">A permission which affects a specific object, rather than the system as a
+ whole.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html#ObjectPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">ObjectPermission(ObjectPermission.Type, String)</a></span> - Constructor for class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></dt>
+<dd>
+<div class="block">Creates a new ObjectPermission having the given type and identifier.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermission.Type</span></a> - Enum in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">Specific types of object-level permissions.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermissionSet</span></a> - Interface in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</dd>
+<dt><a href="org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> - package org.apache.guacamole.environment</dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> - package org.apache.guacamole.form</dt>
+<dd>
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a> - package org.apache.guacamole.language</dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> - package org.apache.guacamole.net.auth</dt>
+<dd>
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> - package org.apache.guacamole.net.auth.credentials</dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> - package org.apache.guacamole.net.auth.permission</dt>
+<dd>
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> - package org.apache.guacamole.net.auth.simple</dt>
+<dd>
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> - package org.apache.guacamole.net.event</dt>
+<dd>
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a> - package org.apache.guacamole.net.event.listener</dt>
+<dd>
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a> - package org.apache.guacamole.properties</dt>
+<dd>
+<div class="block">Provides classes for reading properties from the web-application-wide
+ guacamole.properties file.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a> - package org.apache.guacamole.protocols</dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a> - package org.apache.guacamole.token</dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a> - package org.apache.guacamole.xml</dt>
+<dd>
+<div class="block">Classes driving the SAX-based XML parser used by the Guacamole web
+ application.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.Attribute.html#ORGANIZATION">ORGANIZATION</a></span> - Static variable in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></dt>
+<dd>
+<div class="block">The organization, company, group, etc.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.Attribute.html#ORGANIZATIONAL_ROLE">ORGANIZATIONAL_ROLE</a></span> - Static variable in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></dt>
+<dd>
+<div class="block">The role that the user has at the organization, company, group, etc.</div>
+</dd>
+</dl>
+<a name="I:P">
+<!--   -->
+</a>
+<h2 class="title">P</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/DateField.html#parse-java.lang.String-">parse(String)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></dt>
+<dd>
+<div class="block">Parses the given string into a corresponding date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/LanguageField.html#parse-java.lang.String-">parse(String)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">LanguageField</a></dt>
+<dd>
+<div class="block">Parses the given string into a language ID string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/NumericField.html#parse-java.lang.String-">parse(String)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a></dt>
+<dd>
+<div class="block">Parses the given string as an integer, where the given string is in the
+ format required by a numeric field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TextField.html#parse-java.lang.String-">parse(String)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a></dt>
+<dd>
+<div class="block">Parses the given string, interpreting empty strings as equivalent to
+ null.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TimeField.html#parse-java.lang.String-">parse(String)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></dt>
+<dd>
+<div class="block">Parses the given string into a corresponding time.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TimeZoneField.html#parse-java.lang.String-">parse(String)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">TimeZoneField</a></dt>
+<dd>
+<div class="block">Parses the given string into a time zone ID string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/FileGuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">FileGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in interface org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></dt>
+<dd>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/LongGuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">LongGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/StringGuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#PASSWORD">PASSWORD</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A password field, whose value is sensitive and must be hidden.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#PASSWORD">PASSWORD</a></span> - Static variable in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></dt>
+<dd>
+<div class="block">A field describing the password HTTP parameter expected by Guacamole
+ during login, if passwords are being used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#PASSWORD_TOKEN">PASSWORD_TOKEN</a></span> - Static variable in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">The name of the password token added via addStandardTokens().</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">PasswordField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a field which contains sensitive text information related to
+ authenticating a user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/PasswordField.html#PasswordField-java.lang.String-">PasswordField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">PasswordField</a></dt>
+<dd>
+<div class="block">Creates a new PasswordField with the given name.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Permission</span></a>&lt;<a href="org/apache/guacamole/net/auth/permission/Permission.html" title="type parameter in Permission">Type</a> extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&gt; - Interface in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">A permission which affects a specific type of operation, where all available
+ operation types are defined by an enumeration.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Permissions</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">An object which may be granted permissions to access/manipulate various
+ other objects or aspects of the system.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">PermissionSet</span></a>&lt;<a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a> extends <a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&gt; - Interface in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">An arbitrary set of permissions.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols"><span class="typeNameLink">ProtocolInfo</span></a> - Class in <a href="org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a></dt>
+<dd>
+<div class="block">Describes a protocol and all parameters associated with it, as required by
+ a protocol plugin for guacd.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-java.util.Collection-">ProtocolInfo(String, Collection&lt;Form&gt;, Collection&lt;Form&gt;)</a></span> - Constructor for class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo--">ProtocolInfo()</a></span> - Constructor for class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Creates a new ProtocolInfo with no associated name or forms.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-">ProtocolInfo(String)</a></span> - Constructor for class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Creates a new ProtocolInfo having the given name, but without any forms.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-">ProtocolInfo(String, Collection&lt;Form&gt;)</a></span> - Constructor for class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#putConnection-org.apache.guacamole.net.auth.Connection-">putConnection(Connection)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">An internal method for modifying the Connections in this Directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#putConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">putConnectionGroup(ConnectionGroup)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">An internal method for modifying the ConnectionGroups in this Directory.</div>
+</dd>
+</dl>
+<a name="I:Q">
+<!--   -->
+</a>
+<h2 class="title">Q</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#QUERY_PARAMETER">QUERY_PARAMETER</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">An HTTP query parameter which is expected to be embedded in the URL
+ given to a user.</div>
+</dd>
+</dl>
+<a name="I:R">
+<!--   -->
+</a>
+<h2 class="title">R</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate(UserContext, UserContext, AuthenticatedUser, Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate(UserContext, UserContext, AuthenticatedUser, Credentials)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">RelatedObjectSet</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">An arbitrary set of existing objects sharing some common relation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#remove-java.lang.String-">remove(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Directory.html#remove-java.lang.String-">remove(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></dt>
+<dd>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#remove-java.lang.String-">remove(String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#removeConnection-java.lang.String-">removeConnection(String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">An internal method for removing a Connection from this Directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#removeConnectionGroup-java.lang.String-">removeConnectionGroup(String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">An internal method for removing a ConnectionGroup from this Directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html#removeObjects-java.util.Set-">removeObjects(Set&lt;String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></dt>
+<dd>
+<div class="block">Removes each of the objects having the specified identifiers, if
+ present.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#removeObjects-java.util.Set-">removeObjects(Set&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission(ObjectPermission.Type, String)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Removes the specified permission for the object having the given
+ identifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission(SystemPermission.Type)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>
+<div class="block">Removes the specified permission.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission(ObjectPermission.Type, String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission(SystemPermission.Type)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions(Set&lt;ObjectPermission&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">removePermissions(Set&lt;PermissionType&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a></dt>
+<dd>
+<div class="block">Removes each of the specified permissions, if granted.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions(Set&lt;SystemPermission&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions(Set&lt;ObjectPermission&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions(Set&lt;SystemPermission&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#removeValue-java.lang.String-">removeValue(String)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Removes (undefines) the value of the field having the given name,
+ returning its previous value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#removeValue-org.apache.guacamole.form.Field-">removeValue(Field)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Removes (undefines) the value of the given field returning its previous
+ value.</div>
+</dd>
+</dl>
+<a name="I:S">
+<!--   -->
+</a>
+<h2 class="title">S</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#self--">self()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#self--">self()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#self--">self()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Sets the given attributes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Sets the given attributes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></dt>
+<dd>
+<div class="block">Sets the given attributes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration(GuacamoleConfiguration)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration(GuacamoleConfiguration)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration(GuacamoleConfiguration)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration(GuacamoleConfiguration)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#setConnectionForms-java.util.Collection-">setConnectionForms(Collection&lt;Form&gt;)</a></span> - Method in class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Sets the collection of forms describing all known parameters for a
+ connection using this protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#setConnectionIdentifier-java.lang.String-">setConnectionIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#setConnectionIdentifier-java.lang.String-">setConnectionIdentifier(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Sets the identifier of the connection being actively used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Form.html#setFields-java.util.Collection-">setFields(Collection&lt;Field&gt;)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></dt>
+<dd>
+<div class="block">Sets the collection of fields associated with this form.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dt>
+<dd>
+<div class="block">Sets the identifier assigned to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Sets the unique name associated with this field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Form.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></dt>
+<dd>
+<div class="block">Sets the name of this form.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#setName-java.lang.String-">setName(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Sets the name assigned to this Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#setName-java.lang.String-">setName(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/SharingProfile.html#setName-java.lang.String-">setName(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dt>
+<dd>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Sets the unique name of this protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#setObjects-java.util.Map-">setObjects(Map&lt;String, ObjectType&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Sets the Map which backs this SimpleDirectory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#setObjects-java.util.Set-">setObjects(Set&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dt>
+<dd>
+<div class="block">Replaces the Set of object identifiers which backs this
+ SimpleRelatedObjectSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions(Collection&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Sets the options available as possible values of this field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#setParameters-java.util.Map-">setParameters(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setParameters-java.util.Map-">setParameters(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/SharingProfile.html#setParameters-java.util.Map-">setParameters(Map&lt;String, String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dt>
+<dd>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#setParentIdentifier-java.lang.String-">setParentIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#setParentIdentifier-java.lang.String-">setParentIdentifier(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#setParentIdentifier-java.lang.String-">setParentIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#setPassword-java.lang.String-">setPassword(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#setPassword-java.lang.String-">setPassword(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Sets the password associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#setPassword-java.lang.String-">setPassword(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.html#setPassword-java.lang.String-">setPassword(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dt>
+<dd>
+<div class="block">Sets this user's password.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#setPermissions-java.util.Set-">setPermissions(Set&lt;ObjectPermission&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Sets the Set which backs this SimpleObjectPermissionSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#setPermissions-java.util.Set-">setPermissions(Set&lt;SystemPermission&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>
+<div class="block">Sets the Set which backs this SimpleSystemPermissionSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/SharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dt>
+<dd>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#setRemoteAddress-java.lang.String-">setRemoteAddress(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Sets the address of the client end of the connection which provided
+ these credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#setRemoteHost-java.lang.String-">setRemoteHost(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#setRemoteHost-java.lang.String-">setRemoteHost(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Sets the hostname or IP address of the remote host that initiated the
+ connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#setRemoteHostname-java.lang.String-">setRemoteHostname(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Sets the hostname of the client end of the connection which provided
+ these credentials, if known.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#setRequest-javax.servlet.http.HttpServletRequest-">setRequest(HttpServletRequest)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Sets the HttpServletRequest associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#setSession-javax.servlet.http.HttpSession-">setSession(HttpSession)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Sets the HttpSession associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#setSharingProfileForms-java.util.Collection-">setSharingProfileForms(Collection&lt;Form&gt;)</a></span> - Method in class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Sets the collection of forms describing all known parameters relevant to
+ a sharing profile whose primary connection uses this protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#setSharingProfileIdentifier-java.lang.String-">setSharingProfileIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#setSharingProfileIdentifier-java.lang.String-">setSharingProfileIdentifier(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Sets the identifier of the sharing profile being actively used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#setStartDate-java.util.Date-">setStartDate(Date)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#setStartDate-java.util.Date-">setStartDate(Date)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Sets the date and time the connection began.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/FieldOption.html#setTitle-java.lang.String-">setTitle(String)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></dt>
+<dd>
+<div class="block">Sets the human-readable title describing the effect of this option.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#setToken-java.lang.String-java.lang.String-">setToken(String, String)</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Sets the token having the given name to the given value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#setTokens-java.util.Map-">setTokens(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Replaces all current token values with the contents of the given map,
+ where each map key represents a token name, and each map value
+ represents a token value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">setTunnel(GuacamoleTunnel)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">setTunnel(GuacamoleTunnel)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Sets the connected GuacamoleTunnel being used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType(String)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Sets the type of this field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType(ConnectionGroup.Type)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType(ConnectionGroup.Type)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Set the type of this ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType(ConnectionGroup.Type)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#setUsername-java.lang.String-">setUsername(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#setUsername-java.lang.String-">setUsername(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Sets the name of the user who is using this connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#setUsername-java.lang.String-">setUsername(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Sets the username associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/FieldOption.html#setValue-java.lang.String-">setValue(String)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></dt>
+<dd>
+<div class="block">Sets the value that will be assigned if this option is chosen.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValue-java.lang.String-java.lang.String-">setValue(String, String)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Sets the value of the field having the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValue-org.apache.guacamole.form.Field-java.lang.String-">setValue(Field, String)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Sets the value of the given field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValues-java.util.Map-">setValues(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Replaces the map backing this UserCredentials object with the given map.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Shareable</span></a>&lt;<a href="org/apache/guacamole/net/auth/Shareable.html" title="type parameter in Shareable">T</a>&gt; - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">An object which can be shared with others via specially-generated sets of
+ credentials.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">SharingProfile</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Represents the semantics which apply to an existing connection when shared,
+ along with a human-readable name and unique identifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#shutdown--">shutdown()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Frees all resources associated with this AuthenticationProvider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#shutdown--">shutdown()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Frees all resources associated with this AuthenticationProvider.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleActivityRecordSet</span></a>&lt;<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a> extends <a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt; - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">An immutable and empty ActivityRecordSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#SimpleActivityRecordSet--">SimpleActivityRecordSet()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleAuthenticationProvider</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">Provides means of retrieving a set of named GuacamoleConfigurations for a
+ given Credentials object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#SimpleAuthenticationProvider--">SimpleAuthenticationProvider()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnection</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection--">SimpleConnection()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block">Creates a completely uninitialized SimpleConnection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection-boolean-">SimpleConnection(boolean)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block">Creates a completely uninitialized SimpleConnection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection-java.lang.String-java.lang.String-org.apache.guacamole.protocol.GuacamoleConfiguration-">SimpleConnection(String, String, GuacamoleConfiguration)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block">Creates a new SimpleConnection having the given identifier and
+ GuacamoleConfiguration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection-java.lang.String-java.lang.String-org.apache.guacamole.protocol.GuacamoleConfiguration-boolean-">SimpleConnection(String, String, GuacamoleConfiguration, boolean)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block">Creates a new SimpleConnection having the given identifier and
+ GuacamoleConfiguration.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionDirectory</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#SimpleConnectionDirectory-java.util.Collection-">SimpleConnectionDirectory(Collection&lt;Connection&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Creates a new SimpleConnectionDirectory which provides access to the
+ connections contained within the given Map.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#SimpleConnectionGroup-java.lang.String-java.lang.String-java.util.Collection-java.util.Collection-">SimpleConnectionGroup(String, String, Collection&lt;String&gt;, Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>
+<div class="block">Creates a new SimpleConnectionGroup having the given name and identifier
+ which will expose the given contents.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionGroupDirectory</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#SimpleConnectionGroupDirectory-java.util.Collection-">SimpleConnectionGroupDirectory(Collection&lt;ConnectionGroup&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Creates a new SimpleConnectionGroupDirectory which contains the given
+ groups.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionRecordSet</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleActivityRecordSet</code></a>&lt;<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt;
+     instead.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#SimpleConnectionRecordSet--">SimpleConnectionRecordSet()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleDirectory</span></a>&lt;<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt; - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">An extremely simple read-only implementation of a Directory which provides
+ access to a pre-defined Map of arbitrary objects.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory--">SimpleDirectory()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Creates a new empty SimpleDirectory which does not provide access to
+ any objects.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-java.util.Map-">SimpleDirectory(Map&lt;String, ObjectType&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Creates a new SimpleDirectory which provides access to the objects
+ contained within the given Map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-ObjectType-">SimpleDirectory(ObjectType)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Creates a new SimpleDirectory which provides access to the given object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-ObjectType...-">SimpleDirectory(ObjectType...)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Creates a new SimpleDirectory which provides access to the given
+ objects.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-java.util.Collection-">SimpleDirectory(Collection&lt;ObjectType&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Creates a new SimpleDirectory which provides access to the
+ objects contained within the Collection.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleObjectPermissionSet</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">A read-only implementation of ObjectPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet--">SimpleObjectPermissionSet()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Creates a new empty SimpleObjectPermissionSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Collection-java.util.Collection-">SimpleObjectPermissionSet(Collection&lt;String&gt;, Collection&lt;ObjectPermission.Type&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains permissions for
+ all possible unique combinations of the given identifiers and permission
+ types.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Collection-">SimpleObjectPermissionSet(Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains only READ
+ permissions for each of the given identifiers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Set-">SimpleObjectPermissionSet(Set&lt;ObjectPermission&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains the permissions
+ within the given Set.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleRelatedObjectSet</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">A read-only implementation of RelatedObjectSet which uses a backing Set
+ of identifiers to determine which objects are present.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#SimpleRelatedObjectSet--">SimpleRelatedObjectSet()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dt>
+<dd>
+<div class="block">Creates a new empty SimpleRelatedObjectSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#SimpleRelatedObjectSet-java.util.Set-">SimpleRelatedObjectSet(Set&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dt>
+<dd>
+<div class="block">Creates a new SimpleRelatedObjectSet which contains the objects having
+ the identifiers within the given Set.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleSystemPermissionSet</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">A read-only implementation of SystemPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#SimpleSystemPermissionSet--">SimpleSystemPermissionSet()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>
+<div class="block">Creates a new empty SimpleSystemPermissionSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#SimpleSystemPermissionSet-java.util.Set-">SimpleSystemPermissionSet(Set&lt;SystemPermission&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>
+<div class="block">Creates a new SimpleSystemPermissionSet which contains the permissions
+ within the given Set.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUser</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser--">SimpleUser()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>
+<div class="block">Creates a completely uninitialized SimpleUser.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-">SimpleUser(String)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>
+<div class="block">Creates a new SimpleUser having the given username.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-">SimpleUser(String, Collection&lt;String&gt;, Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-java.util.Collection-">SimpleUser(String, Collection&lt;String&gt;, Collection&lt;String&gt;, Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserContext</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">An extremely simple UserContext implementation which provides access to
+ a defined and restricted set of GuacamoleConfigurations.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.util.Map-">SimpleUserContext(AuthenticationProvider, Map&lt;String, GuacamoleConfiguration&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>
+<div class="block">Creates a new SimpleUserContext which provides access to only those
+ configurations within the given Map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-">SimpleUserContext(AuthenticationProvider, String, Map&lt;String, GuacamoleConfiguration&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-boolean-">SimpleUserContext(AuthenticationProvider, String, Map&lt;String, GuacamoleConfiguration&gt;, boolean)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserDirectory</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html#SimpleUserDirectory-org.apache.guacamole.net.auth.User-">SimpleUserDirectory(User)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Creates a new SimpleUserDirectory which provides access to the single
+ user provided.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html#SimpleUserGroup--">SimpleUserGroup()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></dt>
+<dd>
+<div class="block">Creates a completely uninitialized SimpleUserGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html#SimpleUserGroup-java.lang.String-">SimpleUserGroup(String)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></dt>
+<dd>
+<div class="block">Creates a new SimpleUserGroup having the given identifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort(ActivityRecordSet.SortableProperty, boolean)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></dt>
+<dd>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort(ActivityRecordSet.SortableProperty, boolean)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort(ActivityRecordSet.SortableProperty, boolean)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">StandardTokens</span></a> - Class in <a href="org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Standard tokens are now supplied by default to the connect()
+ functions of connections and connection groups. Manually generating the
+ standard tokens is not necessary.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/DocumentHandler.html#startElement-java.lang.String-java.lang.String-java.lang.String-org.xml.sax.Attributes-">startElement(String, String, String, Attributes)</a></span> - Method in class org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">DocumentHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">StringGuacamoleProperty</span></a> - Class in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">A GuacamoleProperty whose value is a simple string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/StringGuacamoleProperty.html#StringGuacamoleProperty--">StringGuacamoleProperty()</a></span> - Constructor for class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermission</span></a> - Class in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">A permission which affects the system as a whole, rather than an individual
+ object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html#SystemPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">SystemPermission(SystemPermission.Type)</a></span> - Constructor for class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></dt>
+<dd>
+<div class="block">Creates a new SystemPermission with the given
+ type.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermission.Type</span></a> - Enum in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">Specific types of system-level permissions.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermissionSet</span></a> - Interface in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</dd>
+</dl>
+<a name="I:T">
+<!--   -->
+</a>
+<h2 class="title">T</h2>
+<dl>
+<dt><a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml"><span class="typeNameLink">TagHandler</span></a> - Interface in <a href="org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a></dt>
+<dd>
+<div class="block">A simple element-level event handler for events triggered by the
+ SAX-driven DocumentHandler parser.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#TERMINAL_COLOR_SCHEME">TERMINAL_COLOR_SCHEME</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A color scheme accepted by the Guacamole server terminal emulator
+ and protocols which leverage it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TerminalColorSchemeField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a terminal color scheme field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TerminalColorSchemeField.html#TerminalColorSchemeField-java.lang.String-">TerminalColorSchemeField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">TerminalColorSchemeField</a></dt>
+<dd>
+<div class="block">Creates a new TerminalColorSchemeField with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#TEXT">TEXT</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A text field, accepting arbitrary values.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TextField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a basic text field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TextField.html#TextField-java.lang.String-">TextField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a></dt>
+<dd>
+<div class="block">Creates a new TextField with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TextField.html#TextField-java.lang.String-java.util.Collection-">TextField(String, Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a></dt>
+<dd>
+<div class="block">Creates a new TextField with the given name and possible values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#TIME">TIME</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A time field whose legal values conform to the pattern "HH:MM:SS",
+ zero-padded, 24-hour.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#TIME_TOKEN">TIME_TOKEN</a></span> - Static variable in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">The name of the time token (server-local time) added via
+ addStandardTokens().</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TimeField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a time field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TimeField.html#TimeField-java.lang.String-">TimeField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></dt>
+<dd>
+<div class="block">Creates a new TimeField with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#TIMEZONE">TIMEZONE</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A time zone field whose legal values are only valid time zone IDs,
+ as dictated by Java within TimeZone.getAvailableIDs().</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TimeZoneField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a time zone field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TimeZoneField.html#TimeZoneField-java.lang.String-">TimeZoneField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">TimeZoneField</a></dt>
+<dd>
+<div class="block">Creates a new TimeZoneField with the given name.</div>
+</dd>
+<dt><a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">TokenFilter</span></a> - Class in <a href="org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></dt>
+<dd>
+<div class="block">Filtering object which replaces tokens of the form "${TOKEN_NAME}" with
+ their corresponding values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#TokenFilter--">TokenFilter()</a></span> - Constructor for class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Creates a new TokenFilter which has no associated tokens.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#TokenFilter-java.util.Map-">TokenFilter(Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Creates a new TokenFilter which is initialized with the given token
+ name/value pairs.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingConnection</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html#TokenInjectingConnection-org.apache.guacamole.net.auth.Connection-java.util.Map-">TokenInjectingConnection(Connection, Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></dt>
+<dd>
+<div class="block">Wraps the given Connection, automatically adding the given tokens to
+ each invocation of connect().</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingConnectionGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html#TokenInjectingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-java.util.Map-">TokenInjectingConnectionGroup(ConnectionGroup, Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dt>
+<dd>
+<div class="block">Wraps the given ConnectionGroup, automatically adding the given tokens
+ to each invocation of connect().</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingUserContext</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">UserContext implementation which decorates a given UserContext,
+ automatically applying additional parameter tokens during the connection
+ process of any retrieved Connections and ConnectionGroups.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html#TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-java.util.Map-">TokenInjectingUserContext(UserContext, Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dt>
+<dd>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the given additional
+ parameter tokens are included.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html#TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-">TokenInjectingUserContext(UserContext)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dt>
+<dd>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the additional
+ parameter tokens returned by getTokens() are included.</div>
+</dd>
+<dt><a href="org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">TokenName</span></a> - Class in <a href="org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></dt>
+<dd>
+<div class="block">Utility class for generating parameter token names.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language"><span class="typeNameLink">Translatable</span></a> - Interface in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">An object which is associated with a translatable message that can be passed
+ through an arbitrary translation service, producing a human-readable message
+ in the user's native language.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableMessage</span></a> - Class in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A message which can be translated using a translation service, providing a
+ translation key and optional set of values to be substituted into the
+ translation string associated with that key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableMessage.html#TranslatableMessage-java.lang.String-">TranslatableMessage(String)</a></span> - Constructor for class org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableMessage associated with the given translation
+ key, without any associated variables.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableMessage.html#TranslatableMessage-java.lang.String-java.lang.Object-">TranslatableMessage(String, Object)</a></span> - Constructor for class org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableMessage associated with the given translation
+ key and associated variables.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html#tunnelClosed-org.apache.guacamole.net.event.TunnelCloseEvent-">tunnelClosed(TunnelCloseEvent)</a></span> - Method in interface org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener">TunnelCloseListener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Event hook which fires immediately before an existing tunnel is closed.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelCloseEvent</span></a> - Class in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">An event which is triggered whenever a tunnel is being closed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html#TunnelCloseEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelCloseEvent(AuthenticatedUser, Credentials, GuacamoleTunnel)</a></span> - Constructor for class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></dt>
+<dd>
+<div class="block">Creates a new TunnelCloseEvent which represents the closing of the
+ given tunnel via a request associated with the given credentials.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">TunnelCloseListener</span></a> - Interface in <a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html#tunnelConnected-org.apache.guacamole.net.event.TunnelConnectEvent-">tunnelConnected(TunnelConnectEvent)</a></span> - Method in interface org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener">TunnelConnectListener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Event hook which fires immediately after a new tunnel is connected.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelConnectEvent</span></a> - Class in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">An event which is triggered whenever a tunnel is being connected.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html#TunnelConnectEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelConnectEvent(AuthenticatedUser, Credentials, GuacamoleTunnel)</a></span> - Constructor for class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dt>
+<dd>
+<div class="block">Creates a new TunnelConnectEvent which represents the connecting of the
+ given tunnel via a request associated with the given credentials.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">TunnelConnectListener</span></a> - Interface in <a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelEvent</span></a> - Interface in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">Abstract basis for events associated with tunnels.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#Type--">Type()</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:U">
+<!--   -->
+</a>
+<h2 class="title">U</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#undecorate-ObjectType-">undecorate(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>
+<div class="block">Given an object originally returned from a call to this
+ DecoratingDirectory's decorate() function, reverses the decoration
+ operation, returning the original object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#unsetToken-java.lang.String-">unsetToken(String)</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Removes the value of the token with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#update-ObjectType-">update(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#update-ObjectType-">update(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">update(ObjectType)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></dt>
+<dd>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#update-ObjectType-">update(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser(AuthenticatedUser, Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser(AuthenticatedUser, Credentials)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext(UserContext, AuthenticatedUser, Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext(UserContext, AuthenticatedUser, Credentials)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A user of the Guacamole web application.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">User.Attribute</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">All standard attribute names with semantics defined by the Guacamole web
+ application.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserContext</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">The context of an active user.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">UserCredentials</span></a> - Class in <a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></dt>
+<dd>
+<div class="block">A fully-valid set of credentials and associated values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-java.util.Collection-java.util.Map-">UserCredentials(Collection&lt;Field&gt;, Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Creates a new UserCredentials object which requires the given fields and
+ values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-java.util.Map-">UserCredentials(CredentialsInfo, Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">UserCredentials(CredentialsInfo)</a></span> - Constructor for class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo but does not yet have any defined values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-java.util.Collection-">UserCredentials(Collection&lt;Field&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Creates a new UserCredentials object which requires the given fields but
+ does not yet have any defined values.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">UserEvent</span></a> - Interface in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">Abstract basis for events which may have an associated AuthenticatedUser when
+ triggered.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A user group of the Guacamole web application.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#USERNAME">USERNAME</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A username field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME">USERNAME</a></span> - Static variable in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></dt>
+<dd>
+<div class="block">A field describing the username HTTP parameter expected by Guacamole
+ during login, if usernames are being used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME_PASSWORD">USERNAME_PASSWORD</a></span> - Static variable in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></dt>
+<dd>
+<div class="block">CredentialsInfo object which describes standard username/password
+ credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#USERNAME_TOKEN">USERNAME_TOKEN</a></span> - Static variable in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">The name of the username token added via addStandardTokens().</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">UsernameField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a text field which will contain the uniquely-identifying name of
+ a user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/UsernameField.html#UsernameField-java.lang.String-">UsernameField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">UsernameField</a></dt>
+<dd>
+<div class="block">Creates a new UsernameField with the given name.</div>
+</dd>
+</dl>
+<a name="I:V">
+<!--   -->
+</a>
+<h2 class="title">V</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+</dl>
+<a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/index.html b/doc/1.1.0/guacamole-ext/index.html
new file mode 100644
index 0000000..34d1dd6
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/index.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:18 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>guacamole-ext 1.1.0 API</title>
+<script type="text/javascript">
+    tmpTargetPage = "" + window.location.search;
+    if (tmpTargetPage != "" && tmpTargetPage != "undefined")
+        tmpTargetPage = tmpTargetPage.substring(1);
+    if (tmpTargetPage.indexOf(":") != -1 || (tmpTargetPage != "" && !validURL(tmpTargetPage)))
+        tmpTargetPage = "undefined";
+    targetPage = tmpTargetPage;
+    function validURL(url) {
+        try {
+            url = decodeURIComponent(url);
+        }
+        catch (error) {
+            return false;
+        }
+        var pos = url.indexOf(".html");
+        if (pos == -1 || pos != url.length - 5)
+            return false;
+        var allowNumber = false;
+        var allowSep = false;
+        var seenDot = false;
+        for (var i = 0; i < url.length - 5; i++) {
+            var ch = url.charAt(i);
+            if ('a' <= ch && ch <= 'z' ||
+                    'A' <= ch && ch <= 'Z' ||
+                    ch == '$' ||
+                    ch == '_' ||
+                    ch.charCodeAt(0) > 127) {
+                allowNumber = true;
+                allowSep = true;
+            } else if ('0' <= ch && ch <= '9'
+                    || ch == '-') {
+                if (!allowNumber)
+                     return false;
+            } else if (ch == '/' || ch == '.') {
+                if (!allowSep)
+                    return false;
+                allowNumber = false;
+                allowSep = false;
+                if (ch == '.')
+                     seenDot = true;
+                if (ch == '/' && seenDot)
+                     return false;
+            } else {
+                return false;
+            }
+        }
+        return true;
+    }
+    function loadFrames() {
+        if (targetPage != "" && targetPage != "undefined")
+             top.classFrame.location = top.targetPage;
+    }
+</script>
+</head>
+<frameset cols="20%,80%" title="Documentation frame" onload="top.loadFrames()">
+<frameset rows="30%,70%" title="Left frames" onload="top.loadFrames()">
+<frame src="overview-frame.html" name="packageListFrame" title="All Packages">
+<frame src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+</frameset>
+<frame src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
+<noframes>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<h2>Frame Alert</h2>
+<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p>
+</noframes>
+</frameset>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/Environment.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/Environment.html
new file mode 100644
index 0000000..eb3a22b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/Environment.html
@@ -0,0 +1,494 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Environment (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Environment (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Environment.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/Environment.html" target="_top">Frames</a></li>
+<li><a href="Environment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.environment</div>
+<h2 title="Interface Environment" class="title">Interface Environment</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Environment</span></pre>
+<div class="block">The environment of an arbitrary Guacamole instance, describing available
+ protocols, configuration parameters, and the GUACAMOLE_HOME directory.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#GUACD_HOSTNAME">GUACD_HOSTNAME</a></span></code>
+<div class="block">The hostname of the server where guacd (the Guacamole proxy server) is
+ running.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#GUACD_PORT">GUACD_PORT</a></span></code>
+<div class="block">The port that guacd (the Guacamole proxy server) is listening on.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#GUACD_SSL">GUACD_SSL</a></span></code>
+<div class="block">Whether guacd requires SSL/TLS on connections.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration</a></span>()</code>
+<div class="block">Returns the connection information which should be used, by default, to
+ connect to guacd when establishing a remote desktop connection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getGuacamoleHome--">getGuacamoleHome</a></span>()</code>
+<div class="block">Returns the Guacamole home directory as determined when this Environment
+ object was created.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty</a></span>(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty</a></span>(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property,
+           Type&nbsp;defaultValue)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getProtocol-java.lang.String-">getProtocol</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the protocol having the given name.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getProtocols--">getProtocols</a></span>()</code>
+<div class="block">Returns a map of all available protocols, where each key is the name of
+ that protocol as would be passed to guacd during connection.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty</a></span>(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="GUACD_HOSTNAME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GUACD_HOSTNAME</h4>
+<pre>static final&nbsp;<a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a> GUACD_HOSTNAME</pre>
+<div class="block">The hostname of the server where guacd (the Guacamole proxy server) is
+ running.</div>
+</li>
+</ul>
+<a name="GUACD_PORT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GUACD_PORT</h4>
+<pre>static final&nbsp;<a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a> GUACD_PORT</pre>
+<div class="block">The port that guacd (the Guacamole proxy server) is listening on.</div>
+</li>
+</ul>
+<a name="GUACD_SSL">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GUACD_SSL</h4>
+<pre>static final&nbsp;<a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a> GUACD_SSL</pre>
+<div class="block">Whether guacd requires SSL/TLS on connections.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getGuacamoleHome--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGuacamoleHome</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;getGuacamoleHome()</pre>
+<div class="block">Returns the Guacamole home directory as determined when this Environment
+ object was created. The Guacamole home directory is found by checking, in
+ order: the guacamole.home system property, the GUACAMOLE_HOME environment
+ variable, and finally the .guacamole directory in the home directory of
+ the user running the servlet container.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The File representing the Guacamole home directory, which may
+         or may not exist, and may turn out to not be a directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProtocols--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocols</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&gt;&nbsp;getProtocols()</pre>
+<div class="block">Returns a map of all available protocols, where each key is the name of
+ that protocol as would be passed to guacd during connection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all available protocols.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProtocol-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocol</h4>
+<pre><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&nbsp;getProtocol(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the protocol having the given name. The name must be the
+ protocol name as would be passed to guacd during connection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the protocol.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The protocol having the given name, or null if no such
+         protocol is registered.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProperty-org.apache.guacamole.properties.GuacamoleProperty-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre>&lt;Type&gt;&nbsp;Type&nbsp;getProperty(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)
+                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type that the given property is parsed into.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property to read from guacamole.properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value of the property as read from
+         guacamole.properties.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the value
+                            for the given property in
+                            guacamole.properties.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProperty-org.apache.guacamole.properties.GuacamoleProperty-java.lang.Object-">
+<!--   -->
+</a><a name="getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre>&lt;Type&gt;&nbsp;Type&nbsp;getProperty(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property,
+                        Type&nbsp;defaultValue)
+                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any. If no value is found, the
+ provided default value is returned.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type that the given property is parsed into.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property to read from guacamole.properties.</dd>
+<dd><code>defaultValue</code> - The value to return if no value was given in
+                     guacamole.properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value of the property as read from
+         guacamole.properties, or the provided default value if no value
+         was found.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the value
+                            for the given property in
+                            guacamole.properties.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequiredProperty</h4>
+<pre>&lt;Type&gt;&nbsp;Type&nbsp;getRequiredProperty(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)
+                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties. An exception is thrown if the value
+ is not provided.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type that the given property is parsed into.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property to read from guacamole.properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value of the property as read from
+         guacamole.properties.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the value
+                            for the given property in
+                            guacamole.properties, or if the property is
+                            not specified.</dd>
+</dl>
+</li>
+</ul>
+<a name="getDefaultGuacamoleProxyConfiguration--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getDefaultGuacamoleProxyConfiguration</h4>
+<pre><a href="../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a>&nbsp;getDefaultGuacamoleProxyConfiguration()
+                                                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the connection information which should be used, by default, to
+ connect to guacd when establishing a remote desktop connection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The connection information which should be used, by default, to
+     connect to guacd.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the the connection information for guacd cannot be
+     retrieved.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Environment.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/Environment.html" target="_top">Frames</a></li>
+<li><a href="Environment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/LocalEnvironment.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/LocalEnvironment.html
new file mode 100644
index 0000000..ca23a71
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/LocalEnvironment.html
@@ -0,0 +1,520 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LocalEnvironment (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LocalEnvironment (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LocalEnvironment.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/LocalEnvironment.html" target="_top">Frames</a></li>
+<li><a href="LocalEnvironment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.environment</div>
+<h2 title="Class LocalEnvironment" class="title">Class LocalEnvironment</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.environment.LocalEnvironment</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">LocalEnvironment</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></pre>
+<div class="block">The environment of the locally-running Guacamole instance, describing
+ available protocols, configuration parameters, and the GUACAMOLE_HOME
+ directory.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.environment.Environment">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.environment.<a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></h3>
+<code><a href="../../../../org/apache/guacamole/environment/Environment.html#GUACD_HOSTNAME">GUACD_HOSTNAME</a>, <a href="../../../../org/apache/guacamole/environment/Environment.html#GUACD_PORT">GUACD_PORT</a>, <a href="../../../../org/apache/guacamole/environment/Environment.html#GUACD_SSL">GUACD_SSL</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#LocalEnvironment--">LocalEnvironment</a></span>()</code>
+<div class="block">Creates a new Environment, initializing that environment based on the
+ location of GUACAMOLE_HOME and the contents of guacamole.properties.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration</a></span>()</code>
+<div class="block">Returns the connection information which should be used, by default, to
+ connect to guacd when establishing a remote desktop connection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getGuacamoleHome--">getGuacamoleHome</a></span>()</code>
+<div class="block">Returns the Guacamole home directory as determined when this Environment
+ object was created.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty</a></span>(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty</a></span>(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property,
+           Type&nbsp;defaultValue)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProtocol-java.lang.String-">getProtocol</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the protocol having the given name.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProtocols--">getProtocols</a></span>()</code>
+<div class="block">Returns a map of all available protocols, where each key is the name of
+ that protocol as would be passed to guacd during connection.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty</a></span>(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="LocalEnvironment--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LocalEnvironment</h4>
+<pre>public&nbsp;LocalEnvironment()
+                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Creates a new Environment, initializing that environment based on the
+ location of GUACAMOLE_HOME and the contents of guacamole.properties.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while determining the
+                            environment of this Guacamole instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getGuacamoleHome--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGuacamoleHome</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;getGuacamoleHome()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getGuacamoleHome--">Environment</a></code></span></div>
+<div class="block">Returns the Guacamole home directory as determined when this Environment
+ object was created. The Guacamole home directory is found by checking, in
+ order: the guacamole.home system property, the GUACAMOLE_HOME environment
+ variable, and finally the .guacamole directory in the home directory of
+ the user running the servlet container.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getGuacamoleHome--">getGuacamoleHome</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The File representing the Guacamole home directory, which may
+         or may not exist, and may turn out to not be a directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProperty-org.apache.guacamole.properties.GuacamoleProperty-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre>public&nbsp;&lt;Type&gt;&nbsp;Type&nbsp;getProperty(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)
+                        throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">Environment</a></code></span></div>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type that the given property is parsed into.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property to read from guacamole.properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value of the property as read from
+         guacamole.properties.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the value
+                            for the given property in
+                            guacamole.properties.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProperty-org.apache.guacamole.properties.GuacamoleProperty-java.lang.Object-">
+<!--   -->
+</a><a name="getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre>public&nbsp;&lt;Type&gt;&nbsp;Type&nbsp;getProperty(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property,
+                               Type&nbsp;defaultValue)
+                        throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">Environment</a></code></span></div>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any. If no value is found, the
+ provided default value is returned.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type that the given property is parsed into.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property to read from guacamole.properties.</dd>
+<dd><code>defaultValue</code> - The value to return if no value was given in
+                     guacamole.properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value of the property as read from
+         guacamole.properties, or the provided default value if no value
+         was found.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the value
+                            for the given property in
+                            guacamole.properties.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequiredProperty</h4>
+<pre>public&nbsp;&lt;Type&gt;&nbsp;Type&nbsp;getRequiredProperty(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">Environment</a></code></span></div>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties. An exception is thrown if the value
+ is not provided.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type that the given property is parsed into.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property to read from guacamole.properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value of the property as read from
+         guacamole.properties.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the value
+                            for the given property in
+                            guacamole.properties, or if the property is
+                            not specified.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProtocols--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocols</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&gt;&nbsp;getProtocols()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProtocols--">Environment</a></code></span></div>
+<div class="block">Returns a map of all available protocols, where each key is the name of
+ that protocol as would be passed to guacd during connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProtocols--">getProtocols</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all available protocols.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProtocol-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocol</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&nbsp;getProtocol(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProtocol-java.lang.String-">Environment</a></code></span></div>
+<div class="block">Returns the protocol having the given name. The name must be the
+ protocol name as would be passed to guacd during connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProtocol-java.lang.String-">getProtocol</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the protocol.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The protocol having the given name, or null if no such
+         protocol is registered.</dd>
+</dl>
+</li>
+</ul>
+<a name="getDefaultGuacamoleProxyConfiguration--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getDefaultGuacamoleProxyConfiguration</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a>&nbsp;getDefaultGuacamoleProxyConfiguration()
+                                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getDefaultGuacamoleProxyConfiguration--">Environment</a></code></span></div>
+<div class="block">Returns the connection information which should be used, by default, to
+ connect to guacd when establishing a remote desktop connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The connection information which should be used, by default, to
+     connect to guacd.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the the connection information for guacd cannot be
+     retrieved.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LocalEnvironment.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/LocalEnvironment.html" target="_top">Frames</a></li>
+<li><a href="LocalEnvironment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/class-use/Environment.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/class-use/Environment.html
new file mode 100644
index 0000000..f6a0854
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/class-use/Environment.html
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.environment.Environment (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.environment.Environment (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/environment/class-use/Environment.html" target="_top">Frames</a></li>
+<li><a href="Environment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.environment.Environment" class="title">Uses of Interface<br>org.apache.guacamole.environment.Environment</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a> in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> that implement <a href="../../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></span></code>
+<div class="block">The environment of the locally-running Guacamole instance, describing
+ available protocols, configuration parameters, and the GUACAMOLE_HOME
+ directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/environment/class-use/Environment.html" target="_top">Frames</a></li>
+<li><a href="Environment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/class-use/LocalEnvironment.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/class-use/LocalEnvironment.html
new file mode 100644
index 0000000..1f31bce
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/class-use/LocalEnvironment.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.environment.LocalEnvironment (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.environment.LocalEnvironment (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/environment/class-use/LocalEnvironment.html" target="_top">Frames</a></li>
+<li><a href="LocalEnvironment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.environment.LocalEnvironment" class="title">Uses of Class<br>org.apache.guacamole.environment.LocalEnvironment</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.environment.LocalEnvironment</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/environment/class-use/LocalEnvironment.html" target="_top">Frames</a></li>
+<li><a href="LocalEnvironment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-frame.html
new file mode 100644
index 0000000..b0073ea
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-frame.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.environment (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/environment/package-summary.html" target="classFrame">org.apache.guacamole.environment</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="Environment.html" title="interface in org.apache.guacamole.environment" target="classFrame"><span class="interfaceName">Environment</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="LocalEnvironment.html" title="class in org.apache.guacamole.environment" target="classFrame">LocalEnvironment</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-summary.html
new file mode 100644
index 0000000..1001da8
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-summary.html
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.environment (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.environment (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Package</li>
+<li><a href="../../../../org/apache/guacamole/form/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.environment</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></td>
+<td class="colLast">
+<div class="block">The environment of an arbitrary Guacamole instance, describing available
+ protocols, configuration parameters, and the GUACAMOLE_HOME directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></td>
+<td class="colLast">
+<div class="block">The environment of the locally-running Guacamole instance, describing
+ available protocols, configuration parameters, and the GUACAMOLE_HOME
+ directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Package</li>
+<li><a href="../../../../org/apache/guacamole/form/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-tree.html
new file mode 100644
index 0000000..496ce49
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-tree.html
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.environment Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.environment Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li><a href="../../../../org/apache/guacamole/form/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.environment</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.environment.<a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment"><span class="typeNameLink">LocalEnvironment</span></a> (implements org.apache.guacamole.environment.<a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a>)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.environment.<a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment"><span class="typeNameLink">Environment</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li><a href="../../../../org/apache/guacamole/form/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-use.html
new file mode 100644
index 0000000..a49a0e5
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-use.html
@@ -0,0 +1,162 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.environment (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.environment (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.environment" class="title">Uses of Package<br>org.apache.guacamole.environment</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> used by <a href="../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/environment/class-use/Environment.html#org.apache.guacamole.environment">Environment</a>
+<div class="block">The environment of an arbitrary Guacamole instance, describing available
+ protocols, configuration parameters, and the GUACAMOLE_HOME directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/BooleanField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/BooleanField.html
new file mode 100644
index 0000000..6509ec7
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/BooleanField.html
@@ -0,0 +1,283 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BooleanField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/BooleanField.html" target="_top">Frames</a></li>
+<li><a href="BooleanField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class BooleanField" class="title">Class BooleanField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.BooleanField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">BooleanField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a field with strictly one possible value. It is assumed that the
+ field may be blank, but that its sole non-blank value is the value provided.
+ The provided value represents "true" while all other values, including
+ having no associated value, represent "false".</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/BooleanField.html#BooleanField-java.lang.String-java.lang.String-">BooleanField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;truthValue)</code>
+<div class="block">Creates a new BooleanField with the given name and truth value.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BooleanField-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BooleanField</h4>
+<pre>public&nbsp;BooleanField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;truthValue)</pre>
+<div class="block">Creates a new BooleanField with the given name and truth value. The
+ truth value is the value that, when assigned to this field, means that
+ this field is "true".</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+<dd><code>truthValue</code> - The value to consider "true" for this field. All other values will
+     be considered "false".</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/BooleanField.html" target="_top">Frames</a></li>
+<li><a href="BooleanField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/DateField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/DateField.html
new file mode 100644
index 0000000..bb3541c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/DateField.html
@@ -0,0 +1,392 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DateField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DateField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DateField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/DateField.html" target="_top">Frames</a></li>
+<li><a href="DateField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class DateField" class="title">Class DateField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.DateField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DateField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a date field. The field may contain only date values which
+ conform to a standard pattern, defined by DateField.FORMAT.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/DateField.html#FORMAT">FORMAT</a></span></code>
+<div class="block">The date format used by date fields, compatible with SimpleDateFormat.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/DateField.html#DateField-java.lang.String-">DateField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new DateField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/DateField.html#format-java.util.Date-">format</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;date)</code>
+<div class="block">Converts the given date into a string which follows the format used by
+ date fields.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/DateField.html#parse-java.lang.String-">parse</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dateString)</code>
+<div class="block">Parses the given string into a corresponding date.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="FORMAT">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FORMAT</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> FORMAT</pre>
+<div class="block">The date format used by date fields, compatible with SimpleDateFormat.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.DateField.FORMAT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DateField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DateField</h4>
+<pre>public&nbsp;DateField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new DateField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="format-java.util.Date-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>format</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;date)</pre>
+<div class="block">Converts the given date into a string which follows the format used by
+ date fields.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>date</code> - The date value to format, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The formatted date, or null if the provided time was null.</dd>
+</dl>
+</li>
+</ul>
+<a name="parse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;parse(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dateString)
+                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/text/ParseException.html?is-external=true" title="class or interface in java.text">ParseException</a></pre>
+<div class="block">Parses the given string into a corresponding date. The string must
+ follow the standard format used by date fields, as defined by FORMAT
+ and as would be produced by format().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dateString</code> - The date string to parse, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date corresponding to the given date string, or null if the
+     provided date string was null or blank.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/text/ParseException.html?is-external=true" title="class or interface in java.text">ParseException</a></code> - If the given date string does not conform to the standard format
+     used by date fields.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DateField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/DateField.html" target="_top">Frames</a></li>
+<li><a href="DateField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/EmailField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/EmailField.html
new file mode 100644
index 0000000..75efb90
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/EmailField.html
@@ -0,0 +1,274 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>EmailField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="EmailField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EmailField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/EmailField.html" target="_top">Frames</a></li>
+<li><a href="EmailField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class EmailField" class="title">Class EmailField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.EmailField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">EmailField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a text field which may contain an email address.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/EmailField.html#EmailField-java.lang.String-">EmailField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new EmailField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="EmailField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EmailField</h4>
+<pre>public&nbsp;EmailField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new EmailField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EmailField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/EmailField.html" target="_top">Frames</a></li>
+<li><a href="EmailField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/EnumField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/EnumField.html
new file mode 100644
index 0000000..9f39ae6
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/EnumField.html
@@ -0,0 +1,278 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>EnumField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="EnumField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EnumField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/EnumField.html" target="_top">Frames</a></li>
+<li><a href="EnumField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class EnumField" class="title">Class EnumField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.EnumField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">EnumField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents an arbitrary field with a finite, enumerated set of possible
+ values.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/EnumField.html#EnumField-java.lang.String-java.util.Collection-">EnumField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</code>
+<div class="block">Creates a new EnumField with the given name and possible values.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="EnumField-java.lang.String-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EnumField</h4>
+<pre>public&nbsp;EnumField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</pre>
+<div class="block">Creates a new EnumField with the given name and possible values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+<dd><code>options</code> - All possible legal options for this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EnumField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/EnumField.html" target="_top">Frames</a></li>
+<li><a href="EnumField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/Field.Type.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/Field.Type.html
new file mode 100644
index 0000000..45ac501
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/Field.Type.html
@@ -0,0 +1,512 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Field.Type (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Field.Type (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Field.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/Field.Type.html" target="_top">Frames</a></li>
+<li><a href="Field.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class Field.Type" class="title">Class Field.Type</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.Field.Type</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <span class="typeNameLabel">Field.Type</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">All types of fields which are available by default. Additional field
+ types may be defined by extensions by using a unique field type name and
+ registering that name with the form service within JavaScript.
+
+ See FormService.js.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#BOOLEAN">BOOLEAN</a></span></code>
+<div class="block">A boolean field, whose value is either blank or "true".</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#DATE">DATE</a></span></code>
+<div class="block">A date field whose legal values conform to the pattern "YYYY-MM-DD",
+ zero-padded.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#EMAIL">EMAIL</a></span></code>
+<div class="block">An email address field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#ENUM">ENUM</a></span></code>
+<div class="block">An enumerated field, whose legal values are fully enumerated by a
+ provided, finite list.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#LANGUAGE">LANGUAGE</a></span></code>
+<div class="block">Field type which allows selection of languages.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#MULTILINE">MULTILINE</a></span></code>
+<div class="block">A text field that can span more than one line.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#NUMERIC">NUMERIC</a></span></code>
+<div class="block">A numeric field, whose value must contain only digits.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#PASSWORD">PASSWORD</a></span></code>
+<div class="block">A password field, whose value is sensitive and must be hidden.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#QUERY_PARAMETER">QUERY_PARAMETER</a></span></code>
+<div class="block">An HTTP query parameter which is expected to be embedded in the URL
+ given to a user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#TERMINAL_COLOR_SCHEME">TERMINAL_COLOR_SCHEME</a></span></code>
+<div class="block">A color scheme accepted by the Guacamole server terminal emulator
+ and protocols which leverage it.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#TEXT">TEXT</a></span></code>
+<div class="block">A text field, accepting arbitrary values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#TIME">TIME</a></span></code>
+<div class="block">A time field whose legal values conform to the pattern "HH:MM:SS",
+ zero-padded, 24-hour.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#TIMEZONE">TIMEZONE</a></span></code>
+<div class="block">A time zone field whose legal values are only valid time zone IDs,
+ as dictated by Java within TimeZone.getAvailableIDs().</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#USERNAME">USERNAME</a></span></code>
+<div class="block">A username field.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#Type--">Type</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="TEXT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> TEXT</pre>
+<div class="block">A text field, accepting arbitrary values.</div>
+</li>
+</ul>
+<a name="EMAIL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EMAIL</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> EMAIL</pre>
+<div class="block">An email address field. This field type generally behaves
+ identically to arbitrary text fields, but has semantic differences.</div>
+</li>
+</ul>
+<a name="USERNAME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>USERNAME</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> USERNAME</pre>
+<div class="block">A username field. This field type generally behaves identically to
+ arbitrary text fields, but has semantic differences.</div>
+</li>
+</ul>
+<a name="PASSWORD">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PASSWORD</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> PASSWORD</pre>
+<div class="block">A password field, whose value is sensitive and must be hidden.</div>
+</li>
+</ul>
+<a name="NUMERIC">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NUMERIC</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> NUMERIC</pre>
+<div class="block">A numeric field, whose value must contain only digits.</div>
+</li>
+</ul>
+<a name="BOOLEAN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BOOLEAN</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> BOOLEAN</pre>
+<div class="block">A boolean field, whose value is either blank or "true".</div>
+</li>
+</ul>
+<a name="ENUM">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ENUM</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ENUM</pre>
+<div class="block">An enumerated field, whose legal values are fully enumerated by a
+ provided, finite list.</div>
+</li>
+</ul>
+<a name="MULTILINE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MULTILINE</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> MULTILINE</pre>
+<div class="block">A text field that can span more than one line.</div>
+</li>
+</ul>
+<a name="TIMEZONE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TIMEZONE</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> TIMEZONE</pre>
+<div class="block">A time zone field whose legal values are only valid time zone IDs,
+ as dictated by Java within TimeZone.getAvailableIDs().</div>
+</li>
+</ul>
+<a name="LANGUAGE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LANGUAGE</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> LANGUAGE</pre>
+<div class="block">Field type which allows selection of languages. The languages
+ displayed are the set of languages supported by the Guacamole web
+ application. Legal values are valid language IDs, as dictated by
+ the filenames of Guacamole's available translations.</div>
+</li>
+</ul>
+<a name="DATE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DATE</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> DATE</pre>
+<div class="block">A date field whose legal values conform to the pattern "YYYY-MM-DD",
+ zero-padded.</div>
+</li>
+</ul>
+<a name="TIME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TIME</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> TIME</pre>
+<div class="block">A time field whose legal values conform to the pattern "HH:MM:SS",
+ zero-padded, 24-hour.</div>
+</li>
+</ul>
+<a name="QUERY_PARAMETER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>QUERY_PARAMETER</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> QUERY_PARAMETER</pre>
+<div class="block">An HTTP query parameter which is expected to be embedded in the URL
+ given to a user.</div>
+</li>
+</ul>
+<a name="TERMINAL_COLOR_SCHEME">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TERMINAL_COLOR_SCHEME</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> TERMINAL_COLOR_SCHEME</pre>
+<div class="block">A color scheme accepted by the Guacamole server terminal emulator
+ and protocols which leverage it.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Type--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Type</h4>
+<pre>public&nbsp;Type()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Field.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/Field.Type.html" target="_top">Frames</a></li>
+<li><a href="Field.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/Field.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/Field.html
new file mode 100644
index 0000000..e2c22cb
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/Field.html
@@ -0,0 +1,463 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Field (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Field (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Field.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/Field.html" target="_top">Frames</a></li>
+<li><a href="Field.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class Field" class="title">Class Field</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.Field</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">BooleanField</a>, <a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a>, <a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">EmailField</a>, <a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">EnumField</a>, <a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">LanguageField</a>, <a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">MultilineField</a>, <a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a>, <a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">PasswordField</a>, <a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">TerminalColorSchemeField</a>, <a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a>, <a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a>, <a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">TimeZoneField</a>, <a href="../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">UsernameField</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">Field</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Represents an arbitrary field, such as an HTTP parameter, the parameter of a
+ remote desktop protocol, or an input field within a form. Fields are generic
+ and typed dynamically through a type string, with the semantics of the field
+ defined by the type string. The behavior of each field type is defined
+ either through the web application itself (see FormService.js) or through
+ extensions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></span></code>
+<div class="block">All types of fields which are available by default.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#Field--">Field</a></span>()</code>
+<div class="block">Creates a new Parameter with no associated name or type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#Field-java.lang.String-java.lang.String-">Field</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;type)</code>
+<div class="block">Creates a new Field with the given name  and type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#Field-java.lang.String-java.lang.String-java.util.Collection-">Field</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;type,
+     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</code>
+<div class="block">Creates a new Field with the given name, type, and possible values.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the unique name associated with this field.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a></span>()</code>
+<div class="block">Returns a mutable collection of field options.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of this field.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the unique name associated with this field.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</code>
+<div class="block">Sets the options available as possible values of this field.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;type)</code>
+<div class="block">Sets the type of this field.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Field--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Field</h4>
+<pre>public&nbsp;Field()</pre>
+<div class="block">Creates a new Parameter with no associated name or type.</div>
+</li>
+</ul>
+<a name="Field-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Field</h4>
+<pre>public&nbsp;Field(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;type)</pre>
+<div class="block">Creates a new Field with the given name  and type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+<dd><code>type</code> - The type of this field.</dd>
+</dl>
+</li>
+</ul>
+<a name="Field-java.lang.String-java.lang.String-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Field</h4>
+<pre>public&nbsp;Field(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;type,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</pre>
+<div class="block">Creates a new Field with the given name, type, and possible values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+<dd><code>type</code> - The type of this field.</dd>
+<dd><code>options</code> - A collection of all possible valid options for this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the unique name associated with this field.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique name associated with this field.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Sets the unique name associated with this field.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to assign to this field.</dd>
+</dl>
+</li>
+</ul>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getType()</pre>
+<div class="block">Returns the type of this field.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The type of this field.</dd>
+</dl>
+</li>
+</ul>
+<a name="setType-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setType</h4>
+<pre>public&nbsp;void&nbsp;setType(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;type)</pre>
+<div class="block">Sets the type of this field.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - The type of this field.</dd>
+</dl>
+</li>
+</ul>
+<a name="getOptions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOptions</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getOptions()</pre>
+<div class="block">Returns a mutable collection of field options. Changes to this
+ collection directly affect the available options.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A mutable collection of field options, or null if the field has no
+     options.</dd>
+</dl>
+</li>
+</ul>
+<a name="setOptions-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setOptions</h4>
+<pre>public&nbsp;void&nbsp;setOptions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</pre>
+<div class="block">Sets the options available as possible values of this field.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>options</code> - The options to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Field.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/Field.html" target="_top">Frames</a></li>
+<li><a href="Field.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/FieldOption.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/FieldOption.html
new file mode 100644
index 0000000..6639384
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/FieldOption.html
@@ -0,0 +1,366 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FieldOption (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FieldOption (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FieldOption.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/FieldOption.html" target="_top">Frames</a></li>
+<li><a href="FieldOption.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class FieldOption" class="title">Class FieldOption</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.FieldOption</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">FieldOption</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Describes an available legal value for an enumerated field.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/FieldOption.html#FieldOption--">FieldOption</a></span>()</code>
+<div class="block">Creates a new FieldOption with no associated value or title.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/FieldOption.html#FieldOption-java.lang.String-java.lang.String-">FieldOption</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
+           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;title)</code>
+<div class="block">Creates a new FieldOption having the given value and title.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/FieldOption.html#getTitle--">getTitle</a></span>()</code>
+<div class="block">Returns the human-readable title describing the effect of this option.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/FieldOption.html#getValue--">getValue</a></span>()</code>
+<div class="block">Returns the value that will be assigned if this option is chosen.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/FieldOption.html#setTitle-java.lang.String-">setTitle</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;title)</code>
+<div class="block">Sets the human-readable title describing the effect of this option.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/FieldOption.html#setValue-java.lang.String-">setValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Sets the value that will be assigned if this option is chosen.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FieldOption--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FieldOption</h4>
+<pre>public&nbsp;FieldOption()</pre>
+<div class="block">Creates a new FieldOption with no associated value or title.</div>
+</li>
+</ul>
+<a name="FieldOption-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FieldOption</h4>
+<pre>public&nbsp;FieldOption(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
+                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;title)</pre>
+<div class="block">Creates a new FieldOption having the given value and title.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The value to assign if this option is chosen.</dd>
+<dd><code>title</code> - The human-readable title to associate with this option.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getValue--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getValue()</pre>
+<div class="block">Returns the value that will be assigned if this option is chosen.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The value that will be assigned if this option is chosen.</dd>
+</dl>
+</li>
+</ul>
+<a name="setValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValue</h4>
+<pre>public&nbsp;void&nbsp;setValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
+<div class="block">Sets the value that will be assigned if this option is chosen.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The value to assign if this option is chosen.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTitle--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTitle</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getTitle()</pre>
+<div class="block">Returns the human-readable title describing the effect of this option.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The human-readable title describing the effect of this option.</dd>
+</dl>
+</li>
+</ul>
+<a name="setTitle-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setTitle</h4>
+<pre>public&nbsp;void&nbsp;setTitle(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;title)</pre>
+<div class="block">Sets the human-readable title describing the effect of this option.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>title</code> - A human-readable title describing the effect of this option.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FieldOption.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/FieldOption.html" target="_top">Frames</a></li>
+<li><a href="FieldOption.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/Form.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/Form.html
new file mode 100644
index 0000000..dedd870
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/Form.html
@@ -0,0 +1,372 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Form (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Form (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Form.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/Form.html" target="_top">Frames</a></li>
+<li><a href="Form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class Form" class="title">Class Form</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.Form</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">Form</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Information which describes logical set of fields.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Form.html#Form--">Form</a></span>()</code>
+<div class="block">Creates a new Form object with no associated fields.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Form.html#Form-java.lang.String-java.util.Collection-">Form</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Creates a new Form object having the given name and containing the given
+ fields.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Form.html#getFields--">getFields</a></span>()</code>
+<div class="block">Returns a mutable collection of the fields associated with this form.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Form.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name of this form.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Form.html#setFields-java.util.Collection-">setFields</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Sets the collection of fields associated with this form.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Form.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name of this form.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Form--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Form</h4>
+<pre>public&nbsp;Form()</pre>
+<div class="block">Creates a new Form object with no associated fields. The name is left
+ unset as null. If no form name is provided, this form must not be used
+ in the same context as another unnamed form.</div>
+</li>
+</ul>
+<a name="Form-java.lang.String-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Form</h4>
+<pre>public&nbsp;Form(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</pre>
+<div class="block">Creates a new Form object having the given name and containing the given
+ fields.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - A name which uniquely identifies this form.</dd>
+<dd><code>fields</code> - The fields to provided within the new Form.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getFields--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFields</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;getFields()</pre>
+<div class="block">Returns a mutable collection of the fields associated with this form.
+ Changes to this collection affect the fields exposed to the user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A mutable collection of fields.</dd>
+</dl>
+</li>
+</ul>
+<a name="setFields-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setFields</h4>
+<pre>public&nbsp;void&nbsp;setFields(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</pre>
+<div class="block">Sets the collection of fields associated with this form.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>fields</code> - The collection of fields to associate with this form.</dd>
+</dl>
+</li>
+</ul>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the name of this form. Form names must uniquely identify each
+ form.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of this form, or null if the form has no name.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Sets the name of this form. Form names must uniquely identify each form.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign to this form.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Form.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/Form.html" target="_top">Frames</a></li>
+<li><a href="Form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/LanguageField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/LanguageField.html
new file mode 100644
index 0000000..daa5676
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/LanguageField.html
@@ -0,0 +1,324 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LanguageField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LanguageField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LanguageField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/LanguageField.html" target="_top">Frames</a></li>
+<li><a href="LanguageField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class LanguageField" class="title">Class LanguageField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.LanguageField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">LanguageField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a language field. The field may contain only valid language
+ identifiers as used by the Guacamole web application for its translations.
+ Language identifiers are defined by the filenames of the JSON files
+ containing the translation.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/LanguageField.html#LanguageField-java.lang.String-">LanguageField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new LanguageField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/LanguageField.html#parse-java.lang.String-">parse</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;language)</code>
+<div class="block">Parses the given string into a language ID string.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="LanguageField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LanguageField</h4>
+<pre>public&nbsp;LanguageField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new LanguageField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parse(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;language)</pre>
+<div class="block">Parses the given string into a language ID string. As any string may be
+ a valid language ID as long as it has a corresponding translation, the
+ only transformation currently performed by this function is to ensure
+ that a blank language string is parsed into null.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>language</code> - The language string to parse, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ID of the language corresponding to the given string, or null if
+     if the given language string was null or blank.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LanguageField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/LanguageField.html" target="_top">Frames</a></li>
+<li><a href="LanguageField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/MultilineField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/MultilineField.html
new file mode 100644
index 0000000..ab95262
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/MultilineField.html
@@ -0,0 +1,274 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MultilineField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MultilineField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MultilineField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/MultilineField.html" target="_top">Frames</a></li>
+<li><a href="MultilineField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class MultilineField" class="title">Class MultilineField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.MultilineField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">MultilineField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a field which can contain multiple lines of text.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/MultilineField.html#MultilineField-java.lang.String-">MultilineField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new MultilineField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="MultilineField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>MultilineField</h4>
+<pre>public&nbsp;MultilineField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new MultilineField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MultilineField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/MultilineField.html" target="_top">Frames</a></li>
+<li><a href="MultilineField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/NumericField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/NumericField.html
new file mode 100644
index 0000000..572c9f0
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/NumericField.html
@@ -0,0 +1,346 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>NumericField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NumericField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NumericField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/NumericField.html" target="_top">Frames</a></li>
+<li><a href="NumericField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class NumericField" class="title">Class NumericField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.NumericField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">NumericField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a field which may contain only integer values.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/NumericField.html#NumericField-java.lang.String-">NumericField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new NumericField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/NumericField.html#format-java.lang.Integer-">format</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;i)</code>
+<div class="block">Formats the given integer in the format required by a numeric field.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/NumericField.html#parse-java.lang.String-">parse</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;str)</code>
+<div class="block">Parses the given string as an integer, where the given string is in the
+ format required by a numeric field.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="NumericField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NumericField</h4>
+<pre>public&nbsp;NumericField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new NumericField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="format-java.lang.Integer-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>format</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;i)</pre>
+<div class="block">Formats the given integer in the format required by a numeric field.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - The integer to format, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A string representation of the given integer, or null if the given
+     integer was null.</dd>
+</dl>
+</li>
+</ul>
+<a name="parse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;parse(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;str)
+                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NumberFormatException.html?is-external=true" title="class or interface in java.lang">NumberFormatException</a></pre>
+<div class="block">Parses the given string as an integer, where the given string is in the
+ format required by a numeric field.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>str</code> - The string to parse as an integer, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The integer representation of the given string, or null if the given
+     string was null.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NumberFormatException.html?is-external=true" title="class or interface in java.lang">NumberFormatException</a></code> - If the given string is not in a parseable format.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NumericField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/NumericField.html" target="_top">Frames</a></li>
+<li><a href="NumericField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/PasswordField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/PasswordField.html
new file mode 100644
index 0000000..2780e9a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/PasswordField.html
@@ -0,0 +1,275 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>PasswordField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PasswordField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PasswordField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/PasswordField.html" target="_top">Frames</a></li>
+<li><a href="PasswordField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class PasswordField" class="title">Class PasswordField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.PasswordField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">PasswordField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a field which contains sensitive text information related to
+ authenticating a user.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/PasswordField.html#PasswordField-java.lang.String-">PasswordField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new PasswordField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="PasswordField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>PasswordField</h4>
+<pre>public&nbsp;PasswordField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new PasswordField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PasswordField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/PasswordField.html" target="_top">Frames</a></li>
+<li><a href="PasswordField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TerminalColorSchemeField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TerminalColorSchemeField.html
new file mode 100644
index 0000000..5dae866
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TerminalColorSchemeField.html
@@ -0,0 +1,276 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TerminalColorSchemeField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TerminalColorSchemeField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TerminalColorSchemeField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TerminalColorSchemeField.html" target="_top">Frames</a></li>
+<li><a href="TerminalColorSchemeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class TerminalColorSchemeField" class="title">Class TerminalColorSchemeField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.TerminalColorSchemeField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TerminalColorSchemeField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a terminal color scheme field. The field may contain only valid
+ terminal color schemes as used by the Guacamole server terminal emulator
+ and protocols which leverage it (SSH, telnet, Kubernetes).</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html#TerminalColorSchemeField-java.lang.String-">TerminalColorSchemeField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new TerminalColorSchemeField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TerminalColorSchemeField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TerminalColorSchemeField</h4>
+<pre>public&nbsp;TerminalColorSchemeField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new TerminalColorSchemeField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TerminalColorSchemeField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TerminalColorSchemeField.html" target="_top">Frames</a></li>
+<li><a href="TerminalColorSchemeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TextField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TextField.html
new file mode 100644
index 0000000..8aaec27
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TextField.html
@@ -0,0 +1,344 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TextField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TextField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TextField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TextField.html" target="_top">Frames</a></li>
+<li><a href="TextField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class TextField" class="title">Class TextField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.TextField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TextField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a basic text field. The field may generally contain any data, but
+ may not contain multiple lines.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TextField.html#TextField-java.lang.String-">TextField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new TextField with the given name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TextField.html#TextField-java.lang.String-java.util.Collection-">TextField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</code>
+<div class="block">Creates a new TextField with the given name and possible values.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TextField.html#parse-java.lang.String-">parse</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;str)</code>
+<div class="block">Parses the given string, interpreting empty strings as equivalent to
+ null.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TextField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TextField</h4>
+<pre>public&nbsp;TextField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new TextField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+<a name="TextField-java.lang.String-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TextField</h4>
+<pre>public&nbsp;TextField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</pre>
+<div class="block">Creates a new TextField with the given name and possible values. As a
+ text field may contain any data by definition, any provided options are
+ simply known-good values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+<dd><code>options</code> - A set of known legal options for this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parse(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;str)</pre>
+<div class="block">Parses the given string, interpreting empty strings as equivalent to
+ null. For all other cases, the given string is returned verbatim.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>str</code> - The string to parse, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The given string, or null if the given string was null or empty.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TextField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TextField.html" target="_top">Frames</a></li>
+<li><a href="TextField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TimeField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TimeField.html
new file mode 100644
index 0000000..9d25f21
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TimeField.html
@@ -0,0 +1,392 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TimeField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TimeField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TimeField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TimeField.html" target="_top">Frames</a></li>
+<li><a href="TimeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class TimeField" class="title">Class TimeField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.TimeField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TimeField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a time field. The field may contain only time values which
+ conform to a standard pattern, defined by TimeField.FORMAT.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TimeField.html#FORMAT">FORMAT</a></span></code>
+<div class="block">The time format used by time fields, compatible with SimpleDateFormat.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TimeField.html#TimeField-java.lang.String-">TimeField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new TimeField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TimeField.html#format-java.util.Date-">format</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;time)</code>
+<div class="block">Converts the given time into a string which follows the format used by
+ time fields.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TimeField.html#parse-java.lang.String-">parse</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timeString)</code>
+<div class="block">Parses the given string into a corresponding time.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="FORMAT">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FORMAT</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> FORMAT</pre>
+<div class="block">The time format used by time fields, compatible with SimpleDateFormat.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.TimeField.FORMAT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TimeField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TimeField</h4>
+<pre>public&nbsp;TimeField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new TimeField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;parse(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timeString)
+                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/text/ParseException.html?is-external=true" title="class or interface in java.text">ParseException</a></pre>
+<div class="block">Parses the given string into a corresponding time. The string must
+ follow the standard format used by time fields, as defined by
+ FORMAT and as would be produced by format().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timeString</code> - The time string to parse, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The time corresponding to the given time string, or null if the
+     provided time string was null or blank.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/text/ParseException.html?is-external=true" title="class or interface in java.text">ParseException</a></code> - If the given time string does not conform to the standard format
+     used by time fields.</dd>
+</dl>
+</li>
+</ul>
+<a name="format-java.util.Date-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>format</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;time)</pre>
+<div class="block">Converts the given time into a string which follows the format used by
+ time fields.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>time</code> - The time value to format, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The formatted time, or null if the provided time was null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TimeField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TimeField.html" target="_top">Frames</a></li>
+<li><a href="TimeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TimeZoneField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TimeZoneField.html
new file mode 100644
index 0000000..fed059c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TimeZoneField.html
@@ -0,0 +1,322 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TimeZoneField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TimeZoneField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TimeZoneField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TimeZoneField.html" target="_top">Frames</a></li>
+<li><a href="TimeZoneField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class TimeZoneField" class="title">Class TimeZoneField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.TimeZoneField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TimeZoneField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a time zone field. The field may contain only valid time zone
+ identifiers, as defined by the IANA time zone database. Such identifiers are
+ also valid Java time zone IDs as dictated by TimeZone.getAvailableIDs().</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TimeZoneField.html#TimeZoneField-java.lang.String-">TimeZoneField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new TimeZoneField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TimeZoneField.html#parse-java.lang.String-">parse</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timeZone)</code>
+<div class="block">Parses the given string into a time zone ID string.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TimeZoneField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TimeZoneField</h4>
+<pre>public&nbsp;TimeZoneField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new TimeZoneField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parse(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timeZone)</pre>
+<div class="block">Parses the given string into a time zone ID string. As these strings are
+ equivalent, the only transformation currently performed by this function
+ is to ensure that a blank time zone string is parsed into null.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timeZone</code> - The time zone string to parse, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ID of the time zone corresponding to the given string, or null
+     if the given time zone string was null or blank.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TimeZoneField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TimeZoneField.html" target="_top">Frames</a></li>
+<li><a href="TimeZoneField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/UsernameField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/UsernameField.html
new file mode 100644
index 0000000..7171393
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/UsernameField.html
@@ -0,0 +1,275 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UsernameField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UsernameField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UsernameField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/UsernameField.html" target="_top">Frames</a></li>
+<li><a href="UsernameField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class UsernameField" class="title">Class UsernameField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.UsernameField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">UsernameField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a text field which will contain the uniquely-identifying name of
+ a user.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/UsernameField.html#UsernameField-java.lang.String-">UsernameField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new UsernameField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="UsernameField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UsernameField</h4>
+<pre>public&nbsp;UsernameField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new UsernameField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UsernameField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/UsernameField.html" target="_top">Frames</a></li>
+<li><a href="UsernameField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/BooleanField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/BooleanField.html
new file mode 100644
index 0000000..b84cfa2
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/BooleanField.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.BooleanField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.BooleanField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/BooleanField.html" target="_top">Frames</a></li>
+<li><a href="BooleanField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.BooleanField" class="title">Uses of Class<br>org.apache.guacamole.form.BooleanField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.BooleanField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/BooleanField.html" target="_top">Frames</a></li>
+<li><a href="BooleanField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/DateField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/DateField.html
new file mode 100644
index 0000000..554f549
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/DateField.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.DateField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.DateField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/DateField.html" target="_top">Frames</a></li>
+<li><a href="DateField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.DateField" class="title">Uses of Class<br>org.apache.guacamole.form.DateField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.DateField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/DateField.html" target="_top">Frames</a></li>
+<li><a href="DateField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/EmailField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/EmailField.html
new file mode 100644
index 0000000..0e8f61c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/EmailField.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.EmailField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.EmailField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/EmailField.html" target="_top">Frames</a></li>
+<li><a href="EmailField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.EmailField" class="title">Uses of Class<br>org.apache.guacamole.form.EmailField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.EmailField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/EmailField.html" target="_top">Frames</a></li>
+<li><a href="EmailField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/EnumField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/EnumField.html
new file mode 100644
index 0000000..91a7d96
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/EnumField.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.EnumField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.EnumField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/EnumField.html" target="_top">Frames</a></li>
+<li><a href="EnumField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.EnumField" class="title">Uses of Class<br>org.apache.guacamole.form.EnumField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.EnumField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/EnumField.html" target="_top">Frames</a></li>
+<li><a href="EnumField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/Field.Type.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/Field.Type.html
new file mode 100644
index 0000000..f257300
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/Field.Type.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.Field.Type (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.Field.Type (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/Field.Type.html" target="_top">Frames</a></li>
+<li><a href="Field.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.Field.Type" class="title">Uses of Class<br>org.apache.guacamole.form.Field.Type</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.Field.Type</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/Field.Type.html" target="_top">Frames</a></li>
+<li><a href="Field.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/Field.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/Field.html
new file mode 100644
index 0000000..d8f12a9
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/Field.html
@@ -0,0 +1,396 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.Field (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.Field (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/Field.html" target="_top">Frames</a></li>
+<li><a href="Field.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.Field" class="title">Uses of Class<br>org.apache.guacamole.form.Field</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.form">org.apache.guacamole.form</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.form">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a> in <a href="../../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a> in <a href="../../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">BooleanField</a></span></code>
+<div class="block">Represents a field with strictly one possible value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></span></code>
+<div class="block">Represents a date field.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">EmailField</a></span></code>
+<div class="block">Represents a text field which may contain an email address.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">EnumField</a></span></code>
+<div class="block">Represents an arbitrary field with a finite, enumerated set of possible
+ values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">LanguageField</a></span></code>
+<div class="block">Represents a language field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">MultilineField</a></span></code>
+<div class="block">Represents a field which can contain multiple lines of text.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a></span></code>
+<div class="block">Represents a field which may contain only integer values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">PasswordField</a></span></code>
+<div class="block">Represents a field which contains sensitive text information related to
+ authenticating a user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">TerminalColorSchemeField</a></span></code>
+<div class="block">Represents a terminal color scheme field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a></span></code>
+<div class="block">Represents a basic text field.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></span></code>
+<div class="block">Represents a time field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">TimeZoneField</a></span></code>
+<div class="block">Represents a time zone field.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">UsernameField</a></span></code>
+<div class="block">Represents a text field which will contain the uniquely-identifying name of
+ a user.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> that return types with arguments of type <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">Form.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/Form.html#getFields--">getFields</a></span>()</code>
+<div class="block">Returns a mutable collection of the fields associated with this form.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> with type arguments of type <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">Form.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/Form.html#setFields-java.util.Collection-">setFields</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Sets the collection of fields associated with this form.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> with type arguments of type <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/Form.html#Form-java.lang.String-java.util.Collection-">Form</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Creates a new Form object having the given name and containing the given
+ fields.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a> in <a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> declared as <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CredentialsInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#PASSWORD">PASSWORD</a></span></code>
+<div class="block">A field describing the password HTTP parameter expected by Guacamole
+ during login, if passwords are being used.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CredentialsInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME">USERNAME</a></span></code>
+<div class="block">A field describing the username HTTP parameter expected by Guacamole
+ during login, if usernames are being used.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> that return types with arguments of type <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">CredentialsInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#getFields--">getFields</a></span>()</code>
+<div class="block">Returns all fields required for valid credentials as described by this
+ object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> with parameters of type <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserCredentials.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValue-org.apache.guacamole.form.Field-">getValue</a></span>(<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field)</code>
+<div class="block">Returns the value defined by this UserCrendentials object for the given
+ field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserCredentials.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#removeValue-org.apache.guacamole.form.Field-">removeValue</a></span>(<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field)</code>
+<div class="block">Removes (undefines) the value of the given field returning its previous
+ value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserCredentials.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValue-org.apache.guacamole.form.Field-java.lang.String-">setValue</a></span>(<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field,
+        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Sets the value of the given field.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> with type arguments of type <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#CredentialsInfo-java.util.Collection-">CredentialsInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Creates a new CredentialsInfo object which requires the given fields for
+ any conforming credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-java.util.Collection-">UserCredentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Creates a new UserCredentials object which requires the given fields but
+ does not yet have any defined values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-java.util.Collection-java.util.Map-">UserCredentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields,
+               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</code>
+<div class="block">Creates a new UserCredentials object which requires the given fields and
+ values.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/Field.html" target="_top">Frames</a></li>
+<li><a href="Field.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/FieldOption.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/FieldOption.html
new file mode 100644
index 0000000..7fc93a2
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/FieldOption.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.FieldOption (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.FieldOption (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/FieldOption.html" target="_top">Frames</a></li>
+<li><a href="FieldOption.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.FieldOption" class="title">Uses of Class<br>org.apache.guacamole.form.FieldOption</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.FieldOption</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/FieldOption.html" target="_top">Frames</a></li>
+<li><a href="FieldOption.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/Form.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/Form.html
new file mode 100644
index 0000000..3c1f761
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/Form.html
@@ -0,0 +1,331 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.Form (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.Form (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/Form.html" target="_top">Frames</a></li>
+<li><a href="Form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.Form" class="title">Uses of Class<br>org.apache.guacamole.form.Form</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocols">org.apache.guacamole.protocols</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a> in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionAttributes--">getConnectionAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionAttributes--">getConnectionAttributes</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionAttributes--">getConnectionAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserAttributes--">getUserAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserAttributes--">getUserAttributes</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserAttributes--">getUserAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocols">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a> in <a href="../../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a> that return types with arguments of type <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ProtocolInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#getConnectionForms--">getConnectionForms</a></span>()</code>
+<div class="block">Returns a mutable collection of forms describing all known parameters for
+ a connection using this protocol.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ProtocolInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#getSharingProfileForms--">getSharingProfileForms</a></span>()</code>
+<div class="block">Returns a mutable collection of forms describing all known parameters
+ relevant to a sharing profile whose primary connection uses this
+ protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a> with type arguments of type <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ProtocolInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#setConnectionForms-java.util.Collection-">setConnectionForms</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms)</code>
+<div class="block">Sets the collection of forms describing all known parameters for a
+ connection using this protocol.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ProtocolInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#setSharingProfileForms-java.util.Collection-">setSharingProfileForms</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</code>
+<div class="block">Sets the collection of forms describing all known parameters relevant to
+ a sharing profile whose primary connection uses this protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a> with type arguments of type <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-">ProtocolInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;forms)</code>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-java.util.Collection-">ProtocolInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</code>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-java.util.Collection-">ProtocolInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</code>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/Form.html" target="_top">Frames</a></li>
+<li><a href="Form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/LanguageField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/LanguageField.html
new file mode 100644
index 0000000..1432cdc
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/LanguageField.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.LanguageField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.LanguageField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/LanguageField.html" target="_top">Frames</a></li>
+<li><a href="LanguageField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.LanguageField" class="title">Uses of Class<br>org.apache.guacamole.form.LanguageField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.LanguageField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/LanguageField.html" target="_top">Frames</a></li>
+<li><a href="LanguageField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/MultilineField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/MultilineField.html
new file mode 100644
index 0000000..2167b1a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/MultilineField.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.MultilineField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.MultilineField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/MultilineField.html" target="_top">Frames</a></li>
+<li><a href="MultilineField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.MultilineField" class="title">Uses of Class<br>org.apache.guacamole.form.MultilineField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.MultilineField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/MultilineField.html" target="_top">Frames</a></li>
+<li><a href="MultilineField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/NumericField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/NumericField.html
new file mode 100644
index 0000000..56ff072
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/NumericField.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.NumericField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.NumericField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/NumericField.html" target="_top">Frames</a></li>
+<li><a href="NumericField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.NumericField" class="title">Uses of Class<br>org.apache.guacamole.form.NumericField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.NumericField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/NumericField.html" target="_top">Frames</a></li>
+<li><a href="NumericField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/PasswordField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/PasswordField.html
new file mode 100644
index 0000000..dcf561d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/PasswordField.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.PasswordField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.PasswordField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/PasswordField.html" target="_top">Frames</a></li>
+<li><a href="PasswordField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.PasswordField" class="title">Uses of Class<br>org.apache.guacamole.form.PasswordField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.PasswordField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/PasswordField.html" target="_top">Frames</a></li>
+<li><a href="PasswordField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TerminalColorSchemeField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TerminalColorSchemeField.html
new file mode 100644
index 0000000..4325ebf
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TerminalColorSchemeField.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.TerminalColorSchemeField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.TerminalColorSchemeField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TerminalColorSchemeField.html" target="_top">Frames</a></li>
+<li><a href="TerminalColorSchemeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.TerminalColorSchemeField" class="title">Uses of Class<br>org.apache.guacamole.form.TerminalColorSchemeField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.TerminalColorSchemeField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TerminalColorSchemeField.html" target="_top">Frames</a></li>
+<li><a href="TerminalColorSchemeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TextField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TextField.html
new file mode 100644
index 0000000..a7e9546
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TextField.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.TextField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.TextField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TextField.html" target="_top">Frames</a></li>
+<li><a href="TextField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.TextField" class="title">Uses of Class<br>org.apache.guacamole.form.TextField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.TextField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TextField.html" target="_top">Frames</a></li>
+<li><a href="TextField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TimeField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TimeField.html
new file mode 100644
index 0000000..9ab0833
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TimeField.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.TimeField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.TimeField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TimeField.html" target="_top">Frames</a></li>
+<li><a href="TimeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.TimeField" class="title">Uses of Class<br>org.apache.guacamole.form.TimeField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.TimeField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TimeField.html" target="_top">Frames</a></li>
+<li><a href="TimeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TimeZoneField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TimeZoneField.html
new file mode 100644
index 0000000..eea1d79
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TimeZoneField.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.TimeZoneField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.TimeZoneField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TimeZoneField.html" target="_top">Frames</a></li>
+<li><a href="TimeZoneField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.TimeZoneField" class="title">Uses of Class<br>org.apache.guacamole.form.TimeZoneField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.TimeZoneField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TimeZoneField.html" target="_top">Frames</a></li>
+<li><a href="TimeZoneField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/UsernameField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/UsernameField.html
new file mode 100644
index 0000000..cf62404
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/UsernameField.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.UsernameField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.UsernameField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/UsernameField.html" target="_top">Frames</a></li>
+<li><a href="UsernameField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.UsernameField" class="title">Uses of Class<br>org.apache.guacamole.form.UsernameField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.UsernameField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/UsernameField.html" target="_top">Frames</a></li>
+<li><a href="UsernameField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-frame.html
new file mode 100644
index 0000000..efb575c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-frame.html
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.form (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/form/package-summary.html" target="classFrame">org.apache.guacamole.form</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="BooleanField.html" title="class in org.apache.guacamole.form" target="classFrame">BooleanField</a></li>
+<li><a href="DateField.html" title="class in org.apache.guacamole.form" target="classFrame">DateField</a></li>
+<li><a href="EmailField.html" title="class in org.apache.guacamole.form" target="classFrame">EmailField</a></li>
+<li><a href="EnumField.html" title="class in org.apache.guacamole.form" target="classFrame">EnumField</a></li>
+<li><a href="Field.html" title="class in org.apache.guacamole.form" target="classFrame">Field</a></li>
+<li><a href="Field.Type.html" title="class in org.apache.guacamole.form" target="classFrame">Field.Type</a></li>
+<li><a href="FieldOption.html" title="class in org.apache.guacamole.form" target="classFrame">FieldOption</a></li>
+<li><a href="Form.html" title="class in org.apache.guacamole.form" target="classFrame">Form</a></li>
+<li><a href="LanguageField.html" title="class in org.apache.guacamole.form" target="classFrame">LanguageField</a></li>
+<li><a href="MultilineField.html" title="class in org.apache.guacamole.form" target="classFrame">MultilineField</a></li>
+<li><a href="NumericField.html" title="class in org.apache.guacamole.form" target="classFrame">NumericField</a></li>
+<li><a href="PasswordField.html" title="class in org.apache.guacamole.form" target="classFrame">PasswordField</a></li>
+<li><a href="TerminalColorSchemeField.html" title="class in org.apache.guacamole.form" target="classFrame">TerminalColorSchemeField</a></li>
+<li><a href="TextField.html" title="class in org.apache.guacamole.form" target="classFrame">TextField</a></li>
+<li><a href="TimeField.html" title="class in org.apache.guacamole.form" target="classFrame">TimeField</a></li>
+<li><a href="TimeZoneField.html" title="class in org.apache.guacamole.form" target="classFrame">TimeZoneField</a></li>
+<li><a href="UsernameField.html" title="class in org.apache.guacamole.form" target="classFrame">UsernameField</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-summary.html
new file mode 100644
index 0000000..fe49e75
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-summary.html
@@ -0,0 +1,257 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.form (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.form (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/environment/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/language/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.form</h1>
+<div class="docSummary">
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">BooleanField</a></td>
+<td class="colLast">
+<div class="block">Represents a field with strictly one possible value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></td>
+<td class="colLast">
+<div class="block">Represents a date field.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">EmailField</a></td>
+<td class="colLast">
+<div class="block">Represents a text field which may contain an email address.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">EnumField</a></td>
+<td class="colLast">
+<div class="block">Represents an arbitrary field with a finite, enumerated set of possible
+ values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></td>
+<td class="colLast">
+<div class="block">Represents an arbitrary field, such as an HTTP parameter, the parameter of a
+ remote desktop protocol, or an input field within a form.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></td>
+<td class="colLast">
+<div class="block">All types of fields which are available by default.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></td>
+<td class="colLast">
+<div class="block">Describes an available legal value for an enumerated field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></td>
+<td class="colLast">
+<div class="block">Information which describes logical set of fields.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">LanguageField</a></td>
+<td class="colLast">
+<div class="block">Represents a language field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">MultilineField</a></td>
+<td class="colLast">
+<div class="block">Represents a field which can contain multiple lines of text.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a></td>
+<td class="colLast">
+<div class="block">Represents a field which may contain only integer values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">PasswordField</a></td>
+<td class="colLast">
+<div class="block">Represents a field which contains sensitive text information related to
+ authenticating a user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">TerminalColorSchemeField</a></td>
+<td class="colLast">
+<div class="block">Represents a terminal color scheme field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a></td>
+<td class="colLast">
+<div class="block">Represents a basic text field.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></td>
+<td class="colLast">
+<div class="block">Represents a time field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">TimeZoneField</a></td>
+<td class="colLast">
+<div class="block">Represents a time zone field.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">UsernameField</a></td>
+<td class="colLast">
+<div class="block">Represents a text field which will contain the uniquely-identifying name of
+ a user.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.form Description">Package org.apache.guacamole.form Description</h2>
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/environment/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/language/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-tree.html
new file mode 100644
index 0000000..2025ffe
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-tree.html
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.form Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.form Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/environment/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/language/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.form</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Field</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">BooleanField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">DateField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">EmailField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">EnumField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">LanguageField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">MultilineField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">NumericField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">PasswordField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TerminalColorSchemeField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TextField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TimeField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TimeZoneField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">UsernameField</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Field.Type</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">FieldOption</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Form</span></a></li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/environment/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/language/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-use.html
new file mode 100644
index 0000000..180864d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-use.html
@@ -0,0 +1,232 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.form (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.form (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.form" class="title">Uses of Package<br>org.apache.guacamole.form</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.form">org.apache.guacamole.form</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocols">org.apache.guacamole.protocols</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.form">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> used by <a href="../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/form/class-use/Field.html#org.apache.guacamole.form">Field</a>
+<div class="block">Represents an arbitrary field, such as an HTTP parameter, the parameter of a
+ remote desktop protocol, or an input field within a form.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> used by <a href="../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/form/class-use/Form.html#org.apache.guacamole.net.auth">Form</a>
+<div class="block">Information which describes logical set of fields.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> used by <a href="../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/form/class-use/Field.html#org.apache.guacamole.net.auth.credentials">Field</a>
+<div class="block">Represents an arbitrary field, such as an HTTP parameter, the parameter of a
+ remote desktop protocol, or an input field within a form.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocols">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> used by <a href="../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/form/class-use/Form.html#org.apache.guacamole.protocols">Form</a>
+<div class="block">Information which describes logical set of fields.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/Translatable.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/Translatable.html
new file mode 100644
index 0000000..0fff851
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/Translatable.html
@@ -0,0 +1,237 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Translatable (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Translatable (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Translatable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/Translatable.html" target="_top">Frames</a></li>
+<li><a href="Translatable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Interface Translatable" class="title">Interface Translatable</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Translatable</span></pre>
+<div class="block">An object which is associated with a translatable message that can be passed
+ through an arbitrary translation service, producing a human-readable message
+ in the user's native language.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Translatable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/Translatable.html" target="_top">Frames</a></li>
+<li><a href="Translatable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/TranslatableMessage.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/TranslatableMessage.html
new file mode 100644
index 0000000..753fbd9
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/TranslatableMessage.html
@@ -0,0 +1,345 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableMessage (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableMessage (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableMessage.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableMessage.html" target="_top">Frames</a></li>
+<li><a href="TranslatableMessage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableMessage" class="title">Class TranslatableMessage</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableMessage</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableMessage</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">A message which can be translated using a translation service, providing a
+ translation key and optional set of values to be substituted into the
+ translation string associated with that key.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html#TranslatableMessage-java.lang.String-">TranslatableMessage</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableMessage associated with the given translation
+ key, without any associated variables.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html#TranslatableMessage-java.lang.String-java.lang.Object-">TranslatableMessage</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;variables)</code>
+<div class="block">Creates a new TranslatableMessage associated with the given translation
+ key and associated variables.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html#getKey--">getKey</a></span>()</code>
+<div class="block">Returns the arbitrary key which can be used to look up the message to be
+ displayed in the user's native language.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html#getVariables--">getVariables</a></span>()</code>
+<div class="block">Returns an arbitrary object whose properties should be substituted for
+ the corresponding placeholders within the string associated with the key.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableMessage-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableMessage</h4>
+<pre>public&nbsp;TranslatableMessage(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableMessage associated with the given translation
+ key, without any associated variables.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - The translation key to associate with the TranslatableMessage.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableMessage-java.lang.String-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableMessage</h4>
+<pre>public&nbsp;TranslatableMessage(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;variables)</pre>
+<div class="block">Creates a new TranslatableMessage associated with the given translation
+ key and associated variables.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - The translation key to associate with the TranslatableMessage.</dd>
+<dd><code>variables</code> - An arbitrary object whose properties should be substituted for the
+     corresponding placeholders within the string associated with the
+     given translation key.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getKey--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getKey</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getKey()</pre>
+<div class="block">Returns the arbitrary key which can be used to look up the message to be
+ displayed in the user's native language.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The arbitrary key associated with the human-readable message.</dd>
+</dl>
+</li>
+</ul>
+<a name="getVariables--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getVariables</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getVariables()</pre>
+<div class="block">Returns an arbitrary object whose properties should be substituted for
+ the corresponding placeholders within the string associated with the key.
+ If not applicable, null is returned.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary object whose properties should be substituted for the
+     corresponding placeholders within the string associated with the key,
+     or null if not applicable.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableMessage.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableMessage.html" target="_top">Frames</a></li>
+<li><a href="TranslatableMessage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/class-use/Translatable.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/class-use/Translatable.html
new file mode 100644
index 0000000..1f7d1b5
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/class-use/Translatable.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.language.Translatable (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.language.Translatable (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/Translatable.html" target="_top">Frames</a></li>
+<li><a href="Translatable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.language.Translatable" class="title">Uses of Interface<br>org.apache.guacamole.language.Translatable</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.Translatable</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/Translatable.html" target="_top">Frames</a></li>
+<li><a href="Translatable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableMessage.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableMessage.html
new file mode 100644
index 0000000..bcba102
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableMessage.html
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableMessage (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableMessage (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableMessage.html" target="_top">Frames</a></li>
+<li><a href="TranslatableMessage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableMessage" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableMessage</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.language">org.apache.guacamole.language</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.language">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> in <a href="../../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a> that return <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Translatable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableMessage.html" target="_top">Frames</a></li>
+<li><a href="TranslatableMessage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-frame.html
new file mode 100644
index 0000000..18dc961
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-frame.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.language (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/language/package-summary.html" target="classFrame">org.apache.guacamole.language</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="Translatable.html" title="interface in org.apache.guacamole.language" target="classFrame"><span class="interfaceName">Translatable</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="TranslatableMessage.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableMessage</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-summary.html
new file mode 100644
index 0000000..dd8dc74
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-summary.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.language (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.language (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/net/auth/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.language</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></td>
+<td class="colLast">
+<div class="block">An object which is associated with a translatable message that can be passed
+ through an arbitrary translation service, producing a human-readable message
+ in the user's native language.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></td>
+<td class="colLast">
+<div class="block">A message which can be translated using a translation service, providing a
+ translation key and optional set of values to be substituted into the
+ translation string associated with that key.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/net/auth/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-tree.html
new file mode 100644
index 0000000..6e531bf
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-tree.html
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.language Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.language Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/net/auth/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.language</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableMessage</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language"><span class="typeNameLink">Translatable</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/net/auth/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-use.html
new file mode 100644
index 0000000..805ea27
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-use.html
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.language (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.language (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.language" class="title">Uses of Package<br>org.apache.guacamole.language</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.language">org.apache.guacamole.language</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a> used by <a href="../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/language/class-use/TranslatableMessage.html#org.apache.guacamole.language">TranslatableMessage</a>
+<div class="block">A message which can be translated using a translation service, providing a
+ translation key and optional set of values to be substituted into the
+ translation string associated with that key.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractActiveConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractActiveConnection.html
new file mode 100644
index 0000000..fb3c1fe
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractActiveConnection.html
@@ -0,0 +1,598 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractActiveConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractActiveConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractActiveConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractActiveConnection" class="title">Class AbstractActiveConnection</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractActiveConnection</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractActiveConnection</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></pre>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#AbstractActiveConnection--">AbstractActiveConnection</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#getConnectionIdentifier--">getConnectionIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the connection being actively used.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#getRemoteHost--">getRemoteHost</a></span>()</code>
+<div class="block">Returns the hostname or IP address of the remote host that initiated the
+ connection, if known.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#getSharingProfileIdentifier--">getSharingProfileIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the sharing profile being actively used.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#getStartDate--">getStartDate</a></span>()</code>
+<div class="block">Returns the date and time the connection began.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#getTunnel--">getTunnel</a></span>()</code>
+<div class="block">Returns the connected GuacamoleTunnel being used.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#getUsername--">getUsername</a></span>()</code>
+<div class="block">Returns the name of the user who is using this connection.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#setConnectionIdentifier-java.lang.String-">setConnectionIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;connnectionIdentifier)</code>
+<div class="block">Sets the identifier of the connection being actively used.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#setRemoteHost-java.lang.String-">setRemoteHost</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteHost)</code>
+<div class="block">Sets the hostname or IP address of the remote host that initiated the
+ connection.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#setSharingProfileIdentifier-java.lang.String-">setSharingProfileIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sharingProfileIdentifier)</code>
+<div class="block">Sets the identifier of the sharing profile being actively used.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#setStartDate-java.util.Date-">setStartDate</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;startDate)</code>
+<div class="block">Sets the date and time the connection began.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">setTunnel</a></span>(org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Sets the connected GuacamoleTunnel being used.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#setUsername-java.lang.String-">setUsername</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</code>
+<div class="block">Sets the name of the user who is using this connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.ActiveConnection">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getActiveConnections--">getActiveConnections</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#isConnectable--">isConnectable</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connectable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Shareable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html#getSharingCredentials-java.lang.String-">getSharingCredentials</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractActiveConnection--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractActiveConnection</h4>
+<pre>public&nbsp;AbstractActiveConnection()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getConnectionIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getConnectionIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getConnectionIdentifier--">ActiveConnection</a></code></span></div>
+<div class="block">Returns the identifier of the connection being actively used. Unlike the
+ other information stored in this object, the connection identifier must
+ be present and MAY NOT be null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getConnectionIdentifier--">getConnectionIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the connection being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConnectionIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConnectionIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setConnectionIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;connnectionIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setConnectionIdentifier-java.lang.String-">ActiveConnection</a></code></span></div>
+<div class="block">Sets the identifier of the connection being actively used.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setConnectionIdentifier-java.lang.String-">setConnectionIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connnectionIdentifier</code> - The identifier of the connection being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getSharingProfileIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getSharingProfileIdentifier--">ActiveConnection</a></code></span></div>
+<div class="block">Returns the identifier of the sharing profile being actively used. If
+ the connection is being accessed directly, this will be null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getSharingProfileIdentifier--">getSharingProfileIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the sharing profile being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="setSharingProfileIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSharingProfileIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setSharingProfileIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sharingProfileIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setSharingProfileIdentifier-java.lang.String-">ActiveConnection</a></code></span></div>
+<div class="block">Sets the identifier of the sharing profile being actively used.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setSharingProfileIdentifier-java.lang.String-">setSharingProfileIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sharingProfileIdentifier</code> - The identifier of the sharing profile being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="getStartDate--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStartDate</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getStartDate()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getStartDate--">ActiveConnection</a></code></span></div>
+<div class="block">Returns the date and time the connection began.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getStartDate--">getStartDate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time the connection began, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="setStartDate-java.util.Date-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStartDate</h4>
+<pre>public&nbsp;void&nbsp;setStartDate(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;startDate)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setStartDate-java.util.Date-">ActiveConnection</a></code></span></div>
+<div class="block">Sets the date and time the connection began.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setStartDate-java.util.Date-">setStartDate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>startDate</code> - The date and time the connection began, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRemoteHost--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRemoteHost</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getRemoteHost()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getRemoteHost--">ActiveConnection</a></code></span></div>
+<div class="block">Returns the hostname or IP address of the remote host that initiated the
+ connection, if known. If the hostname or IP address is not known, null
+ is returned.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getRemoteHost--">getRemoteHost</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The hostname or IP address of the remote host, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="setRemoteHost-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRemoteHost</h4>
+<pre>public&nbsp;void&nbsp;setRemoteHost(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteHost)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setRemoteHost-java.lang.String-">ActiveConnection</a></code></span></div>
+<div class="block">Sets the hostname or IP address of the remote host that initiated the
+ connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setRemoteHost-java.lang.String-">setRemoteHost</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>remoteHost</code> - The hostname or IP address of the remote host, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUsername--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUsername</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getUsername()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getUsername--">ActiveConnection</a></code></span></div>
+<div class="block">Returns the name of the user who is using this connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getUsername--">getUsername</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the user who is using this connection, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="setUsername-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUsername</h4>
+<pre>public&nbsp;void&nbsp;setUsername(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setUsername-java.lang.String-">ActiveConnection</a></code></span></div>
+<div class="block">Sets the name of the user who is using this connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setUsername-java.lang.String-">setUsername</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The name of the user who is using this connection, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTunnel--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTunnel</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;getTunnel()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getTunnel--">ActiveConnection</a></code></span></div>
+<div class="block">Returns the connected GuacamoleTunnel being used. This may be null if
+ access to the underlying tunnel is denied.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getTunnel--">getTunnel</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The connected GuacamoleTunnel, or null if permission is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setTunnel</h4>
+<pre>public&nbsp;void&nbsp;setTunnel(org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">ActiveConnection</a></code></span></div>
+<div class="block">Sets the connected GuacamoleTunnel being used.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">setTunnel</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tunnel</code> - The connected GuacamoleTunnel, or null if permission is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractActiveConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html
new file mode 100644
index 0000000..f61bdab
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html
@@ -0,0 +1,366 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractAuthenticatedUser (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractAuthenticatedUser (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractAuthenticatedUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractAuthenticatedUser" class="title">Class AbstractAuthenticatedUser</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractAuthenticatedUser</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractAuthenticatedUser</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></pre>
+<div class="block">Basic implementation of an AuthenticatedUser which uses the username to
+ determine equality. Username comparison is case-sensitive.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.auth.AuthenticatedUser">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#ANONYMOUS_IDENTIFIER">ANONYMOUS_IDENTIFIER</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html#AbstractAuthenticatedUser--">AbstractAuthenticatedUser</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html#getEffectiveUserGroups--">getEffectiveUserGroups</a></span>()</code>
+<div class="block">Returns a read-only set of the identifiers of all user groups which
+ apply to this authenticated user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html#invalidate--">invalidate</a></span>()</code>
+<div class="block">Invalidates this authenticated user and their associated token such that
+ they are no longer logged in.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AuthenticatedUser">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getAuthenticationProvider--">getAuthenticationProvider</a>, <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getCredentials--">getCredentials</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractAuthenticatedUser--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractAuthenticatedUser</h4>
+<pre>public&nbsp;AbstractAuthenticatedUser()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getEffectiveUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEffectiveUserGroups</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getEffectiveUserGroups()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getEffectiveUserGroups--">AuthenticatedUser</a></code></span></div>
+<div class="block">Returns a read-only set of the identifiers of all user groups which
+ apply to this authenticated user. The exact semantics of what user
+ groups apply are up to the implementation, and the user groups within
+ this set may be implied, derived dynamically, inherited through multiple
+ levels of group membership, etc.
+
+ Note that, as with user identifiers, user group identifiers form the
+ basis of identity which applies across authentication providers. It is
+ expected that any two user groups having the same identifier represent
+ the same group, even if defined by different authentication providers.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getEffectiveUserGroups--">getEffectiveUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A read-only set of the identifiers of all user groups which apply
+     to this authenticated user.</dd>
+</dl>
+</li>
+</ul>
+<a name="invalidate--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>invalidate</h4>
+<pre>public&nbsp;void&nbsp;invalidate()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#invalidate--">AuthenticatedUser</a></code></span></div>
+<div class="block">Invalidates this authenticated user and their associated token such that
+ they are no longer logged in. This function will be automatically
+ invoked when the user logs out, or when their session expires.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#invalidate--">invalidate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractAuthenticatedUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html
new file mode 100644
index 0000000..6cfc48c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html
@@ -0,0 +1,650 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractAuthenticationProvider (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractAuthenticationProvider (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractAuthenticationProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractAuthenticationProvider" class="title">Class AbstractAuthenticationProvider</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractAuthenticationProvider</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractAuthenticationProvider</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></pre>
+<div class="block">Base implementation of AuthenticationProvider which provides default
+ implementations of most functions. Implementations must provide their
+ own <a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getIdentifier--"><code>AuthenticationProvider.getIdentifier()</code></a>, but otherwise need only override an implemented
+ function if they wish to actually implement the functionality defined for
+ that function by the AuthenticationProvider interface.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#AbstractAuthenticationProvider--">AbstractAuthenticationProvider</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getResource--">getResource</a></span>()</code>
+<div class="block">Returns an arbitrary REST resource representing this
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#shutdown--">shutdown</a></span>()</code>
+<div class="block">Frees all resources associated with this AuthenticationProvider.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AuthenticationProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getIdentifier--">getIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractAuthenticationProvider--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractAuthenticationProvider</h4>
+<pre>public&nbsp;AbstractAuthenticationProvider()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getResource--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResource</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getResource()
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns an arbitrary REST resource representing this
+ AuthenticationProvider. The REST resource returned must be properly
+ annotated with JSR-311 annotations, and may serve as the root resource
+ for any number of subresources. The returned resource is ultimately
+ exposed at ".../api/ext/IDENTIFIER/", where IDENTIFIER is the identifier
+ of this AuthenticationProvider.
+
+ REST resources returned by this function will be reachable by all users,
+ regardless of whether they have authenticated. REST resources which
+ must only be accessible by authenticated users should instead be returned
+ from UserContext.getResource().
+
+ <p>This implementation simply returns <code>null</code>. Implementations that
+ wish to expose REST resources which are not specific to a user's session
+ should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getResource--">getResource</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary REST resource, annotated with JSR-311 annotations, or
+     null if no such resource is defined.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the REST resource cannot be returned due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="authenticateUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>authenticateUser</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticateUser(<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.
+
+ <p>This implementation performs no authentication whatsoever, ignoring
+ the provided <code>credentials</code> and simply returning <code>null</code>. Any
+ authentication attempt will thus fall through to other
+ <a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticationProvider</code></a> implementations, perhaps within other
+ installed extensions, with this <code>AuthenticationProvider</code> making no
+ claim regarding the user's identity nor whether the user should be
+ allowed or disallowed from accessing Guacamole. Implementations that wish
+ to authenticate users should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>credentials</code> - The credentials to use for authentication.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An AuthenticatedUser representing the user authenticated by the
+     given credentials, if any, or null if the credentials are invalid.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while authenticating the user, or if access is
+     temporarily, permanently, or conditionally denied, such as if the
+     supplied credentials are insufficient or invalid.</dd>
+</dl>
+</li>
+</ul>
+<a name="updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateAuthenticatedUser</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;updateAuthenticatedUser(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                                                 <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser. Note that because
+ this function will be called for all future requests after initial
+ authentication, including tunnel requests, care must be taken to avoid
+ using functions of HttpServletRequest which invalidate the entire request
+ body, such as getParameter(). Doing otherwise may cause the
+ GuacamoleHTTPTunnelServlet to fail.
+
+ <p>This implementation simply returns the provided
+ <code>authenticatedUser</code> without modification. Implementations that
+ wish to update a user's <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticatedUser</code></a> object with respect to
+ new <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><code>Credentials</code></a> received in requests which follow the initial,
+ successful authentication attempt should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dd><code>credentials</code> - The credentials to use for authentication.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An updated AuthenticatedUser representing the user authenticated by
+     the given credentials, if any, or null if the credentials are
+     invalid.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the AuthenticatedUser.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserContext</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;getUserContext(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)
+                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.
+
+ <p>This implementation simply returns <code>null</code>, effectively allowing
+ authentication to continue but refusing to provide data for the given
+ user. Implementations that wish to veto the authentication results of
+ other <a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticationProvider</code></a> implementations or provide data for
+ authenticated users should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A UserContext describing the permissions, connection, connection
+     groups, etc. accessible or associated with the given authenticated
+     user, or null if this AuthenticationProvider refuses to provide any
+     such data.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateUserContext</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;updateUserContext(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                                     <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                                     <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext. Note that because this function
+ will be called for all future requests after initial authentication,
+ including tunnel requests, care must be taken to avoid using functions
+ of HttpServletRequest which invalidate the entire request body, such as
+ getParameter(). Doing otherwise may cause the GuacamoleHTTPTunnelServlet
+ to fail.
+
+ <p>This implementation simply returns the provided <code>context</code>
+ without modification. Implementations that wish to update a user's
+ <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><code>UserContext</code></a> object with respect to newly-updated
+ <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticatedUser</code></a> or <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><code>Credentials</code></a> (such as those received
+ in requests which follow the initial, successful authentication attempt)
+ should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - The existing UserContext belonging to the user in question.</dd>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dd><code>credentials</code> - The credentials which were most recently submitted. These are not
+     guaranteed to be the same as the credentials associated with the
+     AuthenticatedUser when they originally authenticated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An updated UserContext describing the permissions, connection,
+     connection groups, etc. accessible or associated with the given
+     authenticated user, or null if this AuthenticationProvider refuses
+     to provide any such data.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decorate</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorate(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                            <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                            <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary. Each UserContext created via getUserContext()
+ will be passed to the decorate() functions of all other
+ AuthenticationProviders, allowing those AuthenticationProviders to
+ augment (or perhaps even limit) the functionality or data provided.
+
+ <p>This implementation simply returns the provided <code>context</code>
+ without performing any decoration. Implementations that wish to augment
+ the functionality or data provided by other
+ <a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticationProvider</code></a> implementations should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - An existing UserContext generated by getUserContext() of a different
+     AuthenticationProvider.</dd>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser object representing the user associated with
+     the given UserContext.</dd>
+<dd><code>credentials</code> - The credentials which were most recently submitted for the given
+     AuthenticatedUser. These are not guaranteed to be the same as the
+     credentials associated with the AuthenticatedUser object, which are
+     the credentials provided when the user originally authenticated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A decorated (wrapped) UserContext object, or the original,
+     undecorated UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the UserContext cannot be decorated due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>redecorate</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;redecorate(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+                              <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                              <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                              <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary. Each UserContext created via updateUserContext()
+ will be passed to the decorate() functions of all other
+ AuthenticationProviders, allowing those AuthenticationProviders to
+ augment (or perhaps even limit) the functionality or data provided.
+
+ <p>This implementation simply invokes
+ <a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-"><code>decorate(UserContext,AuthenticatedUser,Credentials)</code></a> with the
+ provided <code>context</code>, <code>authenticatedUser</code>, and
+ <code>credentials</code>. Implementations which override
+ <a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-"><code>decorate(UserContext,AuthenticatedUser,Credentials)</code></a> and which
+ need to update their existing decorated object following possible
+ updates to the <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><code>UserContext</code></a> or <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticatedUser</code></a> (rather
+ than generate an entirely new decorated object) should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>decorated</code> - The UserContext returned when decorate() was invoked on this
+     AuthenticationProvider for the UserContext which was just updated
+     via a call to updateUserContext().</dd>
+<dd><code>context</code> - An existing UserContext generated by updateUserContext() of a
+     different AuthenticationProvider.</dd>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser object representing the user associated with
+     the given UserContext.</dd>
+<dd><code>credentials</code> - The credentials which were most recently submitted for the given
+     AuthenticatedUser. These are not guaranteed to be the same as the
+     credentials associated with the AuthenticatedUser object, which are
+     the credentials provided when the user originally authenticated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A decorated (wrapped) UserContext object, or the original,
+     undecorated UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the UserContext cannot be decorated due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="shutdown--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>shutdown</h4>
+<pre>public&nbsp;void&nbsp;shutdown()</pre>
+<div class="block">Frees all resources associated with this AuthenticationProvider. This
+ function will be automatically invoked when the Guacamole server is
+ shutting down.
+
+ <p>This implementation does nothing. Implementations that wish to perform
+ cleanup tasks when the <a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticationProvider</code></a> is being unloaded
+ should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#shutdown--">shutdown</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractAuthenticationProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractConnection.html
new file mode 100644
index 0000000..1c644e2
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractConnection.html
@@ -0,0 +1,490 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractConnection" class="title">Class AbstractConnection</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractConnection</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractConnection</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></pre>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#AbstractConnection--">AbstractConnection</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.protocol.GuacamoleConfiguration</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getConfiguration--">getConfiguration</a></span>()</code>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name assigned to this Connection.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getParentIdentifier--">getParentIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a></span>()</code>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></span>(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;configuration)</code>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name assigned to this Connection.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</code>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connection">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getHistory--">getHistory</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getLastActive--">getLastActive</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connectable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractConnection--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractConnection</h4>
+<pre>public&nbsp;AbstractConnection()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getName--">Connection</a></code></span></div>
+<div class="block">Returns the name assigned to this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setName-java.lang.String-">Connection</a></code></span></div>
+<div class="block">Sets the name assigned to this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setName-java.lang.String-">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParentIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParentIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParentIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getParentIdentifier--">Connection</a></code></span></div>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getParentIdentifier--">getParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier of the parent ConnectionGroup for
+ this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParentIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParentIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setParentIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setParentIdentifier-java.lang.String-">Connection</a></code></span></div>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parentIdentifier</code> - The unique identifier of the parent 
+ ConnectionGroup for this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre>public&nbsp;org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;getConfiguration()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getConfiguration--">Connection</a></code></span></div>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection. Note
+ that because configurations may contain sensitive information, some data
+ in this configuration may be omitted or tokenized.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getConfiguration--">getConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleConfiguration associated with this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConfiguration</h4>
+<pre>public&nbsp;void&nbsp;setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;configuration)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">Connection</a></code></span></div>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>configuration</code> - The GuacamoleConfiguration to associate with this
+               Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getSharingProfileIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getSharingProfileIdentifiers()
+                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getSharingProfileIdentifiers--">Connection</a></code></span></div>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active. The level of access granted to a
+ joining user is dictated by the connection parameters associated with
+ the sharing profile, not necessarily the parameters of the primary
+ connection being joined.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set of identifiers representing the sharing profiles for this
+     connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while fetching the sharing profiles for this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractConnectionGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractConnectionGroup.html
new file mode 100644
index 0000000..5c83a30
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractConnectionGroup.html
@@ -0,0 +1,469 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractConnectionGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractConnectionGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractConnectionGroup" class="title">Class AbstractConnectionGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractConnectionGroup</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractConnectionGroup</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></pre>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ConnectionGroup">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#AbstractConnectionGroup--">AbstractConnectionGroup</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of this connection.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</code>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</code>
+<div class="block">Set the type of this ConnectionGroup.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.ConnectionGroup">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connectable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractConnectionGroup--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractConnectionGroup</h4>
+<pre>public&nbsp;AbstractConnectionGroup()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getName--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setName-java.lang.String-">ConnectionGroup</a></code></span></div>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setName-java.lang.String-">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParentIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParentIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParentIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getParentIdentifier--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParentIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParentIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setParentIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setParentIdentifier-java.lang.String-">ConnectionGroup</a></code></span></div>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parentIdentifier</code> - The unique identifier of the parent 
+ ConnectionGroup for this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;getType()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the type of this connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">getType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the type of this connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setType</h4>
+<pre>public&nbsp;void&nbsp;setType(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">ConnectionGroup</a></code></span></div>
+<div class="block">Set the type of this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - The type of this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractIdentifiable.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractIdentifiable.html
new file mode 100644
index 0000000..f9bc803
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractIdentifiable.html
@@ -0,0 +1,355 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractIdentifiable (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractIdentifiable (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractIdentifiable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractIdentifiable.html" target="_top">Frames</a></li>
+<li><a href="AbstractIdentifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractIdentifiable" class="title">Class AbstractIdentifiable</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractIdentifiable</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractIdentifiable</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></pre>
+<div class="block">Abstract implementation of Identifiable which provides equals() and
+ hashCode() implementations which use the identifier to determine equality.
+ The identifier comparison is case-sensitive.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#AbstractIdentifiable--">AbstractIdentifiable</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;other)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractIdentifiable--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractIdentifiable</h4>
+<pre>public&nbsp;AbstractIdentifiable()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;other)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractIdentifiable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractIdentifiable.html" target="_top">Frames</a></li>
+<li><a href="AbstractIdentifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractSharingProfile.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractSharingProfile.html
new file mode 100644
index 0000000..a6e038d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractSharingProfile.html
@@ -0,0 +1,517 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractSharingProfile (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractSharingProfile (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractSharingProfile.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="AbstractSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractSharingProfile" class="title">Class AbstractSharingProfile</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractSharingProfile</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractSharingProfile</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></pre>
+<div class="block">Base implementation of a sharing profile which can be used to share a
+ Guacamole connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#AbstractSharingProfile--">AbstractSharingProfile</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#getParameters--">getParameters</a></span>()</code>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#setParameters-java.util.Map-">setParameters</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</code>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;primaryConnectionIdentifier)</code>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractSharingProfile--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractSharingProfile</h4>
+<pre>public&nbsp;AbstractSharingProfile()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getName--">SharingProfile</a></code></span></div>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this SharingProfile.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setName-java.lang.String-">SharingProfile</a></code></span></div>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setName-java.lang.String-">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPrimaryConnectionIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPrimaryConnectionIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPrimaryConnectionIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getPrimaryConnectionIdentifier--">SharingProfile</a></code></span></div>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection. The primary connection is the connection that this sharing
+ profile can be used to share.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the primary connection associated with this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPrimaryConnectionIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPrimaryConnectionIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setPrimaryConnectionIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;primaryConnectionIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">SharingProfile</a></code></span></div>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection. The primary connection is the connection that this sharing
+ profile can be used to share.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>primaryConnectionIdentifier</code> - The identifier of the primary connection associated with this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParameters--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameters</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getParameters()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getParameters--">SharingProfile</a></code></span></div>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs. Changes to this map will affect the parameters stored
+ within this sharing profile. The differences in these parameters compared
+ to those of the associated primary connection yield different levels of
+ access to users joining the primary connection via this sharing profile.
+ Note that because configurations may contain sensitive information, some
+ data in this map may be omitted or tokenized.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getParameters--">getParameters</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map which contains all connection parameter name/value pairs as
+     key/value pairs.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParameters-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParameters</h4>
+<pre>public&nbsp;void&nbsp;setParameters(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setParameters-java.util.Map-">SharingProfile</a></code></span></div>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map. Key/value pairs within the map represent parameter name/value
+ pairs. The differences in these parameters compared to those of the
+ associated primary connection yield different levels of access to users
+ joining the primary connection via this sharing profile.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setParameters-java.util.Map-">setParameters</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parameters</code> - A map which contains all connection parameter name/value pairs as
+     key/value pairs.</dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractSharingProfile.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="AbstractSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUser.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUser.html
new file mode 100644
index 0000000..4af6a06
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUser.html
@@ -0,0 +1,763 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractUser (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractUser (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractUser" class="title">Class AbstractUser</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractUser</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractUser</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></pre>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.User">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#AbstractUser--">AbstractUser</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getEffectivePermissions--">getEffectivePermissions</a></span>()</code>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getHistory--">getHistory</a></span>()</code>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getLastActive--">getLastActive</a></span>()</code>
+<div class="block">Returns the date and time that this user was last active.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getPassword--">getPassword</a></span>()</code>
+<div class="block">Returns this user's password.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#setPassword-java.lang.String-">setPassword</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</code>
+<div class="block">Sets this user's password.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractUser--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractUser</h4>
+<pre>public&nbsp;AbstractUser()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getPassword--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPassword</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPassword()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getPassword--">User</a></code></span></div>
+<div class="block">Returns this user's password. Note that the password returned may be
+ hashed or completely arbitrary.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getPassword--">getPassword</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A String which may (or may not) be the user's password.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPassword-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPassword</h4>
+<pre>public&nbsp;void&nbsp;setPassword(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#setPassword-java.lang.String-">User</a></code></span></div>
+<div class="block">Sets this user's password. Note that while this function is guaranteed
+ to change the password of this User object, there is no guarantee that
+ getPassword() will return the value given to setPassword().</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#setPassword-java.lang.String-">setPassword</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>password</code> - The password to set.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.
+
+ <p>This implementation simply an immutable, empty map. Implementations
+ that wish to expose custom attributes should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.
+
+ <p>This implementation simply ignores all attributes given.
+ Implementations that wish to support modification of custom attributes
+ should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="getLastActive--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastActive</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getLastActive()</pre>
+<div class="block">Returns the date and time that this user was last active. If the user
+ was never active, the time that the user was last active is unknown, or
+ this information is not visible to the current user, this may be null.
+
+ <p>This implementation simply returns <code>null</code>. Implementations that
+ wish to expose the date and time that a user was last active should
+ override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getLastActive--">getLastActive</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time this user was last active, or null if this
+     information is unavailable or inapplicable.</dd>
+</dl>
+</li>
+</ul>
+<a name="getHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHistory</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;&nbsp;getHistory()
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions. ActivityRecords
+ in this list will be sorted in descending order of end time (active
+ sessions are first), and then in descending order of start time
+ (newer sessions are first).
+
+ <p>This implementation simply an immutable, empty list. Implementations
+ that wish to expose user login history should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getHistory--">getHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A list of ActivityRecords representing the login history of this
+     User.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while reading the history of this user, or if
+     permission is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSystemPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSystemPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>&nbsp;getSystemPermissions()
+                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all system-level permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A SystemPermissionSet of all system-level permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionPermissions()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all connection permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionGroupPermissions()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all connection group permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection group permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserPermissions()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all user permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserGroupPermissions()
+                                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all user group permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user group permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getActiveConnectionPermissions()
+                                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all active connection permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfilePermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfilePermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getSharingProfilePermissions()</pre>
+<div class="block">Returns all sharing profile permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all sharing profile permissions granted to
+     this object.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroups</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getUserGroups()
+                               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable user groups of which this user is a member.
+ If permission is granted for the current user to modify the membership of
+ this user, then the returned set will be mutable, and any such
+ modifications should be made through changes to the returned set.
+
+ <p>This implementation simply an immutable, empty related object set.
+ Implementations that wish to expose group membership should override
+ this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getUserGroups--">getUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups of which this user is a member.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEffectivePermissions--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getEffectivePermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>&nbsp;getEffectivePermissions()
+                                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a read-only view of all permissions granted to this user. The
+ exact semantics of what permissions are granted are up to the
+ implementation, and the permissions within this view may be implied,
+ derived dynamically, inherited through multiple levels of group
+ membership, etc.
+
+ <p>This implementation simply returns <code>this</code>. Implementations that
+ wish to expose permissions which apply indirectly (such as through
+ group inheritance) should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getEffectivePermissions--">getEffectivePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A read-only view of the permissions which are granted to this user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUserContext.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUserContext.html
new file mode 100644
index 0000000..8d53706
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUserContext.html
@@ -0,0 +1,855 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractUserContext (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractUserContext (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractUserContext.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractUserContext" class="title">Class AbstractUserContext</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractUserContext</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractUserContext</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></pre>
+<div class="block">Base implementation of UserContext which provides default implementations of
+ most functions. Implementations must provide their own <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#self--"><code>UserContext.self()</code></a> and
+ <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--"><code>UserContext.getAuthenticationProvider()</code></a>, but otherwise need only override an
+ implemented function if they wish to actually implement the functionality
+ defined for that function by the UserContext interface.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#DEFAULT_ROOT_CONNECTION_GROUP">DEFAULT_ROOT_CONNECTION_GROUP</a></span></code>
+<div class="block">The unique identifier that will be used for the root connection group if
+ <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--"><code>getRootConnectionGroup()</code></a> is not overridden.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#AbstractUserContext--">AbstractUserContext</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionAttributes--">getConnectionAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getResource--">getResource</a></span>()</code>
+<div class="block">Returns an arbitrary REST resource representing this UserContext.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></span>()</code>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserAttributes--">getUserAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#invalidate--">invalidate</a></span>()</code>
+<div class="block">Invalidates this user context, releasing all associated resources.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.UserContext">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a>, <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#self--">self</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="DEFAULT_ROOT_CONNECTION_GROUP">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DEFAULT_ROOT_CONNECTION_GROUP</h4>
+<pre>protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> DEFAULT_ROOT_CONNECTION_GROUP</pre>
+<div class="block">The unique identifier that will be used for the root connection group if
+ <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--"><code>getRootConnectionGroup()</code></a> is not overridden.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.guacamole.net.auth.AbstractUserContext.DEFAULT_ROOT_CONNECTION_GROUP">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractUserContext--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractUserContext</h4>
+<pre>public&nbsp;AbstractUserContext()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getResource--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResource</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getResource()
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns an arbitrary REST resource representing this UserContext. The
+ REST resource returned must be properly annotated with JSR-311
+ annotations, and may serve as the root resource for any number of
+ subresources. The returned resource is ultimately exposed at
+ ".../api/session/ext/IDENTIFIER/", where IDENTIFIER is the identifier of
+ the AuthenticationProvider associated with this UserContext.
+
+ REST resources returned by this function will only be reachable by
+ authenticated users with valid authentication tokens. REST resources
+ which should be accessible by all users regardless of whether they have
+ authenticated should instead be returned from
+ AuthenticationProvider.getResource().
+
+ <p>This implementation simply returns <code>null</code>. Implementations that
+ wish to expose REST resources specific to a user's session should
+ override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getResource--">getResource</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary REST resource, annotated with JSR-311 annotations, or
+     null if no such resource is defined.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the REST resource cannot be returned due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;&nbsp;getUserDirectory()
+                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.
+
+ <p>This implementation returns a <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a> which contains only
+ the <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><code>User</code></a> returned by <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#self--"><code>UserContext.self()</code></a> (the current user
+ associated with this <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><code>UserContext</code></a>. Implementations that wish to
+ expose the existence of other users should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">getUserDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the restrictions
+         of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;&nbsp;getUserGroupDirectory()
+                                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.
+
+ <p>This implementation simply returns an empty <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>.
+ Implementations that wish to expose user groups should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the restrictions
+     of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;getConnectionDirectory()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.
+
+ <p>This implementation simply returns an empty <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>.
+ Implementations that wish to expose connections should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of 
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;getConnectionGroupDirectory()
+                                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.
+
+ <p>This implementation returns a <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a> which contains only
+ the root connection group returned by <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--"><code>getRootConnectionGroup()</code></a>.
+ Implementations that wish to provide a structured connection hierarchy
+ should override this function. If only a flat list of connections will
+ be used, only <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--"><code>getConnectionDirectory()</code></a> needs to be overridden.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;&nbsp;getActiveConnectionDirectory()
+                                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.
+
+ <p>This implementation simply returns an empty <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>.
+ Implementations that wish to expose the status of active connections
+ should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of the
+     user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;&nbsp;getSharingProfileDirectory()
+                                                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.
+
+ <p>This implementation simply returns an empty <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>.
+ Implementations that wish to provide screen sharing functionality
+ through the use of sharing profiles should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of the
+     user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionHistory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;getConnectionHistory()
+                                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves all connection records visible to current user. Connection
+ history records describe the start and end times of connections, and
+ correspond to the times that users connect or disconnect to individual
+ remote desktops. The resulting set of connection records can be further
+ filtered and ordered using the methods defined on ActivityRecordSet.
+
+ <p>This implementation simply returns an empty <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>.
+ Implementations that wish to expose connection usage history should
+ override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">getConnectionHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all connection records visible to the current user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the connection records.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserHistory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;&nbsp;getUserHistory()
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves all user history records visible to current user. User history
+ records describe the start and end times of user sessions, and correspond
+ to the times that users logged in or out. The resulting set of user
+ records can be further filtered and ordered using the methods defined on
+ ActivityRecordSet.
+
+ <p>This implementation simply returns an empty <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>.
+ Implementations that wish to expose user login/logout history should
+ override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">getUserHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all user records visible to the current user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user records.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRootConnectionGroup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRootConnectionGroup</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;getRootConnectionGroup()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.
+
+ <p>This implementation returns a new <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionGroup</code></a> with the
+ identifier defined by <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#DEFAULT_ROOT_CONNECTION_GROUP"><code>DEFAULT_ROOT_CONNECTION_GROUP</code></a> and
+ containing all connections exposed by the <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a> returned by
+ <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--"><code>getConnectionDirectory()</code></a>. Implementations that wish to provide
+ a structured connection hierarchy should override this function. If only
+ a flat list of connections will be used, only
+ <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--"><code>getConnectionDirectory()</code></a> needs to be overridden.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A connection group whose operations are bound by the restrictions
+         of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getUserAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to users. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.
+
+ <p>This implementation simply returns an empty <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a>.
+ Implementations that wish to expose custom user attributes as fields
+ within user edit screens should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserAttributes--">getUserAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to users.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getUserGroupAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to user groups. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.
+
+ <p>This implementation simply returns an empty <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a>.
+ Implementations that wish to expose custom user group attributes as
+ fields within user group edit screens should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to connections. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.
+
+ <p>This implementation simply returns an empty <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a>.
+ Implementations that wish to expose custom connection attributes as
+ fields within connection edit screens should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionAttributes--">getConnectionAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to connections.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionGroupAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups. This collection will contain only those attributes which the
+ current user has general permission to view or modify. If there are no
+ such attributes, this collection will be empty.
+
+ <p>This implementation simply returns an empty <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a>.
+ Implementations that wish to expose custom connection group attributes
+ as fields within connection group edit screens should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to connection groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getSharingProfileAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.
+ This collection will contain only those attributes which the current user
+ has general permission to view or modify. If there are no such
+ attributes, this collection will be empty.
+
+ <p>This implementation simply returns an empty <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a>.
+ Implementations that wish to expose custom sharing profile attributes as
+ fields within sharing profile edit screens should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to sharing profile.</dd>
+</dl>
+</li>
+</ul>
+<a name="invalidate--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>invalidate</h4>
+<pre>public&nbsp;void&nbsp;invalidate()</pre>
+<div class="block">Invalidates this user context, releasing all associated resources. This
+ function will be invoked when the user logs out, or when their session
+ is automatically invalidated.
+
+ <p>This implementation does nothing. Implementations that wish to perform
+ cleanup tasks when the user associated with this <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><code>UserContext</code></a> is
+ being logged out should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#invalidate--">invalidate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractUserContext.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUserGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUserGroup.html
new file mode 100644
index 0000000..10ec1e5
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUserGroup.html
@@ -0,0 +1,671 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractUserGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractUserGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractUserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractUserGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractUserGroup" class="title">Class AbstractUserGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractUserGroup</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">AbstractUserGroup</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></pre>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#AbstractUserGroup--">AbstractUserGroup</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUsers--">getMemberUsers</a></span>()</code>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractUserGroup--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractUserGroup</h4>
+<pre>public&nbsp;AbstractUserGroup()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.
+
+ <p>This implementation simply an immutable, empty map. Implementations
+ that wish to expose custom attributes should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.
+
+ <p>This implementation simply ignores all attributes given.
+ Implementations that wish to support modification of custom attributes
+ should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSystemPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSystemPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>&nbsp;getSystemPermissions()
+                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all system-level permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A SystemPermissionSet of all system-level permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionPermissions()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all connection permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionGroupPermissions()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all connection group permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection group permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserPermissions()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all user permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserGroupPermissions()
+                                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all user group permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user group permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getActiveConnectionPermissions()
+                                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all active connection permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfilePermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfilePermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getSharingProfilePermissions()</pre>
+<div class="block">Returns all sharing profile permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all sharing profile permissions granted to
+     this object.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroups</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getUserGroups()
+                               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member. If permission is granted for the current user to modify the
+ membership of this user group, then the returned set will be mutable,
+ and any such modifications should be made through changes to the
+ returned set.
+
+ <p>This implementation simply an immutable, empty related object set.
+ Implementations that wish to expose group membership should override
+ this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getUserGroups--">getUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups of which this user group is a
+     member.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMemberUsers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMemberUsers</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getMemberUsers()
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable users that are members of this user group.
+ If permission is granted for the current user to modify the members of
+ this group, then the returned set will be mutable, and any such
+ modifications should be made through changes to the returned set.
+
+ <p>This implementation simply an immutable, empty related object set.
+ Implementations that wish to expose group membership should override
+ this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUsers--">getMemberUsers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set all readable users that are members of this user group,
+     which may be mutable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the users.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMemberUserGroups--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getMemberUserGroups</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getMemberUserGroups()
+                                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group. If permission is granted for the current user to modify the
+ members of this group, then the returned set will be mutable, and any
+ such modifications should be made through changes to the returned set.
+
+ <p>This implementation simply an immutable, empty related object set.
+ Implementations that wish to expose group membership should override
+ this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups that are members of this user
+     group, which may be mutable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractUserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractUserGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActiveConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActiveConnection.html
new file mode 100644
index 0000000..d7c128c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActiveConnection.html
@@ -0,0 +1,590 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ActiveConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ActiveConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":18,"i1":18,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":18,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActiveConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="ActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface ActiveConnection" class="title">Interface ActiveConnection</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">ActiveConnection</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</pre>
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>default org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>default int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getActiveConnections--">getActiveConnections</a></span>()</code>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getConnectionIdentifier--">getConnectionIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the connection being actively used.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getRemoteHost--">getRemoteHost</a></span>()</code>
+<div class="block">Returns the hostname or IP address of the remote host that initiated the
+ connection, if known.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getSharingProfileIdentifier--">getSharingProfileIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the sharing profile being actively used.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getStartDate--">getStartDate</a></span>()</code>
+<div class="block">Returns the date and time the connection began.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getTunnel--">getTunnel</a></span>()</code>
+<div class="block">Returns the connected GuacamoleTunnel being used.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getUsername--">getUsername</a></span>()</code>
+<div class="block">Returns the name of the user who is using this connection.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>default boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#isConnectable--">isConnectable</a></span>()</code>
+<div class="block">Returns whether this ActiveConnection may be joined through a call to
+ <a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>
+ by the user that retrieved this ActiveConnection.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setConnectionIdentifier-java.lang.String-">setConnectionIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;connnectionIdentifier)</code>
+<div class="block">Sets the identifier of the connection being actively used.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setRemoteHost-java.lang.String-">setRemoteHost</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteHost)</code>
+<div class="block">Sets the hostname or IP address of the remote host that initiated the
+ connection.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setSharingProfileIdentifier-java.lang.String-">setSharingProfileIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sharingProfileIdentifier)</code>
+<div class="block">Sets the identifier of the sharing profile being actively used.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setStartDate-java.util.Date-">setStartDate</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;startDate)</code>
+<div class="block">Sets the date and time the connection began.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">setTunnel</a></span>(org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Sets the connected GuacamoleTunnel being used.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setUsername-java.lang.String-">setUsername</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</code>
+<div class="block">Sets the name of the user who is using this connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connectable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Shareable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html#getSharingCredentials-java.lang.String-">getSharingCredentials</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getConnectionIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getConnectionIdentifier()</pre>
+<div class="block">Returns the identifier of the connection being actively used. Unlike the
+ other information stored in this object, the connection identifier must
+ be present and MAY NOT be null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the connection being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConnectionIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConnectionIdentifier</h4>
+<pre>void&nbsp;setConnectionIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;connnectionIdentifier)</pre>
+<div class="block">Sets the identifier of the connection being actively used.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connnectionIdentifier</code> - The identifier of the connection being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getSharingProfileIdentifier()</pre>
+<div class="block">Returns the identifier of the sharing profile being actively used. If
+ the connection is being accessed directly, this will be null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the sharing profile being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="setSharingProfileIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSharingProfileIdentifier</h4>
+<pre>void&nbsp;setSharingProfileIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sharingProfileIdentifier)</pre>
+<div class="block">Sets the identifier of the sharing profile being actively used.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sharingProfileIdentifier</code> - The identifier of the sharing profile being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="getStartDate--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStartDate</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getStartDate()</pre>
+<div class="block">Returns the date and time the connection began.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time the connection began, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="setStartDate-java.util.Date-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStartDate</h4>
+<pre>void&nbsp;setStartDate(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;startDate)</pre>
+<div class="block">Sets the date and time the connection began.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>startDate</code> - The date and time the connection began, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRemoteHost--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRemoteHost</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getRemoteHost()</pre>
+<div class="block">Returns the hostname or IP address of the remote host that initiated the
+ connection, if known. If the hostname or IP address is not known, null
+ is returned.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The hostname or IP address of the remote host, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="setRemoteHost-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRemoteHost</h4>
+<pre>void&nbsp;setRemoteHost(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteHost)</pre>
+<div class="block">Sets the hostname or IP address of the remote host that initiated the
+ connection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>remoteHost</code> - The hostname or IP address of the remote host, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUsername--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUsername</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getUsername()</pre>
+<div class="block">Returns the name of the user who is using this connection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the user who is using this connection, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="setUsername-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUsername</h4>
+<pre>void&nbsp;setUsername(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</pre>
+<div class="block">Sets the name of the user who is using this connection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The name of the user who is using this connection, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTunnel--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTunnel</h4>
+<pre>org.apache.guacamole.net.GuacamoleTunnel&nbsp;getTunnel()</pre>
+<div class="block">Returns the connected GuacamoleTunnel being used. This may be null if
+ access to the underlying tunnel is denied.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The connected GuacamoleTunnel, or null if permission is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTunnel</h4>
+<pre>void&nbsp;setTunnel(org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</pre>
+<div class="block">Sets the connected GuacamoleTunnel being used.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tunnel</code> - The connected GuacamoleTunnel, or null if permission is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="isConnectable--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isConnectable</h4>
+<pre>default&nbsp;boolean&nbsp;isConnectable()</pre>
+<div class="block">Returns whether this ActiveConnection may be joined through a call to
+ <a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>
+ by the user that retrieved this ActiveConnection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the user that retrieved this ActiveConnection may join the
+     ActiveConnection through a call to
+     <a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>,
+     false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre>default&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnections--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getActiveConnections</h4>
+<pre>default&nbsp;int&nbsp;getActiveConnections()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">Connectable</a></code></span></div>
+<div class="block">Returns the number of active connections associated with this object.
+ Implementations may simply return 0 if this value is not tracked.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of active connections associated with this object.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActiveConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="ActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecord.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecord.html
new file mode 100644
index 0000000..d671055
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecord.html
@@ -0,0 +1,327 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ActivityRecord (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ActivityRecord (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActivityRecord.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActivityRecord.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface ActivityRecord" class="title">Interface ActivityRecord</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">ActivityRecord</span></pre>
+<div class="block">A logging record describing when a user started and ended a particular
+ activity.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getEndDate--">getEndDate</a></span>()</code>
+<div class="block">Returns the date and time the activity ended, if applicable.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getRemoteHost--">getRemoteHost</a></span>()</code>
+<div class="block">Returns the hostname or IP address of the remote host that performed the
+ activity associated with this record, if known.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getStartDate--">getStartDate</a></span>()</code>
+<div class="block">Returns the date and time the activity began.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getUsername--">getUsername</a></span>()</code>
+<div class="block">Returns the name of the user who performed or is performing the activity
+ at the times given by this record.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#isActive--">isActive</a></span>()</code>
+<div class="block">Returns whether the activity associated with this record is still
+ ongoing.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStartDate--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStartDate</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getStartDate()</pre>
+<div class="block">Returns the date and time the activity began.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time the activity began.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEndDate--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEndDate</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getEndDate()</pre>
+<div class="block">Returns the date and time the activity ended, if applicable.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time the activity ended, or null if the activity is
+     still ongoing or if the end time is unknown.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRemoteHost--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRemoteHost</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getRemoteHost()</pre>
+<div class="block">Returns the hostname or IP address of the remote host that performed the
+ activity associated with this record, if known. If the hostname or IP
+ address is not known, null is returned.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The hostname or IP address of the remote host, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUsername--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUsername</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getUsername()</pre>
+<div class="block">Returns the name of the user who performed or is performing the activity
+ at the times given by this record.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the user who performed or is performing the associated
+     activity.</dd>
+</dl>
+</li>
+</ul>
+<a name="isActive--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isActive</h4>
+<pre>boolean&nbsp;isActive()</pre>
+<div class="block">Returns whether the activity associated with this record is still
+ ongoing.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the activity associated with this record is still ongoing,
+     false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActivityRecord.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActivityRecord.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html
new file mode 100644
index 0000000..6ca371e
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html
@@ -0,0 +1,342 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ActivityRecordSet.SortableProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ActivityRecordSet.SortableProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActivityRecordSet.SortableProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.SortableProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Enum ActivityRecordSet.SortableProperty" class="title">Enum ActivityRecordSet.SortableProperty</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <span class="typeNameLabel">ActivityRecordSet.SortableProperty</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&gt;</pre>
+<div class="block">All properties of activity records which can be used as sorting
+ criteria.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#START_DATE">START_DATE</a></span></code>
+<div class="block">The date and time when the activity associated with the record
+ began.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="START_DATE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>START_DATE</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a> START_DATE</pre>
+<div class="block">The date and time when the activity associated with the record
+ began.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (ActivityRecordSet.SortableProperty c : ActivityRecordSet.SortableProperty.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActivityRecordSet.SortableProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.SortableProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecordSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecordSet.html
new file mode 100644
index 0000000..2f77d7e
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecordSet.html
@@ -0,0 +1,371 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ActivityRecordSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ActivityRecordSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActivityRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface ActivityRecordSet" class="title">Interface ActivityRecordSet&lt;RecordType extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>RecordType</code> - The type of ActivityRecord contained within this set.</dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">ActivityRecordSet&lt;RecordType extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</span></pre>
+<div class="block">A set of all available records related to a type of activity which has a
+ defined start and end time, such as a user being logged in or connected, or a
+ subset of those records.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></span></code>
+<div class="block">All properties of activity records which can be used as sorting
+ criteria.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">asCollection</a></span>()</code>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">contains</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Returns the subset of records which contain the given value.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">limit</a></span>(int&nbsp;limit)</code>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="asCollection--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asCollection</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;&nbsp;asCollection()
+                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection containing all records within this set.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the records within this set.</dd>
+</dl>
+</li>
+</ul>
+<a name="contains-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>contains</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;&nbsp;contains(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the subset of records which contain the given value. The
+ properties and semantics involved with determining whether a particular
+ record "contains" the given value is implementation dependent. This
+ function may affect the contents of the current ActivityRecordSet. The
+ contents of the current ActivityRecordSet should NOT be relied upon
+ after this function is called.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The value which all records within the resulting subset should
+     contain.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The subset of records which contain the specified value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while restricting the current subset.</dd>
+</dl>
+</li>
+</ul>
+<a name="limit-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>limit</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;&nbsp;limit(int&nbsp;limit)
+                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records. If the subset has fewer than
+ <code>limit</code> records, then this function has no effect. This
+ function may also affect the contents of the current ActivityRecordSet.
+ The contents of the current ActivityRecordSet should NOT be relied upon
+ after this function is called.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>limit</code> - The maximum number of records that the new subset should contain.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The subset of records that containing only the first
+     <code>limit</code> records.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while limiting the current subset.</dd>
+</dl>
+</li>
+</ul>
+<a name="sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>sort</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;&nbsp;sort(<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+                                   boolean&nbsp;desc)
+                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria. The sort operation
+ performed is guaranteed to be stable with respect to any past call to
+ sort(). This function may also affect the contents of the current
+ ActivityRecordSet. The contents of the current ActivityRecordSet
+ should NOT be relied upon after this function is called.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property by which the records within the resulting set should be
+     sorted.</dd>
+<dd><code>desc</code> - Whether the records should be sorted according to the specified
+     property in descending order. If false, records will be sorted
+     according to the specified property in ascending order.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ActivityRecordSet, sorted according to the specified criteria.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while sorting the current subset, or if the given
+     property is not supported by the implementation.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActivityRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Attributes.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Attributes.html
new file mode 100644
index 0000000..3c19490
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Attributes.html
@@ -0,0 +1,273 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Attributes (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Attributes (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Attributes.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Attributes.html" target="_top">Frames</a></li>
+<li><a href="Attributes.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Attributes" class="title">Interface Attributes</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>, <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Attributes</span></pre>
+<div class="block">An object which is associated with a set of arbitrary attributes, defined
+ as name/value pairs.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Attributes.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Attributes.html" target="_top">Frames</a></li>
+<li><a href="Attributes.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticatedUser.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticatedUser.html
new file mode 100644
index 0000000..3fb0176
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticatedUser.html
@@ -0,0 +1,365 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AuthenticatedUser (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthenticatedUser (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticatedUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface AuthenticatedUser" class="title">Interface AuthenticatedUser</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">AuthenticatedUser</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></pre>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#ANONYMOUS_IDENTIFIER">ANONYMOUS_IDENTIFIER</a></span></code>
+<div class="block">The identifier reserved for representing a user that has authenticated
+ anonymously.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>
+<div class="block">Returns the AuthenticationProvider that authenticated this user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the credentials that the user provided when they successfully
+ authenticated.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getEffectiveUserGroups--">getEffectiveUserGroups</a></span>()</code>
+<div class="block">Returns a read-only set of the identifiers of all user groups which
+ apply to this authenticated user.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#invalidate--">invalidate</a></span>()</code>
+<div class="block">Invalidates this authenticated user and their associated token such that
+ they are no longer logged in.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="ANONYMOUS_IDENTIFIER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ANONYMOUS_IDENTIFIER</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ANONYMOUS_IDENTIFIER</pre>
+<div class="block">The identifier reserved for representing a user that has authenticated
+ anonymously.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.guacamole.net.auth.AuthenticatedUser.ANONYMOUS_IDENTIFIER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAuthenticationProvider--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticationProvider</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;getAuthenticationProvider()</pre>
+<div class="block">Returns the AuthenticationProvider that authenticated this user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticationProvider that authenticated this user.</dd>
+</dl>
+</li>
+</ul>
+<a name="getCredentials--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCredentials</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;getCredentials()</pre>
+<div class="block">Returns the credentials that the user provided when they successfully
+ authenticated.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The credentials provided by the user when they authenticated.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEffectiveUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEffectiveUserGroups</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getEffectiveUserGroups()</pre>
+<div class="block">Returns a read-only set of the identifiers of all user groups which
+ apply to this authenticated user. The exact semantics of what user
+ groups apply are up to the implementation, and the user groups within
+ this set may be implied, derived dynamically, inherited through multiple
+ levels of group membership, etc.
+
+ Note that, as with user identifiers, user group identifiers form the
+ basis of identity which applies across authentication providers. It is
+ expected that any two user groups having the same identifier represent
+ the same group, even if defined by different authentication providers.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A read-only set of the identifiers of all user groups which apply
+     to this authenticated user.</dd>
+</dl>
+</li>
+</ul>
+<a name="invalidate--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>invalidate</h4>
+<pre>void&nbsp;invalidate()</pre>
+<div class="block">Invalidates this authenticated user and their associated token such that
+ they are no longer logged in. This function will be automatically
+ invoked when the user logs out, or when their session expires.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticatedUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticationProvider.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticationProvider.html
new file mode 100644
index 0000000..1da0379
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticationProvider.html
@@ -0,0 +1,541 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AuthenticationProvider (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthenticationProvider (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface AuthenticationProvider" class="title">Interface AuthenticationProvider</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">AuthenticationProvider</span></pre>
+<div class="block">Provides means of authorizing users and for accessing and managing data
+ associated with those users. Access to such data is limited according to the
+ AuthenticationProvider implementation.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the identifier which uniquely and consistently identifies this
+ AuthenticationProvider implementation.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getResource--">getResource</a></span>()</code>
+<div class="block">Returns an arbitrary REST resource representing this
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#shutdown--">shutdown</a></span>()</code>
+<div class="block">Frees all resources associated with this AuthenticationProvider.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block">Returns the identifier which uniquely and consistently identifies this
+ AuthenticationProvider implementation. This identifier may not be null
+ and must be unique across all AuthenticationProviders loaded by the
+ Guacamole web application.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this AuthenticationProvider, which
+     may not be null.</dd>
+</dl>
+</li>
+</ul>
+<a name="getResource--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResource</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getResource()
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns an arbitrary REST resource representing this
+ AuthenticationProvider. The REST resource returned must be properly
+ annotated with JSR-311 annotations, and may serve as the root resource
+ for any number of subresources. The returned resource is ultimately
+ exposed at ".../api/ext/IDENTIFIER/", where IDENTIFIER is the identifier
+ of this AuthenticationProvider.
+
+ REST resources returned by this function will be reachable by all users,
+ regardless of whether they have authenticated. REST resources which
+ must only be accessible by authenticated users should instead be returned
+ from UserContext.getResource().</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary REST resource, annotated with JSR-311 annotations, or
+     null if no such resource is defined.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the REST resource cannot be returned due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="authenticateUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>authenticateUser</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticateUser(<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>credentials</code> - The credentials to use for authentication.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An AuthenticatedUser representing the user authenticated by the
+     given credentials, if any, or null if the credentials are invalid.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while authenticating the user, or if access is
+     temporarily, permanently, or conditionally denied, such as if the
+     supplied credentials are insufficient or invalid.</dd>
+</dl>
+</li>
+</ul>
+<a name="updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateAuthenticatedUser</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;updateAuthenticatedUser(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                                          <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser. Note that because
+ this function will be called for all future requests after initial
+ authentication, including tunnel requests, care must be taken to avoid
+ using functions of HttpServletRequest which invalidate the entire request
+ body, such as getParameter(). Doing otherwise may cause the
+ GuacamoleHTTPTunnelServlet to fail.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>credentials</code> - The credentials to use for authentication.</dd>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An updated AuthenticatedUser representing the user authenticated by
+     the given credentials, if any, or null if the credentials are
+     invalid.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the AuthenticatedUser.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserContext</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;getUserContext(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)
+                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A UserContext describing the permissions, connection, connection
+     groups, etc. accessible or associated with the given authenticated
+     user, or null if this AuthenticationProvider refuses to provide any
+     such data.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateUserContext</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;updateUserContext(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                              <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                              <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext. Note that because this function
+ will be called for all future requests after initial authentication,
+ including tunnel requests, care must be taken to avoid using functions
+ of HttpServletRequest which invalidate the entire request body, such as
+ getParameter(). Doing otherwise may cause the GuacamoleHTTPTunnelServlet
+ to fail.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - The existing UserContext belonging to the user in question.</dd>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dd><code>credentials</code> - The credentials which were most recently submitted. These are not
+     guaranteed to be the same as the credentials associated with the
+     AuthenticatedUser when they originally authenticated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An updated UserContext describing the permissions, connection,
+     connection groups, etc. accessible or associated with the given
+     authenticated user, or null if this AuthenticationProvider refuses
+     to provide any such data.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decorate</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorate(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                     <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                     <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary. Each UserContext created via getUserContext()
+ will be passed to the decorate() functions of all other
+ AuthenticationProviders, allowing those AuthenticationProviders to
+ augment (or perhaps even limit) the functionality or data provided.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - An existing UserContext generated by getUserContext() of a different
+     AuthenticationProvider.</dd>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser object representing the user associated with
+     the given UserContext.</dd>
+<dd><code>credentials</code> - The credentials which were most recently submitted for the given
+     AuthenticatedUser. These are not guaranteed to be the same as the
+     credentials associated with the AuthenticatedUser object, which are
+     the credentials provided when the user originally authenticated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A decorated (wrapped) UserContext object, or the original,
+     undecorated UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the UserContext cannot be decorated due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>redecorate</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;redecorate(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+                       <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                       <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary. Each UserContext created via updateUserContext()
+ will be passed to the decorate() functions of all other
+ AuthenticationProviders, allowing those AuthenticationProviders to
+ augment (or perhaps even limit) the functionality or data provided.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>decorated</code> - The UserContext returned when decorate() was invoked on this
+     AuthenticationProvider for the UserContext which was just updated
+     via a call to updateUserContext().</dd>
+<dd><code>context</code> - An existing UserContext generated by updateUserContext() of a
+     different AuthenticationProvider.</dd>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser object representing the user associated with
+     the given UserContext.</dd>
+<dd><code>credentials</code> - The credentials which were most recently submitted for the given
+     AuthenticatedUser. These are not guaranteed to be the same as the
+     credentials associated with the AuthenticatedUser object, which are
+     the credentials provided when the user originally authenticated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A decorated (wrapped) UserContext object, or the original,
+     undecorated UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the UserContext cannot be decorated due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="shutdown--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>shutdown</h4>
+<pre>void&nbsp;shutdown()</pre>
+<div class="block">Frees all resources associated with this AuthenticationProvider. This
+ function will be automatically invoked when the Guacamole server is
+ shutting down.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Connectable.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Connectable.html
new file mode 100644
index 0000000..3898fd5
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Connectable.html
@@ -0,0 +1,325 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Connectable (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Connectable (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":50,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Connectable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Connectable.html" target="_top">Frames</a></li>
+<li><a href="Connectable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Connectable" class="title">Interface Connectable</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Connectable</span></pre>
+<div class="block">An object which Guacamole can connect to.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>default org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">This function has been deprecated in favor of
+     <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>,
+     which allows for connection parameter tokens to be injected and
+     applied by cooperating extensions, replacing the functionality
+     previously provided through the <a href="../../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><code>StandardTokens</code></a>
+     class. It continues to be defined on this interface for
+     compatibility. <strong>New implementations should instead implement
+     <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>.</strong></span></div>
+</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></span>()</code>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+default&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)
+                                                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">This function has been deprecated in favor of
+     <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>,
+     which allows for connection parameter tokens to be injected and
+     applied by cooperating extensions, replacing the functionality
+     previously provided through the <a href="../../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><code>StandardTokens</code></a>
+     class. It continues to be defined on this interface for
+     compatibility. <strong>New implementations should instead implement
+     <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>.</strong></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre>org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnections--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getActiveConnections</h4>
+<pre>int&nbsp;getActiveConnections()</pre>
+<div class="block">Returns the number of active connections associated with this object.
+ Implementations may simply return 0 if this value is not tracked.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of active connections associated with this object.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Connectable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Connectable.html" target="_top">Frames</a></li>
+<li><a href="Connectable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Connection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Connection.html
new file mode 100644
index 0000000..3e02dca
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Connection.html
@@ -0,0 +1,458 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Connection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Connection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Connection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Connection.html" target="_top">Frames</a></li>
+<li><a href="Connection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Connection" class="title">Interface Connection</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Connection</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></pre>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process. The
+ backing GuacamoleConfiguration may be intentionally obfuscated or tokenized
+ to protect sensitive configuration information.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.protocol.GuacamoleConfiguration</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getConfiguration--">getConfiguration</a></span>()</code>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getHistory--">getHistory</a></span>()</code>
+<div class="block">Returns a list of ConnectionRecords representing the usage history
+ of this Connection, including any active users.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getLastActive--">getLastActive</a></span>()</code>
+<div class="block">Returns the date and time that this connection was last used.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name assigned to this Connection.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getParentIdentifier--">getParentIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a></span>()</code>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></span>(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</code>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name assigned to this Connection.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</code>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connectable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the name assigned to this Connection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Sets the name assigned to this Connection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParentIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParentIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParentIdentifier()</pre>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier of the parent ConnectionGroup for
+ this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParentIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParentIdentifier</h4>
+<pre>void&nbsp;setParentIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</pre>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parentIdentifier</code> - The unique identifier of the parent 
+ ConnectionGroup for this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre>org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;getConfiguration()</pre>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection. Note
+ that because configurations may contain sensitive information, some data
+ in this configuration may be omitted or tokenized.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleConfiguration associated with this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConfiguration</h4>
+<pre>void&nbsp;setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</pre>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - The GuacamoleConfiguration to associate with this
+               Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getLastActive--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastActive</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getLastActive()</pre>
+<div class="block">Returns the date and time that this connection was last used. If the
+ connection was never used, the time that the connection was last used is
+ unknown, or this information is not visible to the current user, this
+ may be null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time this connection was last used, or null if this
+     information is unavailable or inapplicable.</dd>
+</dl>
+</li>
+</ul>
+<a name="getHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHistory</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;getHistory()
+                                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a list of ConnectionRecords representing the usage history
+ of this Connection, including any active users. ConnectionRecords
+ in this list will be sorted in descending order of end time (active
+ connections are first), and then in descending order of start time
+ (newer connections are first).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A list of ConnectionRecrods representing the usage history
+         of this Connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while reading the history
+                            of this connection, or if permission is
+                            denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getSharingProfileIdentifiers</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getSharingProfileIdentifiers()
+                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active. The level of access granted to a
+ joining user is dictated by the connection parameters associated with
+ the sharing profile, not necessarily the parameters of the primary
+ connection being joined.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set of identifiers representing the sharing profiles for this
+     connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while fetching the sharing profiles for this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Connection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Connection.html" target="_top">Frames</a></li>
+<li><a href="Connection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionGroup.Type.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionGroup.Type.html
new file mode 100644
index 0000000..07fc998
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionGroup.Type.html
@@ -0,0 +1,361 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ConnectionGroup.Type (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConnectionGroup.Type (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionGroup.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionGroup.Type.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Enum ConnectionGroup.Type" class="title">Enum ConnectionGroup.Type</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.ConnectionGroup.Type</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <span class="typeNameLabel">ConnectionGroup.Type</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&gt;</pre>
+<div class="block">All legal types of connection group.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html#BALANCING">BALANCING</a></span></code>
+<div class="block">A connection group that acts as a load balancer.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html#ORGANIZATIONAL">ORGANIZATIONAL</a></span></code>
+<div class="block">A connection group that purely organizes other connections or
+ connection groups, serving only as a container.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="ORGANIZATIONAL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ORGANIZATIONAL</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a> ORGANIZATIONAL</pre>
+<div class="block">A connection group that purely organizes other connections or
+ connection groups, serving only as a container. An organizational
+ connection group is analogous to a directory or folder in a
+ filesystem.</div>
+</li>
+</ul>
+<a name="BALANCING">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BALANCING</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a> BALANCING</pre>
+<div class="block">A connection group that acts as a load balancer. A balancing
+ connection group can be connected to in the same manner as a
+ connection, and will transparently route to the least-used
+ underlying connection.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (ConnectionGroup.Type c : ConnectionGroup.Type.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionGroup.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionGroup.Type.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionGroup.html
new file mode 100644
index 0000000..904f01e
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionGroup.html
@@ -0,0 +1,441 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ConnectionGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConnectionGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface ConnectionGroup" class="title">Interface ConnectionGroup</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">ConnectionGroup</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></pre>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></span></code>
+<div class="block">All legal types of connection group.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers</a></span>()</code>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers</a></span>()</code>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of this connection.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</code>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</code>
+<div class="block">Set the type of this ConnectionGroup.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connectable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParentIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParentIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParentIdentifier()</pre>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParentIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParentIdentifier</h4>
+<pre>void&nbsp;setParentIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</pre>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parentIdentifier</code> - The unique identifier of the parent 
+ ConnectionGroup for this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setType</h4>
+<pre>void&nbsp;setType(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</pre>
+<div class="block">Set the type of this ConnectionGroup.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - The type of this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;getType()</pre>
+<div class="block">Returns the type of this connection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the type of this connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionIdentifiers</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getConnectionIdentifiers()
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of identifiers of all readable connections that are children
+     of this connection group.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getConnectionGroupIdentifiers</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getConnectionGroupIdentifiers()
+                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of identifiers of all readable connection groups that are
+     children of this connection group.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the identifiers.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionRecord.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionRecord.html
new file mode 100644
index 0000000..813195e
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionRecord.html
@@ -0,0 +1,321 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ConnectionRecord (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConnectionRecord (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionRecord.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionRecord.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface ConnectionRecord" class="title">Interface ConnectionRecord</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">ConnectionRecord</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></pre>
+<div class="block">A logging record describing when a user started and ended usage of a
+ particular connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html#getConnectionIdentifier--">getConnectionIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the connection associated with this
+ connection record.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html#getConnectionName--">getConnectionName</a></span>()</code>
+<div class="block">Returns the name of the connection associated with this connection
+ record.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html#getSharingProfileIdentifier--">getSharingProfileIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the sharing profile that was used to access the
+ connection associated with this connection record.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html#getSharingProfileName--">getSharingProfileName</a></span>()</code>
+<div class="block">Returns the name of the sharing profile that was used to access the
+ connection associated with this connection record.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.ActivityRecord">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getEndDate--">getEndDate</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getRemoteHost--">getRemoteHost</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getStartDate--">getStartDate</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getUsername--">getUsername</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#isActive--">isActive</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getConnectionIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getConnectionIdentifier()</pre>
+<div class="block">Returns the identifier of the connection associated with this
+ connection record.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the connection associated with this connection
+     record.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionName</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getConnectionName()</pre>
+<div class="block">Returns the name of the connection associated with this connection
+ record.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the connection associated with this connection record.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getSharingProfileIdentifier()</pre>
+<div class="block">Returns the identifier of the sharing profile that was used to access the
+ connection associated with this connection record. If the connection was
+ accessed directly (without involving a sharing profile), this will be
+ null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the sharing profile used to access the connection
+     associated with this connection record, or null if the connection
+     was accessed directly.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileName--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getSharingProfileName</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getSharingProfileName()</pre>
+<div class="block">Returns the name of the sharing profile that was used to access the
+ connection associated with this connection record. If the connection was
+ accessed directly (without involving a sharing profile), this will be
+ null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the sharing profile used to access the connection
+     associated with this connection record, or null if the connection
+     was accessed directly.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionRecord.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionRecord.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionRecordSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionRecordSet.html
new file mode 100644
index 0000000..ab07f54
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionRecordSet.html
@@ -0,0 +1,219 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ConnectionRecordSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConnectionRecordSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface ConnectionRecordSet" class="title">Interface ConnectionRecordSet</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dd>
+</dl>
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt; instead.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public interface <span class="typeNameLabel">ConnectionRecordSet</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</pre>
+<div class="block">The set of all available connection records, or a subset of those records.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ActivityRecordSet">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.ActivityRecordSet">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">asCollection</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">contains</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">limit</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Credentials.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Credentials.html
new file mode 100644
index 0000000..c004a55
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Credentials.html
@@ -0,0 +1,557 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Credentials (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Credentials (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Credentials.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Credentials.html" target="_top">Frames</a></li>
+<li><a href="Credentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class Credentials" class="title">Class Credentials</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.Credentials</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">Credentials</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.
+
+ This class is used along with AuthenticationProvider to provide arbitrary
+ HTTP-based authentication for Guacamole.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../serialized-form.html#org.apache.guacamole.net.auth.Credentials">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#Credentials-java.lang.String-java.lang.String-javax.servlet.http.HttpServletRequest-">Credentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password,
+           javax.servlet.http.HttpServletRequest&nbsp;request)</code>
+<div class="block">Construct a Credentials object with the given username, password,
+ and HTTP request.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#getPassword--">getPassword</a></span>()</code>
+<div class="block">Returns the password associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#getRemoteAddress--">getRemoteAddress</a></span>()</code>
+<div class="block">Returns the address of the client end of the connection which provided
+ these credentials, if known.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#getRemoteHostname--">getRemoteHostname</a></span>()</code>
+<div class="block">Returns the hostname of the client end of the connection which provided
+ these credentials, if known.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>javax.servlet.http.HttpServletRequest</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#getRequest--">getRequest</a></span>()</code>
+<div class="block">Returns the HttpServletRequest associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>javax.servlet.http.HttpSession</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#getSession--">getSession</a></span>()</code>
+<div class="block">Returns the HttpSession associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#getUsername--">getUsername</a></span>()</code>
+<div class="block">Returns the username associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#setPassword-java.lang.String-">setPassword</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</code>
+<div class="block">Sets the password associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#setRemoteAddress-java.lang.String-">setRemoteAddress</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteAddress)</code>
+<div class="block">Sets the address of the client end of the connection which provided
+ these credentials.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#setRemoteHostname-java.lang.String-">setRemoteHostname</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteHostname)</code>
+<div class="block">Sets the hostname of the client end of the connection which provided
+ these credentials, if known.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#setRequest-javax.servlet.http.HttpServletRequest-">setRequest</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request)</code>
+<div class="block">Sets the HttpServletRequest associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#setSession-javax.servlet.http.HttpSession-">setSession</a></span>(javax.servlet.http.HttpSession&nbsp;session)</code>
+<div class="block">Sets the HttpSession associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#setUsername-java.lang.String-">setUsername</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</code>
+<div class="block">Sets the username associated with this set of credentials.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Credentials-java.lang.String-java.lang.String-javax.servlet.http.HttpServletRequest-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Credentials</h4>
+<pre>public&nbsp;Credentials(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password,
+                   javax.servlet.http.HttpServletRequest&nbsp;request)</pre>
+<div class="block">Construct a Credentials object with the given username, password,
+ and HTTP request.  The information is assigned to the various
+ storage objects, and the remote hostname and address is parsed out
+ of the request object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The username that was provided for authentication.</dd>
+<dd><code>password</code> - The password that was provided for authentication.</dd>
+<dd><code>request</code> - The HTTP request associated with the authentication
+     request.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getPassword--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPassword</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPassword()</pre>
+<div class="block">Returns the password associated with this set of credentials.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The password associated with this username/password pair, or
+         null if no password has been set.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPassword-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPassword</h4>
+<pre>public&nbsp;void&nbsp;setPassword(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</pre>
+<div class="block">Sets the password associated with this set of credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>password</code> - The password to associate with this username/password
+                 pair.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUsername--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUsername</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getUsername()</pre>
+<div class="block">Returns the username associated with this set of credentials.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The username associated with this username/password pair, or
+         null if no username has been set.</dd>
+</dl>
+</li>
+</ul>
+<a name="setUsername-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUsername</h4>
+<pre>public&nbsp;void&nbsp;setUsername(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</pre>
+<div class="block">Sets the username associated with this set of credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The username to associate with this username/password
+                 pair.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRequest--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequest</h4>
+<pre>public&nbsp;javax.servlet.http.HttpServletRequest&nbsp;getRequest()</pre>
+<div class="block">Returns the HttpServletRequest associated with this set of credentials.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The HttpServletRequest associated with this set of credentials,
+         or null if no such request exists.</dd>
+</dl>
+</li>
+</ul>
+<a name="setRequest-javax.servlet.http.HttpServletRequest-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRequest</h4>
+<pre>public&nbsp;void&nbsp;setRequest(javax.servlet.http.HttpServletRequest&nbsp;request)</pre>
+<div class="block">Sets the HttpServletRequest associated with this set of credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>request</code> - The HttpServletRequest to associated with this set of
+                 credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSession--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSession</h4>
+<pre>public&nbsp;javax.servlet.http.HttpSession&nbsp;getSession()</pre>
+<div class="block">Returns the HttpSession associated with this set of credentials.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The HttpSession associated with this set of credentials, or null
+         if no such request exists.</dd>
+</dl>
+</li>
+</ul>
+<a name="setSession-javax.servlet.http.HttpSession-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSession</h4>
+<pre>public&nbsp;void&nbsp;setSession(javax.servlet.http.HttpSession&nbsp;session)</pre>
+<div class="block">Sets the HttpSession associated with this set of credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - The HttpSession to associated with this set of
+                credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRemoteAddress--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRemoteAddress</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getRemoteAddress()</pre>
+<div class="block">Returns the address of the client end of the connection which provided
+ these credentials, if known.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The address of the client end of the connection which provided these
+     credentials, or null if the address is not known.</dd>
+</dl>
+</li>
+</ul>
+<a name="setRemoteAddress-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRemoteAddress</h4>
+<pre>public&nbsp;void&nbsp;setRemoteAddress(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteAddress)</pre>
+<div class="block">Sets the address of the client end of the connection which provided
+ these credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>remoteAddress</code> - The address of the client end of the connection which provided these
+     credentials, or null if the address is not known.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRemoteHostname--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRemoteHostname</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getRemoteHostname()</pre>
+<div class="block">Returns the hostname of the client end of the connection which provided
+ these credentials, if known. If the hostname of the client cannot be
+ determined, but the address is known, the address may be returned
+ instead.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The hostname or address of the client end of the connection which
+     provided these credentials, or null if the hostname is not known.</dd>
+</dl>
+</li>
+</ul>
+<a name="setRemoteHostname-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setRemoteHostname</h4>
+<pre>public&nbsp;void&nbsp;setRemoteHostname(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteHostname)</pre>
+<div class="block">Sets the hostname of the client end of the connection which provided
+ these credentials, if known. If the hostname of the client cannot be
+ determined, but the address is known, the address may be specified
+ instead.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>remoteHostname</code> - The hostname or address of the client end of the connection which
+     provided these credentials, or null if the hostname is not known.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Credentials.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Credentials.html" target="_top">Frames</a></li>
+<li><a href="Credentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DecoratingDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DecoratingDirectory.html
new file mode 100644
index 0000000..7005e1c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DecoratingDirectory.html
@@ -0,0 +1,509 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DecoratingDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DecoratingDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":6,"i2":10,"i3":10,"i4":6,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DecoratingDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DecoratingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DecoratingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DecoratingDirectory" class="title">Class DecoratingDirectory&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.DelegatingDirectory</a>&lt;ObjectType&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DecoratingDirectory&lt;ObjectType&gt;</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>ObjectType</code> - The type of objects stored within this Directory.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">DecoratingDirectory&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;ObjectType&gt;</pre>
+<div class="block">Directory implementation which simplifies decorating the objects within an
+ underlying Directory. The decorate() and undecorate() functions must be
+ implemented to define how each object is decorated, and how that decoration
+ may be removed.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#DecoratingDirectory-org.apache.guacamole.net.auth.Directory-">DecoratingDirectory</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&gt;&nbsp;directory)</code>
+<div class="block">Creates a new DecoratingDirectory which decorates the objects within
+ the given directory.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#add-ObjectType-">add</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Adds the given object to the overall set.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#decorate-ObjectType-">decorate</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Given an object retrieved from a Directory which originates from a
+ different AuthenticationProvider, returns an identical type of object
+ optionally wrapped with additional information, functionality, etc.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#get-java.lang.String-">get</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Returns the object having the given identifier.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#getAll-java.util.Collection-">getAll</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Returns the objects having the given identifiers.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#undecorate-ObjectType-">undecorate</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Given an object originally returned from a call to this
+ DecoratingDirectory's decorate() function, reverses the decoration
+ operation, returning the original object.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#update-ObjectType-">update</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.DelegatingDirectory">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getDelegateDirectory--">getDelegateDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getIdentifiers--">getIdentifiers</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#remove-java.lang.String-">remove</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DecoratingDirectory-org.apache.guacamole.net.auth.Directory-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DecoratingDirectory</h4>
+<pre>public&nbsp;DecoratingDirectory(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&gt;&nbsp;directory)</pre>
+<div class="block">Creates a new DecoratingDirectory which decorates the objects within
+ the given directory.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>directory</code> - The Directory whose objects are being decorated.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="decorate-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="decorate-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decorate</h4>
+<pre>protected abstract&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;decorate(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given an object retrieved from a Directory which originates from a
+ different AuthenticationProvider, returns an identical type of object
+ optionally wrapped with additional information, functionality, etc. If
+ this directory chooses to decorate the object provided, it is up to the
+ implementation of that decorated object to properly pass through
+ operations as appropriate, as well as provide for an eventual
+ undecorate() operation. All objects retrieved from this
+ DecoratingDirectory will first be passed through this function.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - An object from a Directory which originates from a different
+     AuthenticationProvider.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An object which may have been decorated by this
+     DecoratingDirectory. If the object was not decorated, the original,
+     unmodified object may be returned instead.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the provided object cannot be decorated due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="undecorate-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="undecorate-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>undecorate</h4>
+<pre>protected abstract&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;undecorate(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)
+                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given an object originally returned from a call to this
+ DecoratingDirectory's decorate() function, reverses the decoration
+ operation, returning the original object. This function is effectively
+ the exact inverse of the decorate() function. The return value of
+ undecorate(decorate(X)) must be identically X. All objects given to this
+ DecoratingDirectory via add() or update() will first be passed through
+ this function.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - An object which was originally returned by a call to this
+     DecoratingDirectory's decorate() function.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The original object which was provided to this DecoratingDirectory's
+     decorate() function.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the provided object cannot be undecorated due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="get-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;get(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">Directory</a></code></span></div>
+<div class="block">Returns the object having the given identifier. Note that changes to
+ the object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within an
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">get</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#get-java.lang.String-">get</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to use when locating the object to
+                   return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The object having the given identifier, or null if no such object
+         exists.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the
+                            object, or if permission for retrieving the
+                            object is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAll-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAll</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&gt;&nbsp;getAll(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">Directory</a></code></span></div>
+<div class="block">Returns the objects having the given identifiers. Note that changes to
+ any object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within a
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">getAll</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getAll-java.util.Collection-">getAll</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers to use when locating the objects to return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The objects having the given identifiers. If any identifiers do not
+     correspond to accessible objects, those identifiers will be ignored.
+     If no objects correspond to any of the given identifiers, the
+     returned collection will be empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the objects, or if permission
+     to retrieve the requested objects is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="add-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="add-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>public&nbsp;void&nbsp;add(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)
+         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">Directory</a></code></span></div>
+<div class="block">Adds the given object to the overall set. If a new identifier is
+ created for the added object, that identifier will be automatically
+ assigned via setIdentifier().</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">add</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#add-ObjectType-">add</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the object, or if adding the object
+     is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="update-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="update-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>update</h4>
+<pre>public&nbsp;void&nbsp;update(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">Directory</a></code></span></div>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">update</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#update-ObjectType-">update</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object which will supply the data for the update.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the object,
+                            or if updating the object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DecoratingDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DecoratingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DecoratingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingConnection.html
new file mode 100644
index 0000000..ce63ab7
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingConnection.html
@@ -0,0 +1,748 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingConnection.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingConnection" class="title">Class DelegatingConnection</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingConnection</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingConnection</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></pre>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#DelegatingConnection-org.apache.guacamole.net.auth.Connection-">DelegatingConnection</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block">Wraps the given Connection such that all function calls against this
+ DelegatingConnection will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getActiveConnections--">getActiveConnections</a></span>()</code>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.protocol.GuacamoleConfiguration</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getConfiguration--">getConfiguration</a></span>()</code>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getDelegateConnection--">getDelegateConnection</a></span>()</code>
+<div class="block">Returns the underlying Connection wrapped by this DelegatingConnection.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getHistory--">getHistory</a></span>()</code>
+<div class="block">Returns a list of ConnectionRecords representing the usage history
+ of this Connection, including any active users.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getLastActive--">getLastActive</a></span>()</code>
+<div class="block">Returns the date and time that this connection was last used.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name assigned to this Connection.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getParentIdentifier--">getParentIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a></span>()</code>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></span>(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</code>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name assigned to this Connection.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</code>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingConnection-org.apache.guacamole.net.auth.Connection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingConnection</h4>
+<pre>public&nbsp;DelegatingConnection(<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</pre>
+<div class="block">Wraps the given Connection such that all function calls against this
+ DelegatingConnection will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connection</code> - The Connection to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateConnection--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateConnection</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;getDelegateConnection()</pre>
+<div class="block">Returns the underlying Connection wrapped by this DelegatingConnection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The Connection wrapped by this DelegatingConnection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getName--">Connection</a></code></span></div>
+<div class="block">Returns the name assigned to this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setName-java.lang.String-">Connection</a></code></span></div>
+<div class="block">Sets the name assigned to this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setName-java.lang.String-">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParentIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParentIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParentIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getParentIdentifier--">Connection</a></code></span></div>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getParentIdentifier--">getParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier of the parent ConnectionGroup for
+ this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParentIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParentIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setParentIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setParentIdentifier-java.lang.String-">Connection</a></code></span></div>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parentIdentifier</code> - The unique identifier of the parent 
+ ConnectionGroup for this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre>public&nbsp;org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;getConfiguration()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getConfiguration--">Connection</a></code></span></div>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection. Note
+ that because configurations may contain sensitive information, some data
+ in this configuration may be omitted or tokenized.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getConfiguration--">getConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleConfiguration associated with this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConfiguration</h4>
+<pre>public&nbsp;void&nbsp;setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">Connection</a></code></span></div>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - The GuacamoleConfiguration to associate with this
+               Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="getLastActive--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastActive</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getLastActive()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getLastActive--">Connection</a></code></span></div>
+<div class="block">Returns the date and time that this connection was last used. If the
+ connection was never used, the time that the connection was last used is
+ unknown, or this information is not visible to the current user, this
+ may be null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getLastActive--">getLastActive</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time this connection was last used, or null if this
+     information is unavailable or inapplicable.</dd>
+</dl>
+</li>
+</ul>
+<a name="getHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHistory</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;getHistory()
+                                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getHistory--">Connection</a></code></span></div>
+<div class="block">Returns a list of ConnectionRecords representing the usage history
+ of this Connection, including any active users. ConnectionRecords
+ in this list will be sorted in descending order of end time (active
+ connections are first), and then in descending order of start time
+ (newer connections are first).</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getHistory--">getHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A list of ConnectionRecrods representing the usage history
+         of this Connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while reading the history
+                            of this connection, or if permission is
+                            denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getSharingProfileIdentifiers()
+                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getSharingProfileIdentifiers--">Connection</a></code></span></div>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active. The level of access granted to a
+ joining user is dictated by the connection parameters associated with
+ the sharing profile, not necessarily the parameters of the primary
+ connection being joined.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set of identifiers representing the sharing profiles for this
+     connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while fetching the sharing profiles for this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)
+                                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnections--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getActiveConnections</h4>
+<pre>public&nbsp;int&nbsp;getActiveConnections()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">Connectable</a></code></span></div>
+<div class="block">Returns the number of active connections associated with this object.
+ Implementations may simply return 0 if this value is not tracked.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of active connections associated with this object.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingConnection.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingConnectionGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingConnectionGroup.html
new file mode 100644
index 0000000..3f8c647
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingConnectionGroup.html
@@ -0,0 +1,726 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingConnectionGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingConnectionGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingConnectionGroup" class="title">Class DelegatingConnectionGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingConnectionGroup</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingConnectionGroup</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></pre>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ConnectionGroup">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#DelegatingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">DelegatingConnectionGroup</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block">Wraps the given ConnectionGroup such that all function calls against this
+ DelegatingConnectionGroup will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getActiveConnections--">getActiveConnections</a></span>()</code>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers</a></span>()</code>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers</a></span>()</code>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getDelegateConnectionGroup--">getDelegateConnectionGroup</a></span>()</code>
+<div class="block">Returns the underlying ConnectionGroup wrapped by this
+ DelegatingConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of this connection.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</code>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</code>
+<div class="block">Set the type of this ConnectionGroup.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingConnectionGroup</h4>
+<pre>public&nbsp;DelegatingConnectionGroup(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</pre>
+<div class="block">Wraps the given ConnectionGroup such that all function calls against this
+ DelegatingConnectionGroup will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connectionGroup</code> - The ConnectionGroup to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateConnectionGroup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateConnectionGroup</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;getDelegateConnectionGroup()</pre>
+<div class="block">Returns the underlying ConnectionGroup wrapped by this
+ DelegatingConnectionGroup.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ConnectionGroup wrapped by this DelegatingConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getName--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setName-java.lang.String-">ConnectionGroup</a></code></span></div>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setName-java.lang.String-">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParentIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParentIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParentIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getParentIdentifier--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParentIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParentIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setParentIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setParentIdentifier-java.lang.String-">ConnectionGroup</a></code></span></div>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parentIdentifier</code> - The unique identifier of the parent 
+ ConnectionGroup for this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setType</h4>
+<pre>public&nbsp;void&nbsp;setType(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">ConnectionGroup</a></code></span></div>
+<div class="block">Set the type of this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - The type of this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;getType()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the type of this connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">getType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the type of this connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getConnectionIdentifiers()
+                                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionIdentifiers--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of identifiers of all readable connections that are children
+     of this connection group.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getConnectionGroupIdentifiers()
+                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionGroupIdentifiers--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of identifiers of all readable connection groups that are
+     children of this connection group.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)
+                                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnections--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getActiveConnections</h4>
+<pre>public&nbsp;int&nbsp;getActiveConnections()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">Connectable</a></code></span></div>
+<div class="block">Returns the number of active connections associated with this object.
+ Implementations may simply return 0 if this value is not tracked.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of active connections associated with this object.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingDirectory.html
new file mode 100644
index 0000000..ff4da68
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingDirectory.html
@@ -0,0 +1,492 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DelegatingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingDirectory" class="title">Class DelegatingDirectory&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingDirectory&lt;ObjectType&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>ObjectType</code> - The type of objects stored within this Directory.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;</dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingDirectory&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;</pre>
+<div class="block">Directory implementation which simply delegates all function calls to an
+ underlying Directory.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#DelegatingDirectory-org.apache.guacamole.net.auth.Directory-">DelegatingDirectory</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;&nbsp;directory)</code>
+<div class="block">Wraps the given Directory such that all function calls against this
+ DelegatingDirectory will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#add-ObjectType-">add</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Adds the given object to the overall set.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#get-java.lang.String-">get</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Returns the object having the given identifier.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getAll-java.util.Collection-">getAll</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Returns the objects having the given identifiers.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getDelegateDirectory--">getDelegateDirectory</a></span>()</code>
+<div class="block">Returns the underlying Directory wrapped by this DelegatingDirectory.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getIdentifiers--">getIdentifiers</a></span>()</code>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#remove-java.lang.String-">remove</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#update-ObjectType-">update</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingDirectory-org.apache.guacamole.net.auth.Directory-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingDirectory</h4>
+<pre>public&nbsp;DelegatingDirectory(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;&nbsp;directory)</pre>
+<div class="block">Wraps the given Directory such that all function calls against this
+ DelegatingDirectory will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>directory</code> - The directory to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateDirectory</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;&nbsp;getDelegateDirectory()</pre>
+<div class="block">Returns the underlying Directory wrapped by this DelegatingDirectory.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The Directory wrapped by this DelegatingDirectory.</dd>
+</dl>
+</li>
+</ul>
+<a name="get-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&nbsp;get(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">Directory</a></code></span></div>
+<div class="block">Returns the object having the given identifier. Note that changes to
+ the object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within an
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">get</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to use when locating the object to
+                   return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The object having the given identifier, or null if no such object
+         exists.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the
+                            object, or if permission for retrieving the
+                            object is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAll-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAll</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;&nbsp;getAll(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">Directory</a></code></span></div>
+<div class="block">Returns the objects having the given identifiers. Note that changes to
+ any object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within a
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">getAll</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers to use when locating the objects to return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The objects having the given identifiers. If any identifiers do not
+     correspond to accessible objects, those identifiers will be ignored.
+     If no objects correspond to any of the given identifiers, the
+     returned collection will be empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the objects, or if permission
+     to retrieve the requested objects is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getIdentifiers()
+                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getIdentifiers--">Directory</a></code></span></div>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getIdentifiers--">getIdentifiers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set of all identifiers.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving
+                            the identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="add-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="add-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>public&nbsp;void&nbsp;add(<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&nbsp;object)
+         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">Directory</a></code></span></div>
+<div class="block">Adds the given object to the overall set. If a new identifier is
+ created for the added object, that identifier will be automatically
+ assigned via setIdentifier().</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">add</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the object, or if adding the object
+     is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="update-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="update-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>update</h4>
+<pre>public&nbsp;void&nbsp;update(<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&nbsp;object)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">Directory</a></code></span></div>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">update</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object which will supply the data for the update.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the object,
+                            or if updating the object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="remove-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>remove</h4>
+<pre>public&nbsp;void&nbsp;remove(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#remove-java.lang.String-">Directory</a></code></span></div>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#remove-java.lang.String-">remove</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the object to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the object,
+                            or if removing object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DelegatingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingSharingProfile.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingSharingProfile.html
new file mode 100644
index 0000000..789b73f
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingSharingProfile.html
@@ -0,0 +1,566 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingSharingProfile (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingSharingProfile (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingSharingProfile.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="DelegatingSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingSharingProfile" class="title">Class DelegatingSharingProfile</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingSharingProfile</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingSharingProfile</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></pre>
+<div class="block">SharingProfile implementation which simply delegates all function calls to an
+ underlying SharingProfile.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#DelegatingSharingProfile-org.apache.guacamole.net.auth.SharingProfile-">DelegatingSharingProfile</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&nbsp;sharingProfile)</code>
+<div class="block">Wraps the given SharingProfile such that all function calls against this
+ DelegatingSharingProfile will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getDelegateSharingProfile--">getDelegateSharingProfile</a></span>()</code>
+<div class="block">Returns the underlying SharingProfile wrapped by this
+ DelegatingSharingProfile.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getParameters--">getParameters</a></span>()</code>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setParameters-java.util.Map-">setParameters</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</code>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingSharingProfile-org.apache.guacamole.net.auth.SharingProfile-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingSharingProfile</h4>
+<pre>public&nbsp;DelegatingSharingProfile(<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&nbsp;sharingProfile)</pre>
+<div class="block">Wraps the given SharingProfile such that all function calls against this
+ DelegatingSharingProfile will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sharingProfile</code> - The SharingProfile to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateSharingProfile--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateSharingProfile</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&nbsp;getDelegateSharingProfile()</pre>
+<div class="block">Returns the underlying SharingProfile wrapped by this
+ DelegatingSharingProfile.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The SharingProfile wrapped by this DelegatingSharingProfile.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getName--">SharingProfile</a></code></span></div>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this SharingProfile.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setName-java.lang.String-">SharingProfile</a></code></span></div>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setName-java.lang.String-">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPrimaryConnectionIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPrimaryConnectionIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPrimaryConnectionIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getPrimaryConnectionIdentifier--">SharingProfile</a></code></span></div>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection. The primary connection is the connection that this sharing
+ profile can be used to share.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the primary connection associated with this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPrimaryConnectionIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPrimaryConnectionIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setPrimaryConnectionIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">SharingProfile</a></code></span></div>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection. The primary connection is the connection that this sharing
+ profile can be used to share.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the primary connection associated with this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParameters--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameters</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getParameters()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getParameters--">SharingProfile</a></code></span></div>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs. Changes to this map will affect the parameters stored
+ within this sharing profile. The differences in these parameters compared
+ to those of the associated primary connection yield different levels of
+ access to users joining the primary connection via this sharing profile.
+ Note that because configurations may contain sensitive information, some
+ data in this map may be omitted or tokenized.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getParameters--">getParameters</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map which contains all connection parameter name/value pairs as
+     key/value pairs.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParameters-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParameters</h4>
+<pre>public&nbsp;void&nbsp;setParameters(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setParameters-java.util.Map-">SharingProfile</a></code></span></div>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map. Key/value pairs within the map represent parameter name/value
+ pairs. The differences in these parameters compared to those of the
+ associated primary connection yield different levels of access to users
+ joining the primary connection via this sharing profile.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setParameters-java.util.Map-">setParameters</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parameters</code> - A map which contains all connection parameter name/value pairs as
+     key/value pairs.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingSharingProfile.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="DelegatingSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUser.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUser.html
new file mode 100644
index 0000000..05ba766
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUser.html
@@ -0,0 +1,785 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingUser (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingUser (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingUser.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingUser" class="title">Class DelegatingUser</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingUser</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingUser</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></pre>
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.User">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#DelegatingUser-org.apache.guacamole.net.auth.User-">DelegatingUser</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;user)</code>
+<div class="block">Wraps the given User such that all function calls against this
+ DelegatingUser will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getDelegateUser--">getDelegateUser</a></span>()</code>
+<div class="block">Returns the underlying User wrapped by this DelegatingUser.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getEffectivePermissions--">getEffectivePermissions</a></span>()</code>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getHistory--">getHistory</a></span>()</code>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getLastActive--">getLastActive</a></span>()</code>
+<div class="block">Returns the date and time that this user was last active.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getPassword--">getPassword</a></span>()</code>
+<div class="block">Returns this user's password.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#setPassword-java.lang.String-">setPassword</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</code>
+<div class="block">Sets this user's password.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingUser-org.apache.guacamole.net.auth.User-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingUser</h4>
+<pre>public&nbsp;DelegatingUser(<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;user)</pre>
+<div class="block">Wraps the given User such that all function calls against this
+ DelegatingUser will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>user</code> - The User to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateUser--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateUser</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;getDelegateUser()</pre>
+<div class="block">Returns the underlying User wrapped by this DelegatingUser.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The User wrapped by this DelegatingUser.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPassword--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPassword</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPassword()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getPassword--">User</a></code></span></div>
+<div class="block">Returns this user's password. Note that the password returned may be
+ hashed or completely arbitrary.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getPassword--">getPassword</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A String which may (or may not) be the user's password.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPassword-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPassword</h4>
+<pre>public&nbsp;void&nbsp;setPassword(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#setPassword-java.lang.String-">User</a></code></span></div>
+<div class="block">Sets this user's password. Note that while this function is guaranteed
+ to change the password of this User object, there is no guarantee that
+ getPassword() will return the value given to setPassword().</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#setPassword-java.lang.String-">setPassword</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>password</code> - The password to set.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="getLastActive--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastActive</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getLastActive()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getLastActive--">User</a></code></span></div>
+<div class="block">Returns the date and time that this user was last active. If the user
+ was never active, the time that the user was last active is unknown, or
+ this information is not visible to the current user, this may be null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getLastActive--">getLastActive</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time this user was last active, or null if this
+     information is unavailable or inapplicable.</dd>
+</dl>
+</li>
+</ul>
+<a name="getHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHistory</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;&nbsp;getHistory()
+                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getHistory--">User</a></code></span></div>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions. ActivityRecords
+ in this list will be sorted in descending order of end time (active
+ sessions are first), and then in descending order of start time
+ (newer sessions are first).</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getHistory--">getHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A list of ActivityRecords representing the login history of this
+     User.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while reading the history of this user, or if
+     permission is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSystemPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSystemPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>&nbsp;getSystemPermissions()
+                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all system-level permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A SystemPermissionSet of all system-level permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionPermissions()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all connection permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionGroupPermissions()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all connection group permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection group permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfilePermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfilePermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getSharingProfilePermissions()
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all sharing profile permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getActiveConnectionPermissions()
+                                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all active connection permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserPermissions()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all user permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserGroupPermissions()
+                                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all user group permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user group permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroups</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getUserGroups()
+                               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getUserGroups--">User</a></code></span></div>
+<div class="block">Returns a set of all readable user groups of which this user is a member.
+ If permission is granted for the current user to modify the membership of
+ this user, then the returned set will be mutable, and any such
+ modifications should be made through changes to the returned set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getUserGroups--">getUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups of which this user is a member.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEffectivePermissions--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getEffectivePermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>&nbsp;getEffectivePermissions()
+                                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getEffectivePermissions--">User</a></code></span></div>
+<div class="block">Returns a read-only view of all permissions granted to this user. The
+ exact semantics of what permissions are granted are up to the
+ implementation, and the permissions within this view may be implied,
+ derived dynamically, inherited through multiple levels of group
+ membership, etc.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getEffectivePermissions--">getEffectivePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A read-only view of the permissions which are granted to this user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingUser.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUserContext.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUserContext.html
new file mode 100644
index 0000000..3814c32
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUserContext.html
@@ -0,0 +1,828 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingUserContext (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingUserContext (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingUserContext.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingUserContext" class="title">Class DelegatingUserContext</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingUserContext</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingUserContext</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></pre>
+<div class="block">UserContext implementation which simply delegates all function calls to
+ an underlying UserContext.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#DelegatingUserContext-org.apache.guacamole.net.auth.UserContext-">DelegatingUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext)</code>
+<div class="block">Wraps the given UserContext such that all function calls against this
+ DelegatingUserContext will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionAttributes--">getConnectionAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getDelegateUserContext--">getDelegateUserContext</a></span>()</code>
+<div class="block">Returns the underlying UserContext wrapped by this
+ DelegatingUserContext.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getResource--">getResource</a></span>()</code>
+<div class="block">Returns an arbitrary REST resource representing this UserContext.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></span>()</code>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserAttributes--">getUserAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#invalidate--">invalidate</a></span>()</code>
+<div class="block">Invalidates this user context, releasing all associated resources.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#self--">self</a></span>()</code>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingUserContext-org.apache.guacamole.net.auth.UserContext-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingUserContext</h4>
+<pre>public&nbsp;DelegatingUserContext(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext)</pre>
+<div class="block">Wraps the given UserContext such that all function calls against this
+ DelegatingUserContext will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>userContext</code> - The UserContext to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateUserContext--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateUserContext</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;getDelegateUserContext()</pre>
+<div class="block">Returns the underlying UserContext wrapped by this
+ DelegatingUserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The UserContext wrapped by this DelegatingUserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="self--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>self</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;self()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#self--">UserContext</a></code></span></div>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#self--">self</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The User whose access rights control the operations of this
+         UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="getResource--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResource</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getResource()
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getResource--">UserContext</a></code></span></div>
+<div class="block">Returns an arbitrary REST resource representing this UserContext. The
+ REST resource returned must be properly annotated with JSR-311
+ annotations, and may serve as the root resource for any number of
+ subresources. The returned resource is ultimately exposed at
+ ".../api/session/ext/IDENTIFIER/", where IDENTIFIER is the identifier of
+ the AuthenticationProvider associated with this UserContext.
+
+ REST resources returned by this function will only be reachable by
+ authenticated users with valid authentication tokens. REST resources
+ which should be accessible by all users regardless of whether they have
+ authenticated should instead be returned from
+ AuthenticationProvider.getResource().</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getResource--">getResource</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary REST resource, annotated with JSR-311 annotations, or
+     null if no such resource is defined.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the REST resource cannot be returned due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAuthenticationProvider--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticationProvider</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;getAuthenticationProvider()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">UserContext</a></code></span></div>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticationProvider that created this UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;&nbsp;getUserDirectory()
+                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">getUserDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the restrictions
+         of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;&nbsp;getUserGroupDirectory()
+                                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the restrictions
+     of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;getConnectionDirectory()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of 
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;getConnectionGroupDirectory()
+                                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;&nbsp;getActiveConnectionDirectory()
+                                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of the
+     user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;&nbsp;getSharingProfileDirectory()
+                                                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of the
+     user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionHistory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;getConnectionHistory()
+                                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">UserContext</a></code></span></div>
+<div class="block">Retrieves all connection records visible to current user. Connection
+ history records describe the start and end times of connections, and
+ correspond to the times that users connect or disconnect to individual
+ remote desktops. The resulting set of connection records can be further
+ filtered and ordered using the methods defined on ActivityRecordSet.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">getConnectionHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all connection records visible to the current user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the connection records.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserHistory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;&nbsp;getUserHistory()
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">UserContext</a></code></span></div>
+<div class="block">Retrieves all user history records visible to current user. User history
+ records describe the start and end times of user sessions, and correspond
+ to the times that users logged in or out. The resulting set of user
+ records can be further filtered and ordered using the methods defined on
+ ActivityRecordSet.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">getUserHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all user records visible to the current user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user records.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRootConnectionGroup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRootConnectionGroup</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;getRootConnectionGroup()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getRootConnectionGroup--">UserContext</a></code></span></div>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A connection group whose operations are bound by the restrictions
+         of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getUserAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserAttributes--">UserContext</a></code></span></div>
+<div class="block">Retrieves a collection of all attributes applicable to users. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserAttributes--">getUserAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to users.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getUserGroupAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupAttributes--">UserContext</a></code></span></div>
+<div class="block">Retrieves a collection of all attributes applicable to user groups. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionAttributes--">UserContext</a></code></span></div>
+<div class="block">Retrieves a collection of all attributes applicable to connections. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionAttributes--">getConnectionAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to connections.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionGroupAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupAttributes--">UserContext</a></code></span></div>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups. This collection will contain only those attributes which the
+ current user has general permission to view or modify. If there are no
+ such attributes, this collection will be empty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to connection groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getSharingProfileAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileAttributes--">UserContext</a></code></span></div>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.
+ This collection will contain only those attributes which the current user
+ has general permission to view or modify. If there are no such
+ attributes, this collection will be empty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to sharing profile.</dd>
+</dl>
+</li>
+</ul>
+<a name="invalidate--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>invalidate</h4>
+<pre>public&nbsp;void&nbsp;invalidate()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#invalidate--">UserContext</a></code></span></div>
+<div class="block">Invalidates this user context, releasing all associated resources. This
+ function will be invoked when the user logs out, or when their session
+ is automatically invalidated.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#invalidate--">invalidate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingUserContext.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUserGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUserGroup.html
new file mode 100644
index 0000000..f1013c3
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUserGroup.html
@@ -0,0 +1,695 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingUserGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingUserGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingUserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingUserGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingUserGroup" class="title">Class DelegatingUserGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingUserGroup</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingUserGroup</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></pre>
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#DelegatingUserGroup-org.apache.guacamole.net.auth.UserGroup-">DelegatingUserGroup</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&nbsp;userGroup)</code>
+<div class="block">Wraps the given UserGroup such that all function calls against this
+ DelegatingUserGroup will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getDelegateUserGroupGroup--">getDelegateUserGroupGroup</a></span>()</code>
+<div class="block">Returns the underlying UserGroup wrapped by this DelegatingUserGroup.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getMemberUsers--">getMemberUsers</a></span>()</code>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingUserGroup-org.apache.guacamole.net.auth.UserGroup-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingUserGroup</h4>
+<pre>public&nbsp;DelegatingUserGroup(<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&nbsp;userGroup)</pre>
+<div class="block">Wraps the given UserGroup such that all function calls against this
+ DelegatingUserGroup will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>userGroup</code> - The UserGroup to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateUserGroupGroup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateUserGroupGroup</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&nbsp;getDelegateUserGroupGroup()</pre>
+<div class="block">Returns the underlying UserGroup wrapped by this DelegatingUserGroup.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The UserGroup wrapped by this DelegatingUserGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSystemPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSystemPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>&nbsp;getSystemPermissions()
+                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all system-level permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A SystemPermissionSet of all system-level permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionPermissions()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all connection permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionGroupPermissions()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all connection group permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection group permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfilePermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfilePermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getSharingProfilePermissions()
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all sharing profile permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getActiveConnectionPermissions()
+                                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all active connection permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserPermissions()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all user permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserGroupPermissions()
+                                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all user group permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user group permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroups</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getUserGroups()
+                               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getUserGroups--">UserGroup</a></code></span></div>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member. If permission is granted for the current user to modify the
+ membership of this user group, then the returned set will be mutable,
+ and any such modifications should be made through changes to the
+ returned set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getUserGroups--">getUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups of which this user group is a
+     member.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMemberUsers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMemberUsers</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getMemberUsers()
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUsers--">UserGroup</a></code></span></div>
+<div class="block">Returns a set of all readable users that are members of this user group.
+ If permission is granted for the current user to modify the members of
+ this group, then the returned set will be mutable, and any such
+ modifications should be made through changes to the returned set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUsers--">getMemberUsers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set all readable users that are members of this user group,
+     which may be mutable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the users.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMemberUserGroups--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getMemberUserGroups</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getMemberUserGroups()
+                                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUserGroups--">UserGroup</a></code></span></div>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group. If permission is granted for the current user to modify the
+ members of this group, then the returned set will be mutable, and any
+ such modifications should be made through changes to the returned set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups that are members of this user
+     group, which may be mutable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingUserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingUserGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Directory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Directory.html
new file mode 100644
index 0000000..40b0794
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Directory.html
@@ -0,0 +1,392 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Directory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Directory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Directory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Directory.html" target="_top">Frames</a></li>
+<li><a href="Directory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Directory" class="title">Interface Directory&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>ObjectType</code> - The type of objects stored within this Directory.</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Directory&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></pre>
+<div class="block">Provides access to a collection of all objects with associated identifiers,
+ and allows user manipulation and removal. Objects returned by a Directory
+ are not necessarily backed by the stored objects, thus updating an object
+ always requires calling the update() function.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">add</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Adds the given object to the overall set.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">get</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Returns the object having the given identifier.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">getAll</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Returns the objects having the given identifiers.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getIdentifiers--">getIdentifiers</a></span>()</code>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#remove-java.lang.String-">remove</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">update</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="get-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&nbsp;get(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+        throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the object having the given identifier. Note that changes to
+ the object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within an
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to use when locating the object to
+                   return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The object having the given identifier, or null if no such object
+         exists.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the
+                            object, or if permission for retrieving the
+                            object is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAll-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAll</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&gt;&nbsp;getAll(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the objects having the given identifiers. Note that changes to
+ any object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within a
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers to use when locating the objects to return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The objects having the given identifiers. If any identifiers do not
+     correspond to accessible objects, those identifiers will be ignored.
+     If no objects correspond to any of the given identifiers, the
+     returned collection will be empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the objects, or if permission
+     to retrieve the requested objects is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifiers</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getIdentifiers()
+                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set of all identifiers.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving
+                            the identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="add-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="add-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>void&nbsp;add(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&nbsp;object)
+  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Adds the given object to the overall set. If a new identifier is
+ created for the added object, that identifier will be automatically
+ assigned via setIdentifier().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the object, or if adding the object
+     is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="update-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="update-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>update</h4>
+<pre>void&nbsp;update(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&nbsp;object)
+     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object which will supply the data for the update.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the object,
+                            or if updating the object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="remove-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>remove</h4>
+<pre>void&nbsp;remove(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the object to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the object,
+                            or if removing object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Directory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Directory.html" target="_top">Frames</a></li>
+<li><a href="Directory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html
new file mode 100644
index 0000000..e339b72
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html
@@ -0,0 +1,354 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleProxyConfiguration.EncryptionMethod (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleProxyConfiguration.EncryptionMethod (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProxyConfiguration.EncryptionMethod.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Enum GuacamoleProxyConfiguration.EncryptionMethod" class="title">Enum GuacamoleProxyConfiguration.EncryptionMethod</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <span class="typeNameLabel">GuacamoleProxyConfiguration.EncryptionMethod</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&gt;</pre>
+<div class="block">All possible types of encryption used by guacd.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#NONE">NONE</a></span></code>
+<div class="block">Unencrypted (plaintext).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#SSL">SSL</a></span></code>
+<div class="block">Encrypted with SSL or TLS.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="NONE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NONE</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a> NONE</pre>
+<div class="block">Unencrypted (plaintext).</div>
+</li>
+</ul>
+<a name="SSL">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SSL</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a> SSL</pre>
+<div class="block">Encrypted with SSL or TLS.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (GuacamoleProxyConfiguration.EncryptionMethod c : GuacamoleProxyConfiguration.EncryptionMethod.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProxyConfiguration.EncryptionMethod.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html
new file mode 100644
index 0000000..6a1a6aa
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html
@@ -0,0 +1,392 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleProxyConfiguration (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleProxyConfiguration (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProxyConfiguration.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class GuacamoleProxyConfiguration" class="title">Class GuacamoleProxyConfiguration</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.GuacamoleProxyConfiguration</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleProxyConfiguration</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Information which describes how the connection to guacd should be
+ established. This includes the hostname and port which guacd is listening on,
+ as well as the type of encryption required, if any.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Michael Jumper</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></span></code>
+<div class="block">All possible types of encryption used by guacd.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#GuacamoleProxyConfiguration-java.lang.String-int-boolean-">GuacamoleProxyConfiguration</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                           int&nbsp;port,
+                           boolean&nbsp;ssl)</code>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname and
+ port, with encryption method being restricted to either NONE or SSL.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#GuacamoleProxyConfiguration-java.lang.String-int-org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod-">GuacamoleProxyConfiguration</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                           int&nbsp;port,
+                           <a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&nbsp;encryptionMethod)</code>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname,
+ port, and encryption method.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getEncryptionMethod--">getEncryptionMethod</a></span>()</code>
+<div class="block">Returns the type of encryption required by guacd.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getHostname--">getHostname</a></span>()</code>
+<div class="block">Returns the hostname or address of the machine where guacd is running.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getPort--">getPort</a></span>()</code>
+<div class="block">Returns the port that guacd is listening on.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleProxyConfiguration-java.lang.String-int-org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleProxyConfiguration</h4>
+<pre>public&nbsp;GuacamoleProxyConfiguration(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                                   int&nbsp;port,
+                                   <a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&nbsp;encryptionMethod)</pre>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname,
+ port, and encryption method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>hostname</code> - The hostname or address of the machine where guacd is running.</dd>
+<dd><code>port</code> - The port that guacd is listening on.</dd>
+<dd><code>encryptionMethod</code> - The type of encryption required by the instance of guacd running at
+     the given hostname and port.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleProxyConfiguration-java.lang.String-int-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleProxyConfiguration</h4>
+<pre>public&nbsp;GuacamoleProxyConfiguration(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                                   int&nbsp;port,
+                                   boolean&nbsp;ssl)</pre>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname and
+ port, with encryption method being restricted to either NONE or SSL.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>hostname</code> - The hostname or address of the machine where guacd is running.</dd>
+<dd><code>port</code> - The port that guacd is listening on.</dd>
+<dd><code>ssl</code> - true if guacd requires SSL/TLS encryption, false if communication
+     with guacd should be unencrypted.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getHostname--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHostname</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getHostname()</pre>
+<div class="block">Returns the hostname or address of the machine where guacd is running.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The hostname or address of the machine where guacd is running.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPort--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPort</h4>
+<pre>public&nbsp;int&nbsp;getPort()</pre>
+<div class="block">Returns the port that guacd is listening on.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The port that guacd is listening on.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEncryptionMethod--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getEncryptionMethod</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&nbsp;getEncryptionMethod()</pre>
+<div class="block">Returns the type of encryption required by guacd.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The type of encryption required by guacd.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProxyConfiguration.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Identifiable.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Identifiable.html
new file mode 100644
index 0000000..d898ee4
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Identifiable.html
@@ -0,0 +1,263 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Identifiable (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Identifiable (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Identifiable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Identifiable.html" target="_top">Frames</a></li>
+<li><a href="Identifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Identifiable" class="title">Interface Identifiable</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>, <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Identifiable</span></pre>
+<div class="block">An object which has a deterministic, unique identifier, which may not be
+ null.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Identifiable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Identifiable.html" target="_top">Frames</a></li>
+<li><a href="Identifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Permissions.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Permissions.html
new file mode 100644
index 0000000..0491e3e
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Permissions.html
@@ -0,0 +1,399 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Permissions (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Permissions (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Permissions.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Permissions.html" target="_top">Frames</a></li>
+<li><a href="Permissions.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Permissions" class="title">Interface Permissions</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>, <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Permissions</span></pre>
+<div class="block">An object which may be granted permissions to access/manipulate various
+ other objects or aspects of the system. The permissions granted are exposed
+ through subclasses of PermissionSet, and may be mutable depending on the
+ access level of the current user.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getActiveConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionPermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getActiveConnectionPermissions()
+                                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all active connection permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupPermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionGroupPermissions()
+                                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all connection group permissions given to this object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection group permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionPermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionPermissions()
+                                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all connection permissions given to this object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfilePermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfilePermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getSharingProfilePermissions()
+                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all sharing profile permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSystemPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSystemPermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>&nbsp;getSystemPermissions()
+                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all system-level permissions given to this object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A SystemPermissionSet of all system-level permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserPermissions()
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all user permissions given to this object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getUserGroupPermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserGroupPermissions()
+                                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all user group permissions given to this object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user group permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Permissions.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Permissions.html" target="_top">Frames</a></li>
+<li><a href="Permissions.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/RelatedObjectSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/RelatedObjectSet.html
new file mode 100644
index 0000000..298dfe4
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/RelatedObjectSet.html
@@ -0,0 +1,340 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RelatedObjectSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RelatedObjectSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RelatedObjectSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/RelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="RelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface RelatedObjectSet" class="title">Interface RelatedObjectSet</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">RelatedObjectSet</span></pre>
+<div class="block">An arbitrary set of existing objects sharing some common relation. Unlike a
+ Directory, which provides for maintaining the entire lifecycle of its
+ objects, a RelatedObjectSet only maintains the relation between its
+ containing object and the objects within the set. Adding/removing an object
+ from a RelatedObjectSet affects only the status of the specific relationship
+ represented by the RelatedObjectSet, not the existence of the objects
+ themselves.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#EMPTY_SET">EMPTY_SET</a></span></code>
+<div class="block">An immutable instance of RelatedObjectSEt which contains no objects.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#addObjects-java.util.Set-">addObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Adds the objects having the given identifiers, if not already present.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#getObjects--">getObjects</a></span>()</code>
+<div class="block">Returns a Set which contains the identifiers of all objects contained
+ within this RelatedObjectSet.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#removeObjects-java.util.Set-">removeObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Removes each of the objects having the specified identifiers, if
+ present.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="EMPTY_SET">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EMPTY_SET</h4>
+<pre>static final&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a> EMPTY_SET</pre>
+<div class="block">An immutable instance of RelatedObjectSEt which contains no objects.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getObjects--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjects</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getObjects()
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a Set which contains the identifiers of all objects contained
+ within this RelatedObjectSet.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set which contains the identifiers of all objects contained
+     within this RelatedObjectSet.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the objects within the set, or
+     if objects cannot be retrieved due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addObjects-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addObjects</h4>
+<pre>void&nbsp;addObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Adds the objects having the given identifiers, if not already present.
+ If a specified object is already present, no operation is performed
+ regarding that object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers of all objects being added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the objects, or if permission to add
+     objects is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removeObjects-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removeObjects</h4>
+<pre>void&nbsp;removeObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Removes each of the objects having the specified identifiers, if
+ present. If a specified object is not present, no operation is performed
+ regarding that object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers of all objects being removed.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the objects, or if permission to
+     remove objects is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RelatedObjectSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/RelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="RelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Shareable.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Shareable.html
new file mode 100644
index 0000000..d4055f5
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Shareable.html
@@ -0,0 +1,262 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Shareable (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Shareable (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Shareable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Shareable.html" target="_top">Frames</a></li>
+<li><a href="Shareable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Shareable" class="title">Interface Shareable&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - The type of object which dictates the semantics/restrictions of shared
+     objects.</dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Shareable&lt;T&gt;</span></pre>
+<div class="block">An object which can be shared with others via specially-generated sets of
+ credentials. It is expected, but not required, that these credentials are
+ temporary.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html#getSharingCredentials-java.lang.String-">getSharingCredentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Returns a full set of credentials which can be used to authenticate as a
+ user with access strictly to this object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getSharingCredentials-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getSharingCredentials</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a>&nbsp;getSharingCredentials(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+                               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a full set of credentials which can be used to authenticate as a
+ user with access strictly to this object. The semantics and restrictions
+ of the shared object (when accessed using the returned sharing
+ credentials) are defined by the <code>T</code> associated with the given
+ identifier and within the
+ <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>&lt;<code>T</code>&gt; of the same <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><code>UserContext</code></a> that
+ this Shareable was retrieved from.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of a <code>T</code> within the
+     <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>&lt;<code>T</code>&gt; of the same <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><code>UserContext</code></a>
+     that this Shareable was retrieved from.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A full set of credentials which can be used to authenticate and
+     obtain access to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If credentials could not be generated, or permission to share this
+     object is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Shareable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Shareable.html" target="_top">Frames</a></li>
+<li><a href="Shareable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/SharingProfile.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/SharingProfile.html
new file mode 100644
index 0000000..4295d69
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/SharingProfile.html
@@ -0,0 +1,377 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SharingProfile (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SharingProfile (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SharingProfile.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/SharingProfile.html" target="_top">Frames</a></li>
+<li><a href="SharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface SharingProfile" class="title">Interface SharingProfile</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">SharingProfile</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></pre>
+<div class="block">Represents the semantics which apply to an existing connection when shared,
+ along with a human-readable name and unique identifier.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getParameters--">getParameters</a></span>()</code>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setParameters-java.util.Map-">setParameters</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</code>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this SharingProfile.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPrimaryConnectionIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPrimaryConnectionIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPrimaryConnectionIdentifier()</pre>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection. The primary connection is the connection that this sharing
+ profile can be used to share.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the primary connection associated with this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPrimaryConnectionIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPrimaryConnectionIdentifier</h4>
+<pre>void&nbsp;setPrimaryConnectionIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection. The primary connection is the connection that this sharing
+ profile can be used to share.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the primary connection associated with this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParameters--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameters</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getParameters()</pre>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs. Changes to this map will affect the parameters stored
+ within this sharing profile. The differences in these parameters compared
+ to those of the associated primary connection yield different levels of
+ access to users joining the primary connection via this sharing profile.
+ Note that because configurations may contain sensitive information, some
+ data in this map may be omitted or tokenized.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map which contains all connection parameter name/value pairs as
+     key/value pairs.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParameters-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setParameters</h4>
+<pre>void&nbsp;setParameters(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</pre>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map. Key/value pairs within the map represent parameter name/value
+ pairs. The differences in these parameters compared to those of the
+ associated primary connection yield different levels of access to users
+ joining the primary connection via this sharing profile.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parameters</code> - A map which contains all connection parameter name/value pairs as
+     key/value pairs.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SharingProfile.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/SharingProfile.html" target="_top">Frames</a></li>
+<li><a href="SharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingConnection.html
new file mode 100644
index 0000000..bbec96e
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingConnection.html
@@ -0,0 +1,336 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TokenInjectingConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TokenInjectingConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenInjectingConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/TokenInjectingConnection.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class TokenInjectingConnection" class="title">Class TokenInjectingConnection</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.DelegatingConnection</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.TokenInjectingConnection</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TokenInjectingConnection</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></pre>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html#TokenInjectingConnection-org.apache.guacamole.net.auth.Connection-java.util.Map-">TokenInjectingConnection</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection,
+                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Wraps the given Connection, automatically adding the given tokens to
+ each invocation of connect().</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.DelegatingConnection">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getActiveConnections--">getActiveConnections</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getConfiguration--">getConfiguration</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getDelegateConnection--">getDelegateConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getHistory--">getHistory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getLastActive--">getLastActive</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getName--">getName</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getParentIdentifier--">getParentIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setAttributes-java.util.Map-">setAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setIdentifier-java.lang.String-">setIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setName-java.lang.String-">setName</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TokenInjectingConnection-org.apache.guacamole.net.auth.Connection-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TokenInjectingConnection</h4>
+<pre>public&nbsp;TokenInjectingConnection(<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection,
+                                <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</pre>
+<div class="block">Wraps the given Connection, automatically adding the given tokens to
+ each invocation of connect(). Any additional tokens which have the same
+ name as existing tokens will override the existing values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connection</code> - The Connection to wrap.</dd>
+<dd><code>tokens</code> - The additional tokens to include with each call to connect().</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>connect</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenInjectingConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/TokenInjectingConnection.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html
new file mode 100644
index 0000000..a3b4b9b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html
@@ -0,0 +1,351 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TokenInjectingConnectionGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TokenInjectingConnectionGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenInjectingConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class TokenInjectingConnectionGroup" class="title">Class TokenInjectingConnectionGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.DelegatingConnectionGroup</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.TokenInjectingConnectionGroup</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TokenInjectingConnectionGroup</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></pre>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ConnectionGroup">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html#TokenInjectingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-java.util.Map-">TokenInjectingConnectionGroup</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Wraps the given ConnectionGroup, automatically adding the given tokens
+ to each invocation of connect().</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.DelegatingConnectionGroup">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getActiveConnections--">getActiveConnections</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getDelegateConnectionGroup--">getDelegateConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getName--">getName</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getType--">getType</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setAttributes-java.util.Map-">setAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setIdentifier-java.lang.String-">setIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setName-java.lang.String-">setName</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TokenInjectingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TokenInjectingConnectionGroup</h4>
+<pre>public&nbsp;TokenInjectingConnectionGroup(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup,
+                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</pre>
+<div class="block">Wraps the given ConnectionGroup, automatically adding the given tokens
+ to each invocation of connect(). Any additional tokens which have the
+ same name as existing tokens will override the existing values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connectionGroup</code> - The ConnectionGroup to wrap.</dd>
+<dd><code>tokens</code> - The additional tokens to include with each call to connect().</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>connect</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenInjectingConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingUserContext.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingUserContext.html
new file mode 100644
index 0000000..02342e7
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingUserContext.html
@@ -0,0 +1,444 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TokenInjectingUserContext (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TokenInjectingUserContext (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenInjectingUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/TokenInjectingUserContext.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class TokenInjectingUserContext" class="title">Class TokenInjectingUserContext</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.DelegatingUserContext</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.TokenInjectingUserContext</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TokenInjectingUserContext</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></pre>
+<div class="block">UserContext implementation which decorates a given UserContext,
+ automatically applying additional parameter tokens during the connection
+ process of any retrieved Connections and ConnectionGroups.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-">TokenInjectingUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext)</code>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the additional
+ parameter tokens returned by getTokens() are included.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-java.util.Map-">TokenInjectingUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the given additional
+ parameter tokens are included.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getTokens-org.apache.guacamole.net.auth.Connection-">getTokens</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given Connection.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getTokens-org.apache.guacamole.net.auth.ConnectionGroup-">getTokens</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given ConnectionGroup.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.DelegatingUserContext">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionAttributes--">getConnectionAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionHistory--">getConnectionHistory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getDelegateUserContext--">getDelegateUserContext</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getResource--">getResource</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserAttributes--">getUserAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserDirectory--">getUserDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserHistory--">getUserHistory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#invalidate--">invalidate</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#self--">self</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TokenInjectingUserContext</h4>
+<pre>public&nbsp;TokenInjectingUserContext(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext,
+                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</pre>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the given additional
+ parameter tokens are included. Any additional tokens which have the same
+ name as existing tokens will override the existing values. If tokens
+ specific to a particular connection or connection group need to be
+ included, getTokens() may be overridden to provide a different set of
+ tokens.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>userContext</code> - The UserContext to wrap.</dd>
+<dd><code>tokens</code> - The additional tokens to include with each call to connect().</dd>
+</dl>
+</li>
+</ul>
+<a name="TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TokenInjectingUserContext</h4>
+<pre>public&nbsp;TokenInjectingUserContext(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext)</pre>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the additional
+ parameter tokens returned by getTokens() are included. Any additional
+ tokens which have the same name as existing tokens will override the
+ existing values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>userContext</code> - The UserContext to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTokens-org.apache.guacamole.net.auth.Connection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTokens</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getTokens(<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</pre>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given Connection. If not overridden, this function
+ will return the tokens provided when this instance of
+ TokenInjectingUserContext was created.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connection</code> - The Connection on which connect() has been called.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The tokens which should be added to the in-progress call to
+     connect().</dd>
+</dl>
+</li>
+</ul>
+<a name="getTokens-org.apache.guacamole.net.auth.ConnectionGroup-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTokens</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getTokens(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</pre>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given ConnectionGroup. If not overridden, this
+ function will return the tokens provided when this instance of
+ TokenInjectingUserContext was created.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connectionGroup</code> - The ConnectionGroup on which connect() has been called.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The tokens which should be added to the in-progress call to
+     connect().</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;getConnectionGroupDirectory()
+                                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getConnectionDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;getConnectionDirectory()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of 
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenInjectingUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/TokenInjectingUserContext.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/User.Attribute.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/User.Attribute.html
new file mode 100644
index 0000000..e61d36a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/User.Attribute.html
@@ -0,0 +1,336 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>User.Attribute (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="User.Attribute (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/User.Attribute.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/User.Attribute.html" target="_top">Frames</a></li>
+<li><a href="User.Attribute.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class User.Attribute" class="title">Class User.Attribute</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.User.Attribute</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <span class="typeNameLabel">User.Attribute</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">All standard attribute names with semantics defined by the Guacamole web
+ application. Extensions may additionally define their own attributes
+ with completely arbitrary names and semantics, so long as those names do
+ not conflict with the names listed here. All standard attribute names
+ have a "guac-" prefix to avoid such conflicts.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html#EMAIL_ADDRESS">EMAIL_ADDRESS</a></span></code>
+<div class="block">The email address of the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html#FULL_NAME">FULL_NAME</a></span></code>
+<div class="block">The user's full name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html#ORGANIZATION">ORGANIZATION</a></span></code>
+<div class="block">The organization, company, group, etc.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html#ORGANIZATIONAL_ROLE">ORGANIZATIONAL_ROLE</a></span></code>
+<div class="block">The role that the user has at the organization, company, group, etc.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html#Attribute--">Attribute</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="FULL_NAME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FULL_NAME</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> FULL_NAME</pre>
+<div class="block">The user's full name.</div>
+</li>
+</ul>
+<a name="EMAIL_ADDRESS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EMAIL_ADDRESS</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> EMAIL_ADDRESS</pre>
+<div class="block">The email address of the user.</div>
+</li>
+</ul>
+<a name="ORGANIZATION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ORGANIZATION</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ORGANIZATION</pre>
+<div class="block">The organization, company, group, etc. that the user belongs to.</div>
+</li>
+</ul>
+<a name="ORGANIZATIONAL_ROLE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ORGANIZATIONAL_ROLE</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ORGANIZATIONAL_ROLE</pre>
+<div class="block">The role that the user has at the organization, company, group, etc.
+ they belong to.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Attribute--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Attribute</h4>
+<pre>public&nbsp;Attribute()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/User.Attribute.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/User.Attribute.html" target="_top">Frames</a></li>
+<li><a href="User.Attribute.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/User.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/User.html
new file mode 100644
index 0000000..1d6a98b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/User.html
@@ -0,0 +1,413 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>User (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="User (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/User.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/User.html" target="_top">Frames</a></li>
+<li><a href="User.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface User" class="title">Interface User</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">User</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></pre>
+<div class="block">A user of the Guacamole web application.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></span></code>
+<div class="block">All standard attribute names with semantics defined by the Guacamole web
+ application.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.html#getEffectivePermissions--">getEffectivePermissions</a></span>()</code>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.html#getHistory--">getHistory</a></span>()</code>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.html#getLastActive--">getLastActive</a></span>()</code>
+<div class="block">Returns the date and time that this user was last active.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.html#getPassword--">getPassword</a></span>()</code>
+<div class="block">Returns this user's password.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.html#setPassword-java.lang.String-">setPassword</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</code>
+<div class="block">Sets this user's password.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Permissions">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getPassword--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPassword</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPassword()</pre>
+<div class="block">Returns this user's password. Note that the password returned may be
+ hashed or completely arbitrary.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A String which may (or may not) be the user's password.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPassword-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPassword</h4>
+<pre>void&nbsp;setPassword(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</pre>
+<div class="block">Sets this user's password. Note that while this function is guaranteed
+ to change the password of this User object, there is no guarantee that
+ getPassword() will return the value given to setPassword().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>password</code> - The password to set.</dd>
+</dl>
+</li>
+</ul>
+<a name="getLastActive--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastActive</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getLastActive()</pre>
+<div class="block">Returns the date and time that this user was last active. If the user
+ was never active, the time that the user was last active is unknown, or
+ this information is not visible to the current user, this may be null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time this user was last active, or null if this
+     information is unavailable or inapplicable.</dd>
+</dl>
+</li>
+</ul>
+<a name="getHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHistory</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;&nbsp;getHistory()
+                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions. ActivityRecords
+ in this list will be sorted in descending order of end time (active
+ sessions are first), and then in descending order of start time
+ (newer sessions are first).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A list of ActivityRecords representing the login history of this
+     User.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while reading the history of this user, or if
+     permission is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroups</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getUserGroups()
+                        throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable user groups of which this user is a member.
+ If permission is granted for the current user to modify the membership of
+ this user, then the returned set will be mutable, and any such
+ modifications should be made through changes to the returned set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups of which this user is a member.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEffectivePermissions--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getEffectivePermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>&nbsp;getEffectivePermissions()
+                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a read-only view of all permissions granted to this user. The
+ exact semantics of what permissions are granted are up to the
+ implementation, and the permissions within this view may be implied,
+ derived dynamically, inherited through multiple levels of group
+ membership, etc.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A read-only view of the permissions which are granted to this user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/User.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/User.html" target="_top">Frames</a></li>
+<li><a href="User.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/UserContext.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/UserContext.html
new file mode 100644
index 0000000..0f108e2
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/UserContext.html
@@ -0,0 +1,686 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UserContext (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UserContext (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/UserContext.html" target="_top">Frames</a></li>
+<li><a href="UserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface UserContext" class="title">Interface UserContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">UserContext</span></pre>
+<div class="block">The context of an active user. The functions of this class enforce all
+ permissions and act only within the rights of the associated user.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionAttributes--">getConnectionAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getResource--">getResource</a></span>()</code>
+<div class="block">Returns an arbitrary REST resource representing this UserContext.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></span>()</code>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserAttributes--">getUserAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#invalidate--">invalidate</a></span>()</code>
+<div class="block">Invalidates this user context, releasing all associated resources.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#self--">self</a></span>()</code>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="self--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>self</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;self()</pre>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The User whose access rights control the operations of this
+         UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="getResource--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResource</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getResource()
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns an arbitrary REST resource representing this UserContext. The
+ REST resource returned must be properly annotated with JSR-311
+ annotations, and may serve as the root resource for any number of
+ subresources. The returned resource is ultimately exposed at
+ ".../api/session/ext/IDENTIFIER/", where IDENTIFIER is the identifier of
+ the AuthenticationProvider associated with this UserContext.
+
+ REST resources returned by this function will only be reachable by
+ authenticated users with valid authentication tokens. REST resources
+ which should be accessible by all users regardless of whether they have
+ authenticated should instead be returned from
+ AuthenticationProvider.getResource().</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary REST resource, annotated with JSR-311 annotations, or
+     null if no such resource is defined.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the REST resource cannot be returned due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAuthenticationProvider--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticationProvider</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;getAuthenticationProvider()</pre>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticationProvider that created this UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserDirectory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;&nbsp;getUserDirectory()
+                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the restrictions
+         of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupDirectory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;&nbsp;getUserGroupDirectory()
+                                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the restrictions
+     of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionDirectory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;getConnectionDirectory()
+                                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of 
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupDirectory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;getConnectionGroupDirectory()
+                                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionDirectory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;&nbsp;getActiveConnectionDirectory()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of the
+     user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileDirectory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;&nbsp;getSharingProfileDirectory()
+                                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of the
+     user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionHistory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;getConnectionHistory()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves all connection records visible to current user. Connection
+ history records describe the start and end times of connections, and
+ correspond to the times that users connect or disconnect to individual
+ remote desktops. The resulting set of connection records can be further
+ filtered and ordered using the methods defined on ActivityRecordSet.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all connection records visible to the current user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the connection records.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserHistory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;&nbsp;getUserHistory()
+                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves all user history records visible to current user. User history
+ records describe the start and end times of user sessions, and correspond
+ to the times that users logged in or out. The resulting set of user
+ records can be further filtered and ordered using the methods defined on
+ ActivityRecordSet.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all user records visible to the current user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user records.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRootConnectionGroup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRootConnectionGroup</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;getRootConnectionGroup()
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A connection group whose operations are bound by the restrictions
+         of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserAttributes</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getUserAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to users. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to users.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupAttributes</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getUserGroupAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to user groups. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionAttributes</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to connections. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to connections.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupAttributes</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionGroupAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups. This collection will contain only those attributes which the
+ current user has general permission to view or modify. If there are no
+ such attributes, this collection will be empty.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to connection groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileAttributes</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getSharingProfileAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.
+ This collection will contain only those attributes which the current user
+ has general permission to view or modify. If there are no such
+ attributes, this collection will be empty.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to sharing profile.</dd>
+</dl>
+</li>
+</ul>
+<a name="invalidate--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>invalidate</h4>
+<pre>void&nbsp;invalidate()</pre>
+<div class="block">Invalidates this user context, releasing all associated resources. This
+ function will be invoked when the user logs out, or when their session
+ is automatically invalidated.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/UserContext.html" target="_top">Frames</a></li>
+<li><a href="UserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/UserGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/UserGroup.html
new file mode 100644
index 0000000..3d52f42
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/UserGroup.html
@@ -0,0 +1,327 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UserGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UserGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/UserGroup.html" target="_top">Frames</a></li>
+<li><a href="UserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface UserGroup" class="title">Interface UserGroup</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">UserGroup</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></pre>
+<div class="block">A user group of the Guacamole web application. Each user group may contain
+ any number of Guacamole users and other user groups, and defines the
+ permissions implicitly granted to its members.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUsers--">getMemberUsers</a></span>()</code>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Permissions">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroups</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getUserGroups()
+                        throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member. If permission is granted for the current user to modify the
+ membership of this user group, then the returned set will be mutable,
+ and any such modifications should be made through changes to the
+ returned set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups of which this user group is a
+     member.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMemberUsers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMemberUsers</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getMemberUsers()
+                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable users that are members of this user group.
+ If permission is granted for the current user to modify the members of
+ this group, then the returned set will be mutable, and any such
+ modifications should be made through changes to the returned set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set all readable users that are members of this user group,
+     which may be mutable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the users.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMemberUserGroups--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getMemberUserGroups</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getMemberUserGroups()
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group. If permission is granted for the current user to modify the
+ members of this group, then the returned set will be mutable, and any
+ such modifications should be made through changes to the returned set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups that are members of this user
+     group, which may be mutable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/UserGroup.html" target="_top">Frames</a></li>
+<li><a href="UserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractActiveConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractActiveConnection.html
new file mode 100644
index 0000000..eff1fff
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractActiveConnection.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractActiveConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractActiveConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractActiveConnection" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractActiveConnection</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.AbstractActiveConnection</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractAuthenticatedUser.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractAuthenticatedUser.html
new file mode 100644
index 0000000..e6fa2a6
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractAuthenticatedUser.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractAuthenticatedUser (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractAuthenticatedUser (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractAuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractAuthenticatedUser" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractAuthenticatedUser</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.AbstractAuthenticatedUser</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractAuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractAuthenticationProvider.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractAuthenticationProvider.html
new file mode 100644
index 0000000..503c247
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractAuthenticationProvider.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractAuthenticationProvider (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractAuthenticationProvider (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractAuthenticationProvider" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractAuthenticationProvider</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></span></code>
+<div class="block">Provides means of retrieving a set of named GuacamoleConfigurations for a
+ given Credentials object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractConnection.html
new file mode 100644
index 0000000..0ffc8ac
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractConnection.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractConnection" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractConnection</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></span></code>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractConnectionGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractConnectionGroup.html
new file mode 100644
index 0000000..6f5fea4
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractConnectionGroup.html
@@ -0,0 +1,174 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractConnectionGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractConnectionGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractConnectionGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractConnectionGroup</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></span></code>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html
new file mode 100644
index 0000000..04f469f
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html
@@ -0,0 +1,255 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractIdentifiable (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractIdentifiable (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html" target="_top">Frames</a></li>
+<li><a href="AbstractIdentifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractIdentifiable" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractIdentifiable</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></span></code>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></span></code>
+<div class="block">Basic implementation of an AuthenticatedUser which uses the username to
+ determine equality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></span></code>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></span></code>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></span></code>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></span></code>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></span></code>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></span></code>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html" target="_top">Frames</a></li>
+<li><a href="AbstractIdentifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractSharingProfile.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractSharingProfile.html
new file mode 100644
index 0000000..a9f5a98
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractSharingProfile.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractSharingProfile (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractSharingProfile (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="AbstractSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractSharingProfile" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractSharingProfile</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.AbstractSharingProfile</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="AbstractSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUser.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUser.html
new file mode 100644
index 0000000..8d994fd
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUser.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractUser (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractUser (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractUser" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractUser</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></span></code>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUserContext.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUserContext.html
new file mode 100644
index 0000000..aec569d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUserContext.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractUserContext (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractUserContext (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractUserContext.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractUserContext" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractUserContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></span></code>
+<div class="block">An extremely simple UserContext implementation which provides access to
+ a defined and restricted set of GuacamoleConfigurations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractUserContext.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUserGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUserGroup.html
new file mode 100644
index 0000000..b5988bd
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUserGroup.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractUserGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractUserGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractUserGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractUserGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractUserGroup</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></span></code>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractUserGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActiveConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActiveConnection.html
new file mode 100644
index 0000000..8ac7506
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActiveConnection.html
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.ActiveConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.ActiveConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="ActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.ActiveConnection" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.ActiveConnection</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></span></code>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="ActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecord.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecord.html
new file mode 100644
index 0000000..c33c5be
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecord.html
@@ -0,0 +1,260 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.ActivityRecord (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.ActivityRecord (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActivityRecord.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.ActivityRecord" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.ActivityRecord</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with type parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;RecordType extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</span></code>
+<div class="block">A set of all available records related to a type of activity which has a
+ defined start and end time, such as a user being logged in or connected, or a
+ subset of those records.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></span></code>
+<div class="block">A logging record describing when a user started and ended usage of a
+ particular connection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getHistory--">getHistory</a></span>()</code>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">User.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/User.html#getHistory--">getHistory</a></span>()</code>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getHistory--">getHistory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserHistory--">getUserHistory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a>&lt;RecordType extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</span></code>
+<div class="block">An immutable and empty ActivityRecordSet.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActivityRecord.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html
new file mode 100644
index 0000000..62b972d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html
@@ -0,0 +1,229 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.SortableProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty" class="title">Uses of Class<br>org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ActivityRecordSet.SortableProperty.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">ActivityRecordSet.SortableProperty.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.SortableProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html
new file mode 100644
index 0000000..8735d59
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html
@@ -0,0 +1,294 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.ActivityRecordSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.ActivityRecordSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.ActivityRecordSet" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.ActivityRecordSet</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt; instead.</span></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">contains</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Returns the subset of records which contain the given value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserHistory--">getUserHistory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">limit</a></span>(int&nbsp;limit)</code>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a>&lt;RecordType extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</span></code>
+<div class="block">An immutable and empty ActivityRecordSet.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleActivityRecordSet</code></a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt;
+     instead.</span></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#contains-java.lang.String-">contains</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#limit-int-">limit</a></span>(int&nbsp;limit)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Attributes.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Attributes.html
new file mode 100644
index 0000000..098d5be
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Attributes.html
@@ -0,0 +1,341 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Attributes (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Attributes (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Attributes.html" target="_top">Frames</a></li>
+<li><a href="Attributes.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Attributes" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Attributes</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span></code>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span></code>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span></code>
+<div class="block">Represents the semantics which apply to an existing connection when shared,
+ along with a human-readable name and unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span></code>
+<div class="block">A user of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span></code>
+<div class="block">A user group of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></span></code>
+<div class="block">Base implementation of a sharing profile which can be used to share a
+ Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></span></code>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></span></code>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></span></code>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></span></code>
+<div class="block">SharingProfile implementation which simply delegates all function calls to an
+ underlying SharingProfile.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></span></code>
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></span></code>
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></span></code>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></span></code>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></span></code>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></span></code>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></span></code>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Attributes.html" target="_top">Frames</a></li>
+<li><a href="Attributes.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html
new file mode 100644
index 0000000..75cc5fc
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html
@@ -0,0 +1,452 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.AuthenticatedUser (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.AuthenticatedUser (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.AuthenticatedUser" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.AuthenticatedUser</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.token">org.apache.guacamole.token</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></span></code>
+<div class="block">Basic implementation of an AuthenticatedUser which uses the username to
+ determine equality.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a> in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationSuccessEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TunnelCloseEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TunnelConnectEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#AuthenticationSuccessEvent-org.apache.guacamole.net.auth.AuthenticatedUser-">AuthenticationSuccessEvent</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Creates a new AuthenticationSuccessEvent which represents a successful
+ authentication attempt by the user identified by the given
+ AuthenticatedUser object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#TunnelCloseEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelCloseEvent</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Creates a new TunnelCloseEvent which represents the closing of the
+ given tunnel via a request associated with the given credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#TunnelConnectEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelConnectEvent</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                  <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                  org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Creates a new TunnelConnectEvent which represents the connecting of the
+ given tunnel via a request associated with the given credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.token">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a> in <a href="../../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">StandardTokens.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.AuthenticatedUser-">addStandardTokens</a></span>(<a href="../../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;user)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given AuthenticatedUser object,
+ including any associated credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html
new file mode 100644
index 0000000..0331f14
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html
@@ -0,0 +1,273 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.AuthenticationProvider (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.AuthenticationProvider (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.AuthenticationProvider" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.AuthenticationProvider</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></span></code>
+<div class="block">Base implementation of AuthenticationProvider which provides default
+ implementations of most functions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticatedUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>
+<div class="block">Returns the AuthenticationProvider that authenticated this user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></span></code>
+<div class="block">Provides means of retrieving a set of named GuacamoleConfigurations for a
+ given Credentials object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.util.Map-">SimpleUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs)</code>
+<div class="block">Creates a new SimpleUserContext which provides access to only those
+ configurations within the given Map.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-">SimpleUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs)</code>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-boolean-">SimpleUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs,
+                 boolean&nbsp;interpretTokens)</code>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Connectable.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Connectable.html
new file mode 100644
index 0000000..48824c7
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Connectable.html
@@ -0,0 +1,281 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Connectable (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Connectable (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Connectable.html" target="_top">Frames</a></li>
+<li><a href="Connectable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Connectable" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Connectable</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></span></code>
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span></code>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span></code>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></span></code>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></span></code>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></span></code>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></span></code>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></span></code>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Connectable.html" target="_top">Frames</a></li>
+<li><a href="Connectable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Connection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Connection.html
new file mode 100644
index 0000000..bb5f3e1
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Connection.html
@@ -0,0 +1,367 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Connection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Connection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Connection.html" target="_top">Frames</a></li>
+<li><a href="Connection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Connection" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Connection</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></span></code>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></span></code>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingConnection.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getDelegateConnection--">getDelegateConnection</a></span>()</code>
+<div class="block">Returns the underlying Connection wrapped by this DelegatingConnection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">TokenInjectingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">TokenInjectingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getTokens-org.apache.guacamole.net.auth.Connection-">getTokens</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given Connection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#DelegatingConnection-org.apache.guacamole.net.auth.Connection-">DelegatingConnection</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block">Wraps the given Connection such that all function calls against this
+ DelegatingConnection will be delegated to it.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html#TokenInjectingConnection-org.apache.guacamole.net.auth.Connection-java.util.Map-">TokenInjectingConnection</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection,
+                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Wraps the given Connection, automatically adding the given tokens to
+ each invocation of connect().</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></span></code>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#putConnection-org.apache.guacamole.net.auth.Connection-">putConnection</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the Connections in this Directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#removeConnection-java.lang.String-">removeConnection</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for removing a Connection from this Directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#putConnection-org.apache.guacamole.net.auth.Connection-">putConnection</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the Connections in this Directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#SimpleConnectionDirectory-java.util.Collection-">SimpleConnectionDirectory</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;connections)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleConnectionDirectory which provides access to the
+ connections contained within the given Map.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Connection.html" target="_top">Frames</a></li>
+<li><a href="Connection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionGroup.Type.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionGroup.Type.html
new file mode 100644
index 0000000..840c508
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionGroup.Type.html
@@ -0,0 +1,215 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.ConnectionGroup.Type (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.ConnectionGroup.Type (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionGroup.Type.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.ConnectionGroup.Type" class="title">Uses of Class<br>org.apache.guacamole.net.auth.ConnectionGroup.Type</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of this connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getType--">getType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getType--">getType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ConnectionGroup.Type.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">ConnectionGroup.Type.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</code>
+<div class="block">Set the type of this ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionGroup.Type.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionGroup.html
new file mode 100644
index 0000000..4b0da81
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionGroup.html
@@ -0,0 +1,376 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.ConnectionGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.ConnectionGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.ConnectionGroup" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.ConnectionGroup</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getDelegateConnectionGroup--">getDelegateConnectionGroup</a></span>()</code>
+<div class="block">Returns the underlying ConnectionGroup wrapped by this
+ DelegatingConnectionGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></span>()</code>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></span>()</code>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">TokenInjectingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">TokenInjectingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getTokens-org.apache.guacamole.net.auth.ConnectionGroup-">getTokens</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given ConnectionGroup.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#DelegatingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">DelegatingConnectionGroup</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block">Wraps the given ConnectionGroup such that all function calls against this
+ DelegatingConnectionGroup will be delegated to it.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html#TokenInjectingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-java.util.Map-">TokenInjectingConnectionGroup</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Wraps the given ConnectionGroup, automatically adding the given tokens
+ to each invocation of connect().</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></span></code>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionGroupDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#putConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">putConnectionGroup</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the ConnectionGroups in this Directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionGroupDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#removeConnectionGroup-java.lang.String-">removeConnectionGroup</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for removing a ConnectionGroup from this Directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionGroupDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#putConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">putConnectionGroup</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the ConnectionGroups in this Directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#SimpleConnectionGroupDirectory-java.util.Collection-">SimpleConnectionGroupDirectory</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;groups)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleConnectionGroupDirectory which contains the given
+ groups.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionRecord.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionRecord.html
new file mode 100644
index 0000000..6f6e434
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionRecord.html
@@ -0,0 +1,224 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.ConnectionRecord (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.ConnectionRecord (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionRecord.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.ConnectionRecord" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.ConnectionRecord</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">Connection.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html#getHistory--">getHistory</a></span>()</code>
+<div class="block">Returns a list of ConnectionRecords representing the usage history
+ of this Connection, including any active users.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingConnection.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getHistory--">getHistory</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#asCollection--">asCollection</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnection.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getHistory--">getHistory</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionRecord.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionRecordSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionRecordSet.html
new file mode 100644
index 0000000..ab95a2a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionRecordSet.html
@@ -0,0 +1,203 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.ConnectionRecordSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.ConnectionRecordSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.ConnectionRecordSet" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.ConnectionRecordSet</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleActivityRecordSet</code></a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt;
+     instead.</span></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#contains-java.lang.String-">contains</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#limit-int-">limit</a></span>(int&nbsp;limit)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Credentials.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Credentials.html
new file mode 100644
index 0000000..26935d0
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Credentials.html
@@ -0,0 +1,408 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.Credentials (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.Credentials (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Credentials.html" target="_top">Frames</a></li>
+<li><a href="Credentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.Credentials" class="title">Uses of Class<br>org.apache.guacamole.net.auth.Credentials</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.token">org.apache.guacamole.token</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticatedUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the credentials that the user provided when they successfully
+ authenticated.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getAuthorizedConfigurations-org.apache.guacamole.net.auth.Credentials-">getAuthorizedConfigurations</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given an arbitrary credentials object, returns a Map containing all
+ configurations authorized by those credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a> in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationSuccessEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#getCredentials--">getCredentials</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CredentialEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TunnelCloseEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#getCredentials--">getCredentials</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationFailureEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html#getCredentials--">getCredentials</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TunnelConnectEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#getCredentials--">getCredentials</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html#AuthenticationFailureEvent-org.apache.guacamole.net.auth.Credentials-">AuthenticationFailureEvent</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Creates a new AuthenticationFailureEvent which represents the failure
+ to authenticate the given credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#TunnelCloseEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelCloseEvent</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Creates a new TunnelCloseEvent which represents the closing of the
+ given tunnel via a request associated with the given credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#TunnelConnectEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelConnectEvent</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                  <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                  org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Creates a new TunnelConnectEvent which represents the connecting of the
+ given tunnel via a request associated with the given credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.token">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a> in <a href="../../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">StandardTokens.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.Credentials-">addStandardTokens</a></span>(<a href="../../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given Credentials object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Credentials.html" target="_top">Frames</a></li>
+<li><a href="Credentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DecoratingDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DecoratingDirectory.html
new file mode 100644
index 0000000..0890709
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DecoratingDirectory.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DecoratingDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DecoratingDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DecoratingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DecoratingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DecoratingDirectory" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DecoratingDirectory</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.DecoratingDirectory</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DecoratingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DecoratingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingConnection.html
new file mode 100644
index 0000000..aa7baf6
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingConnection.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingConnection.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingConnection" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingConnection</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></span></code>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingConnection.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingConnectionGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingConnectionGroup.html
new file mode 100644
index 0000000..891f397
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingConnectionGroup.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingConnectionGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingConnectionGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingConnectionGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingConnectionGroup</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingDirectory.html
new file mode 100644
index 0000000..90a2b29
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingDirectory.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DelegatingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingDirectory" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingDirectory</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">Directory implementation which simplifies decorating the objects within an
+ underlying Directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DelegatingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingSharingProfile.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingSharingProfile.html
new file mode 100644
index 0000000..c8a74a6
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingSharingProfile.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingSharingProfile (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingSharingProfile (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="DelegatingSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingSharingProfile" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingSharingProfile</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.DelegatingSharingProfile</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="DelegatingSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUser.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUser.html
new file mode 100644
index 0000000..43774d1
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUser.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingUser (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingUser (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingUser.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingUser" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingUser</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.DelegatingUser</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingUser.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUserContext.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUserContext.html
new file mode 100644
index 0000000..ccf033d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUserContext.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingUserContext (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingUserContext (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingUserContext.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingUserContext" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingUserContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></span></code>
+<div class="block">UserContext implementation which decorates a given UserContext,
+ automatically applying additional parameter tokens during the connection
+ process of any retrieved Connections and ConnectionGroups.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingUserContext.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUserGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUserGroup.html
new file mode 100644
index 0000000..b07ba7c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUserGroup.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingUserGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingUserGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingUserGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingUserGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingUserGroup</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.DelegatingUserGroup</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingUserGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Directory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Directory.html
new file mode 100644
index 0000000..0f679ce
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Directory.html
@@ -0,0 +1,408 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Directory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Directory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Directory.html" target="_top">Frames</a></li>
+<li><a href="Directory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Directory" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Directory</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">Directory implementation which simplifies decorating the objects within an
+ underlying Directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">Directory implementation which simply delegates all function calls to an
+ underlying Directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">TokenInjectingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">TokenInjectingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getDelegateDirectory--">getDelegateDirectory</a></span>()</code>
+<div class="block">Returns the underlying Directory wrapped by this DelegatingDirectory.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#DecoratingDirectory-org.apache.guacamole.net.auth.Directory-">DecoratingDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&gt;&nbsp;directory)</code>
+<div class="block">Creates a new DecoratingDirectory which decorates the objects within
+ the given directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#DelegatingDirectory-org.apache.guacamole.net.auth.Directory-">DelegatingDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;&nbsp;directory)</code>
+<div class="block">Wraps the given Directory such that all function calls against this
+ DelegatingDirectory will be delegated to it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">An extremely simple read-only implementation of a Directory which provides
+ access to a pre-defined Map of arbitrary objects.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Directory.html" target="_top">Frames</a></li>
+<li><a href="Directory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.EncryptionMethod.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.EncryptionMethod.html
new file mode 100644
index 0000000..852d497
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.EncryptionMethod.html
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod" class="title">Uses of Class<br>org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProxyConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getEncryptionMethod--">getEncryptionMethod</a></span>()</code>
+<div class="block">Returns the type of encryption required by guacd.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProxyConfiguration.EncryptionMethod.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProxyConfiguration.EncryptionMethod.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#GuacamoleProxyConfiguration-java.lang.String-int-org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod-">GuacamoleProxyConfiguration</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                           int&nbsp;port,
+                           <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&nbsp;encryptionMethod)</code>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname,
+ port, and encryption method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.html
new file mode 100644
index 0000000..6adbe81
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.GuacamoleProxyConfiguration (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.GuacamoleProxyConfiguration (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.GuacamoleProxyConfiguration" class="title">Uses of Class<br>org.apache.guacamole.net.auth.GuacamoleProxyConfiguration</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a> in <a href="../../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/environment/Environment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration</a></span>()</code>
+<div class="block">Returns the connection information which should be used, by default, to
+ connect to guacd when establishing a remote desktop connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LocalEnvironment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/environment/LocalEnvironment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Identifiable.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Identifiable.html
new file mode 100644
index 0000000..510cf4c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Identifiable.html
@@ -0,0 +1,436 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Identifiable (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Identifiable (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Identifiable.html" target="_top">Frames</a></li>
+<li><a href="Identifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Identifiable" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Identifiable</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with type parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">Directory implementation which simplifies decorating the objects within an
+ underlying Directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">Directory implementation which simply delegates all function calls to an
+ underlying Directory.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">Provides access to a collection of all objects with associated identifiers,
+ and allows user manipulation and removal.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></span></code>
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span></code>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span></code>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span></code>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span></code>
+<div class="block">Represents the semantics which apply to an existing connection when shared,
+ along with a human-readable name and unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span></code>
+<div class="block">A user of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span></code>
+<div class="block">A user group of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></span></code>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></span></code>
+<div class="block">Basic implementation of an AuthenticatedUser which uses the username to
+ determine equality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></span></code>
+<div class="block">Abstract implementation of Identifiable which provides equals() and
+ hashCode() implementations which use the identifier to determine equality.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></span></code>
+<div class="block">Base implementation of a sharing profile which can be used to share a
+ Guacamole connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></span></code>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></span></code>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></span></code>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></span></code>
+<div class="block">SharingProfile implementation which simply delegates all function calls to an
+ underlying SharingProfile.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></span></code>
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></span></code>
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></span></code>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">An extremely simple read-only implementation of a Directory which provides
+ access to a pre-defined Map of arbitrary objects.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></span></code>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></span></code>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></span></code>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></span></code>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-ObjectType...-">SimpleDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>...&nbsp;objects)</code>
+<div class="block">Creates a new SimpleDirectory which provides access to the given
+ objects.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Identifiable.html" target="_top">Frames</a></li>
+<li><a href="Identifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Permissions.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Permissions.html
new file mode 100644
index 0000000..81a3fc2
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Permissions.html
@@ -0,0 +1,274 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Permissions (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Permissions (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Permissions.html" target="_top">Frames</a></li>
+<li><a href="Permissions.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Permissions" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Permissions</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span></code>
+<div class="block">A user of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span></code>
+<div class="block">A user group of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></span></code>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></span></code>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></span></code>
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></span></code>
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getEffectivePermissions--">getEffectivePermissions</a></span>()</code>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></td>
+<td class="colLast"><span class="typeNameLabel">User.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/User.html#getEffectivePermissions--">getEffectivePermissions</a></span>()</code>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getEffectivePermissions--">getEffectivePermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></span></code>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></span></code>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Permissions.html" target="_top">Frames</a></li>
+<li><a href="Permissions.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html
new file mode 100644
index 0000000..b9c8aaf
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html
@@ -0,0 +1,277 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.RelatedObjectSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.RelatedObjectSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="RelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.RelatedObjectSet" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.RelatedObjectSet</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> declared as <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RelatedObjectSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#EMPTY_SET">EMPTY_SET</a></span></code>
+<div class="block">An immutable instance of RelatedObjectSEt which contains no objects.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUsers--">getMemberUsers</a></span>()</code>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getMemberUsers--">getMemberUsers</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUsers--">getMemberUsers</a></span>()</code>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserGroups--">getUserGroups</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">User.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/User.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserGroups--">getUserGroups</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></span></code>
+<div class="block">A read-only implementation of RelatedObjectSet which uses a backing Set
+ of identifiers to determine which objects are present.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="RelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Shareable.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Shareable.html
new file mode 100644
index 0000000..11d1a51
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Shareable.html
@@ -0,0 +1,188 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Shareable (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Shareable (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Shareable.html" target="_top">Frames</a></li>
+<li><a href="Shareable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Shareable" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Shareable</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></span></code>
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></span></code>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Shareable.html" target="_top">Frames</a></li>
+<li><a href="Shareable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/SharingProfile.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/SharingProfile.html
new file mode 100644
index 0000000..8a269d2
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/SharingProfile.html
@@ -0,0 +1,238 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.SharingProfile (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.SharingProfile (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/SharingProfile.html" target="_top">Frames</a></li>
+<li><a href="SharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.SharingProfile" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.SharingProfile</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></span></code>
+<div class="block">Base implementation of a sharing profile which can be used to share a
+ Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></span></code>
+<div class="block">SharingProfile implementation which simply delegates all function calls to an
+ underlying SharingProfile.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingSharingProfile.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getDelegateSharingProfile--">getDelegateSharingProfile</a></span>()</code>
+<div class="block">Returns the underlying SharingProfile wrapped by this
+ DelegatingSharingProfile.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#DelegatingSharingProfile-org.apache.guacamole.net.auth.SharingProfile-">DelegatingSharingProfile</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&nbsp;sharingProfile)</code>
+<div class="block">Wraps the given SharingProfile such that all function calls against this
+ DelegatingSharingProfile will be delegated to it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/SharingProfile.html" target="_top">Frames</a></li>
+<li><a href="SharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingConnection.html
new file mode 100644
index 0000000..c91fa86
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingConnection.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.TokenInjectingConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.TokenInjectingConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/TokenInjectingConnection.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.TokenInjectingConnection" class="title">Uses of Class<br>org.apache.guacamole.net.auth.TokenInjectingConnection</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.TokenInjectingConnection</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/TokenInjectingConnection.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingConnectionGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingConnectionGroup.html
new file mode 100644
index 0000000..a6a5ddd
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingConnectionGroup.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.TokenInjectingConnectionGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.TokenInjectingConnectionGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/TokenInjectingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.TokenInjectingConnectionGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.TokenInjectingConnectionGroup</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.TokenInjectingConnectionGroup</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/TokenInjectingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingUserContext.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingUserContext.html
new file mode 100644
index 0000000..6412779
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingUserContext.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.TokenInjectingUserContext (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.TokenInjectingUserContext (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/TokenInjectingUserContext.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.TokenInjectingUserContext" class="title">Uses of Class<br>org.apache.guacamole.net.auth.TokenInjectingUserContext</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.TokenInjectingUserContext</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/TokenInjectingUserContext.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/User.Attribute.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/User.Attribute.html
new file mode 100644
index 0000000..ab2d952
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/User.Attribute.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.User.Attribute (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.User.Attribute (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/User.Attribute.html" target="_top">Frames</a></li>
+<li><a href="User.Attribute.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.User.Attribute" class="title">Uses of Class<br>org.apache.guacamole.net.auth.User.Attribute</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.User.Attribute</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/User.Attribute.html" target="_top">Frames</a></li>
+<li><a href="User.Attribute.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/User.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/User.html
new file mode 100644
index 0000000..a37403a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/User.html
@@ -0,0 +1,304 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.User (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.User (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/User.html" target="_top">Frames</a></li>
+<li><a href="User.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.User" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.User</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></span></code>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></span></code>
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getDelegateUser--">getDelegateUser</a></span>()</code>
+<div class="block">Returns the underlying User wrapped by this DelegatingUser.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#self--">self</a></span>()</code>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#self--">self</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#DelegatingUser-org.apache.guacamole.net.auth.User-">DelegatingUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;user)</code>
+<div class="block">Wraps the given User such that all function calls against this
+ DelegatingUser will be delegated to it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></span></code>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#self--">self</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html#SimpleUserDirectory-org.apache.guacamole.net.auth.User-">SimpleUserDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;user)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleUserDirectory which provides access to the single
+ user provided.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/User.html" target="_top">Frames</a></li>
+<li><a href="User.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/UserContext.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/UserContext.html
new file mode 100644
index 0000000..dbd26bd
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/UserContext.html
@@ -0,0 +1,425 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.UserContext (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.UserContext (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/UserContext.html" target="_top">Frames</a></li>
+<li><a href="UserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.UserContext" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.UserContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></span></code>
+<div class="block">Base implementation of UserContext which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></span></code>
+<div class="block">UserContext implementation which simply delegates all function calls to
+ an underlying UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></span></code>
+<div class="block">UserContext implementation which decorates a given UserContext,
+ automatically applying additional parameter tokens during the connection
+ process of any retrieved Connections and ConnectionGroups.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getDelegateUserContext--">getDelegateUserContext</a></span>()</code>
+<div class="block">Returns the underlying UserContext wrapped by this
+ DelegatingUserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#DelegatingUserContext-org.apache.guacamole.net.auth.UserContext-">DelegatingUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext)</code>
+<div class="block">Wraps the given UserContext such that all function calls against this
+ DelegatingUserContext will be delegated to it.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-">TokenInjectingUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext)</code>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the additional
+ parameter tokens returned by getTokens() are included.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-java.util.Map-">TokenInjectingUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the given additional
+ parameter tokens are included.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></span></code>
+<div class="block">An extremely simple UserContext implementation which provides access to
+ a defined and restricted set of GuacamoleConfigurations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/UserContext.html" target="_top">Frames</a></li>
+<li><a href="UserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/UserGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/UserGroup.html
new file mode 100644
index 0000000..2df9a6a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/UserGroup.html
@@ -0,0 +1,266 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.UserGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.UserGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/UserGroup.html" target="_top">Frames</a></li>
+<li><a href="UserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.UserGroup" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.UserGroup</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></span></code>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></span></code>
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getDelegateUserGroupGroup--">getDelegateUserGroupGroup</a></span>()</code>
+<div class="block">Returns the underlying UserGroup wrapped by this DelegatingUserGroup.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#DelegatingUserGroup-org.apache.guacamole.net.auth.UserGroup-">DelegatingUserGroup</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&nbsp;userGroup)</code>
+<div class="block">Wraps the given UserGroup such that all function calls against this
+ DelegatingUserGroup will be delegated to it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></span></code>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/UserGroup.html" target="_top">Frames</a></li>
+<li><a href="UserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/CredentialsInfo.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/CredentialsInfo.html
new file mode 100644
index 0000000..12d3810
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/CredentialsInfo.html
@@ -0,0 +1,390 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CredentialsInfo (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CredentialsInfo (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CredentialsInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" target="_top">Frames</a></li>
+<li><a href="CredentialsInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.credentials</div>
+<h2 title="Class CredentialsInfo" class="title">Class CredentialsInfo</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.credentials.CredentialsInfo</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">CredentialsInfo</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Information which describes a set of valid credentials.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#EMPTY">EMPTY</a></span></code>
+<div class="block">CredentialsInfo object which describes empty credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#PASSWORD">PASSWORD</a></span></code>
+<div class="block">A field describing the password HTTP parameter expected by Guacamole
+ during login, if passwords are being used.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME">USERNAME</a></span></code>
+<div class="block">A field describing the username HTTP parameter expected by Guacamole
+ during login, if usernames are being used.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME_PASSWORD">USERNAME_PASSWORD</a></span></code>
+<div class="block">CredentialsInfo object which describes standard username/password
+ credentials.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#CredentialsInfo-java.util.Collection-">CredentialsInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Creates a new CredentialsInfo object which requires the given fields for
+ any conforming credentials.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#getFields--">getFields</a></span>()</code>
+<div class="block">Returns all fields required for valid credentials as described by this
+ object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="EMPTY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EMPTY</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a> EMPTY</pre>
+<div class="block">CredentialsInfo object which describes empty credentials. No fields are
+ required.</div>
+</li>
+</ul>
+<a name="USERNAME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>USERNAME</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a> USERNAME</pre>
+<div class="block">A field describing the username HTTP parameter expected by Guacamole
+ during login, if usernames are being used.</div>
+</li>
+</ul>
+<a name="PASSWORD">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PASSWORD</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a> PASSWORD</pre>
+<div class="block">A field describing the password HTTP parameter expected by Guacamole
+ during login, if passwords are being used.</div>
+</li>
+</ul>
+<a name="USERNAME_PASSWORD">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>USERNAME_PASSWORD</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a> USERNAME_PASSWORD</pre>
+<div class="block">CredentialsInfo object which describes standard username/password
+ credentials.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="CredentialsInfo-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CredentialsInfo</h4>
+<pre>public&nbsp;CredentialsInfo(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</pre>
+<div class="block">Creates a new CredentialsInfo object which requires the given fields for
+ any conforming credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>fields</code> - The fields to require.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getFields--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getFields</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;getFields()</pre>
+<div class="block">Returns all fields required for valid credentials as described by this
+ object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>All fields required for valid credentials.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CredentialsInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" target="_top">Frames</a></li>
+<li><a href="CredentialsInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html
new file mode 100644
index 0000000..3d6433d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html
@@ -0,0 +1,409 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleCredentialsException (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleCredentialsException (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.credentials</div>
+<h2 title="Class GuacamoleCredentialsException" class="title">Class GuacamoleCredentialsException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSecurityException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUnauthorizedException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a>, <a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleCredentialsException</span>
+extends org.apache.guacamole.GuacamoleUnauthorizedException</pre>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ of a problem related to the provided credentials. Additional information
+ describing the form of valid credentials is provided.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../serialized-form.html#org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                             <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                             <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                             <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#getCredentialsInfo--">getCredentialsInfo</a></span>()</code>
+<div class="block">Returns information describing the form of valid credentials.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleUnauthorizedException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleUnauthorizedException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleCredentialsException</h4>
+<pre>public&nbsp;GuacamoleCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                     <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleCredentialsException</h4>
+<pre>public&nbsp;GuacamoleCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                     <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleCredentialsException</h4>
+<pre>public&nbsp;GuacamoleCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                     <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getCredentialsInfo--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getCredentialsInfo</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;getCredentialsInfo()</pre>
+<div class="block">Returns information describing the form of valid credentials.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html
new file mode 100644
index 0000000..76d00d3
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html
@@ -0,0 +1,378 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleInsufficientCredentialsException (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleInsufficientCredentialsException (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleInsufficientCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInsufficientCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.credentials</div>
+<h2 title="Class GuacamoleInsufficientCredentialsException" class="title">Class GuacamoleInsufficientCredentialsException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSecurityException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUnauthorizedException</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleInsufficientCredentialsException</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></pre>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are not sufficient for authentication to succeed.
+ The validity or invalidity of the given credentials is not specified, and
+ more information is needed before a decision can be made. Additional
+ information describing the form of valid credentials is provided.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../serialized-form.html#org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                         <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                         <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ cause and associated credential information.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#getCredentialsInfo--">getCredentialsInfo</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleUnauthorizedException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleUnauthorizedException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleInsufficientCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleInsufficientCredentialsException</h4>
+<pre>public&nbsp;GuacamoleInsufficientCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                 <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message, cause, and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleInsufficientCredentialsException</h4>
+<pre>public&nbsp;GuacamoleInsufficientCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                 <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleInsufficientCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleInsufficientCredentialsException</h4>
+<pre>public&nbsp;GuacamoleInsufficientCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                 <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ cause and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleInsufficientCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInsufficientCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html
new file mode 100644
index 0000000..fc4e69d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html
@@ -0,0 +1,376 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleInvalidCredentialsException (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleInvalidCredentialsException (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleInvalidCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInvalidCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.credentials</div>
+<h2 title="Class GuacamoleInvalidCredentialsException" class="title">Class GuacamoleInvalidCredentialsException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSecurityException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUnauthorizedException</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleInvalidCredentialsException</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></pre>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are invalid. Additional information describing
+ the form of valid credentials is provided.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../serialized-form.html#org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                    <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                    <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#getCredentialsInfo--">getCredentialsInfo</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleUnauthorizedException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleUnauthorizedException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleInvalidCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleInvalidCredentialsException</h4>
+<pre>public&nbsp;GuacamoleInvalidCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                            <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleInvalidCredentialsException</h4>
+<pre>public&nbsp;GuacamoleInvalidCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleInvalidCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleInvalidCredentialsException</h4>
+<pre>public&nbsp;GuacamoleInvalidCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                            <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleInvalidCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInvalidCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/UserCredentials.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/UserCredentials.html
new file mode 100644
index 0000000..057b574
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/UserCredentials.html
@@ -0,0 +1,575 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UserCredentials (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UserCredentials (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserCredentials.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/UserCredentials.html" target="_top">Frames</a></li>
+<li><a href="UserCredentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.guacamole.net.auth.credentials.CredentialsInfo">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.credentials</div>
+<h2 title="Class UserCredentials" class="title">Class UserCredentials</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.CredentialsInfo</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.credentials.UserCredentials</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">UserCredentials</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></pre>
+<div class="block">A fully-valid set of credentials and associated values. Each instance of
+ this object should describe a full set of parameter name/value pairs which
+ can be used to authenticate successfully, even if that success depends on
+ factors not described by this object.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.auth.credentials.CredentialsInfo">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#EMPTY">EMPTY</a>, <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#PASSWORD">PASSWORD</a>, <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME">USERNAME</a>, <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME_PASSWORD">USERNAME_PASSWORD</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-java.util.Collection-">UserCredentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Creates a new UserCredentials object which requires the given fields but
+ does not yet have any defined values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-java.util.Collection-java.util.Map-">UserCredentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields,
+               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</code>
+<div class="block">Creates a new UserCredentials object which requires the given fields and
+ values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">UserCredentials</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;info)</code>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo but does not yet have any defined values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-java.util.Map-">UserCredentials</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;info,
+               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</code>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValue-org.apache.guacamole.form.Field-">getValue</a></span>(<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field)</code>
+<div class="block">Returns the value defined by this UserCrendentials object for the given
+ field.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValue-java.lang.String-">getValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the value defined by this UserCrendentials object for the field
+ having the given name.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValues--">getValues</a></span>()</code>
+<div class="block">Returns a map of field names to values which backs this UserCredentials
+ object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#removeValue-org.apache.guacamole.form.Field-">removeValue</a></span>(<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field)</code>
+<div class="block">Removes (undefines) the value of the given field returning its previous
+ value.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#removeValue-java.lang.String-">removeValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Removes (undefines) the value of the field having the given name,
+ returning its previous value.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValue-org.apache.guacamole.form.Field-java.lang.String-">setValue</a></span>(<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field,
+        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Sets the value of the given field.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValue-java.lang.String-java.lang.String-">setValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Sets the value of the field having the given name.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValues-java.util.Map-">setValues</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</code>
+<div class="block">Replaces the map backing this UserCredentials object with the given map.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.CredentialsInfo">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#getFields--">getFields</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="UserCredentials-java.util.Collection-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UserCredentials</h4>
+<pre>public&nbsp;UserCredentials(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields,
+                       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</pre>
+<div class="block">Creates a new UserCredentials object which requires the given fields and
+ values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>fields</code> - The fields to require.</dd>
+<dd><code>values</code> - The values required for each field, as a map of field name to
+     correct value.</dd>
+</dl>
+</li>
+</ul>
+<a name="UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UserCredentials</h4>
+<pre>public&nbsp;UserCredentials(<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;info,
+                       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</pre>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo. The value required for each field in the
+ CredentialsInfo is defined in the given Map.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - The CredentialsInfo object describing the fields to require.</dd>
+<dd><code>values</code> - The values required for each field, as a map of field name to
+     correct value.</dd>
+</dl>
+</li>
+</ul>
+<a name="UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UserCredentials</h4>
+<pre>public&nbsp;UserCredentials(<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;info)</pre>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo but does not yet have any defined values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - The CredentialsInfo object describing the fields to require.</dd>
+</dl>
+</li>
+</ul>
+<a name="UserCredentials-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UserCredentials</h4>
+<pre>public&nbsp;UserCredentials(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</pre>
+<div class="block">Creates a new UserCredentials object which requires the given fields but
+ does not yet have any defined values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>fields</code> - The fields to require.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getValues--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValues</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getValues()</pre>
+<div class="block">Returns a map of field names to values which backs this UserCredentials
+ object. Modifications to the returned map will directly affect the
+ associated name/value pairs.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of field names to their corresponding values which backs this
+     UserCredentials object.</dd>
+</dl>
+</li>
+</ul>
+<a name="setValues-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValues</h4>
+<pre>public&nbsp;void&nbsp;setValues(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</pre>
+<div class="block">Replaces the map backing this UserCredentials object with the given map.
+ All field name/value pairs described by the original map are replaced by
+ the name/value pairs in the given map.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - The map of field names to their corresponding values which should be
+     used to back this UserCredentials object.</dd>
+</dl>
+</li>
+</ul>
+<a name="getValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the value defined by this UserCrendentials object for the field
+ having the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the field whose value should be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The value of the field having the given name, or null if no value is
+     defined for that field.</dd>
+</dl>
+</li>
+</ul>
+<a name="getValue-org.apache.guacamole.form.Field-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getValue(<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field)</pre>
+<div class="block">Returns the value defined by this UserCrendentials object for the given
+ field.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>field</code> - The field whose value should be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The value of the given field, or null if no value is defined for
+     that field.</dd>
+</dl>
+</li>
+</ul>
+<a name="setValue-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;setValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
+<div class="block">Sets the value of the field having the given name. Any existing value
+ for that field is replaced.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the field whose value should be assigned.</dd>
+<dd><code>value</code> - The value to assign to the field having the given name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous value of the field, or null if the value of the field
+     was not previously defined.</dd>
+</dl>
+</li>
+</ul>
+<a name="setValue-org.apache.guacamole.form.Field-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;setValue(<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field,
+                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
+<div class="block">Sets the value of the given field. Any existing value for that field is
+ replaced.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>field</code> - The field whose value should be assigned.</dd>
+<dd><code>value</code> - The value to assign to the given field.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous value of the field, or null if the value of the field
+     was not previously defined.</dd>
+</dl>
+</li>
+</ul>
+<a name="removeValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;removeValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Removes (undefines) the value of the field having the given name,
+ returning its previous value. If the field value was not defined, this
+ function has no effect, and null is returned.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the field whose value should be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous value of the field, or null if the value of the field
+     was not previously defined.</dd>
+</dl>
+</li>
+</ul>
+<a name="removeValue-org.apache.guacamole.form.Field-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removeValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;removeValue(<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field)</pre>
+<div class="block">Removes (undefines) the value of the given field returning its previous
+ value. If the field value was not defined, this function has no effect,
+ and null is returned.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>field</code> - The field whose value should be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous value of the field, or null if the value of the field
+     was not previously defined.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserCredentials.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/UserCredentials.html" target="_top">Frames</a></li>
+<li><a href="UserCredentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.guacamole.net.auth.credentials.CredentialsInfo">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/CredentialsInfo.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/CredentialsInfo.html
new file mode 100644
index 0000000..0e7ea36
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/CredentialsInfo.html
@@ -0,0 +1,292 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.credentials.CredentialsInfo (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.credentials.CredentialsInfo (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/CredentialsInfo.html" target="_top">Frames</a></li>
+<li><a href="CredentialsInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.credentials.CredentialsInfo" class="title">Uses of Class<br>org.apache.guacamole.net.auth.credentials.CredentialsInfo</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></span></code>
+<div class="block">A fully-valid set of credentials and associated values.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> declared as <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CredentialsInfo.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#EMPTY">EMPTY</a></span></code>
+<div class="block">CredentialsInfo object which describes empty credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CredentialsInfo.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME_PASSWORD">USERNAME_PASSWORD</a></span></code>
+<div class="block">CredentialsInfo object which describes standard username/password
+ credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleCredentialsException.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#getCredentialsInfo--">getCredentialsInfo</a></span>()</code>
+<div class="block">Returns information describing the form of valid credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                             <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                             <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                             <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                         <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                         <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ cause and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                    <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                    <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">UserCredentials</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;info)</code>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo but does not yet have any defined values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-java.util.Map-">UserCredentials</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;info,
+               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</code>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/CredentialsInfo.html" target="_top">Frames</a></li>
+<li><a href="CredentialsInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleCredentialsException.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleCredentialsException.html
new file mode 100644
index 0000000..8fe1b2c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleCredentialsException.html
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/GuacamoleCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException" class="title">Uses of Class<br>org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a></span></code>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are not sufficient for authentication to succeed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></span></code>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are invalid.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/GuacamoleCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInsufficientCredentialsException.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInsufficientCredentialsException.html
new file mode 100644
index 0000000..3fbbd4c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInsufficientCredentialsException.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInsufficientCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInsufficientCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException" class="title">Uses of Class<br>org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInsufficientCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInsufficientCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInvalidCredentialsException.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInvalidCredentialsException.html
new file mode 100644
index 0000000..bd9c93b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInvalidCredentialsException.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInvalidCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInvalidCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException" class="title">Uses of Class<br>org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInvalidCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInvalidCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/UserCredentials.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/UserCredentials.html
new file mode 100644
index 0000000..53afe82
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/UserCredentials.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.credentials.UserCredentials (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.credentials.UserCredentials (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/UserCredentials.html" target="_top">Frames</a></li>
+<li><a href="UserCredentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.credentials.UserCredentials" class="title">Uses of Class<br>org.apache.guacamole.net.auth.credentials.UserCredentials</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Shareable.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Shareable.html#getSharingCredentials-java.lang.String-">getSharingCredentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Returns a full set of credentials which can be used to authenticate as a
+ user with access strictly to this object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/UserCredentials.html" target="_top">Frames</a></li>
+<li><a href="UserCredentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-frame.html
new file mode 100644
index 0000000..8017e0f
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-frame.html
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.credentials (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html" target="classFrame">org.apache.guacamole.net.auth.credentials</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">CredentialsInfo</a></li>
+<li><a href="UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">UserCredentials</a></li>
+</ul>
+<h2 title="Exceptions">Exceptions</h2>
+<ul title="Exceptions">
+<li><a href="GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">GuacamoleCredentialsException</a></li>
+<li><a href="GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">GuacamoleInsufficientCredentialsException</a></li>
+<li><a href="GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">GuacamoleInvalidCredentialsException</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-summary.html
new file mode 100644
index 0000000..e52a7b3
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-summary.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.credentials (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth.credentials (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net.auth.credentials</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></td>
+<td class="colLast">
+<div class="block">Information which describes a set of valid credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></td>
+<td class="colLast">
+<div class="block">A fully-valid set of credentials and associated values.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation">
+<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Exception</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></td>
+<td class="colLast">
+<div class="block">A security-related exception thrown when access is denied to a user because
+ of a problem related to the provided credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a></td>
+<td class="colLast">
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are not sufficient for authentication to succeed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></td>
+<td class="colLast">
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are invalid.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-tree.html
new file mode 100644
index 0000000..f547ff0
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-tree.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.credentials Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth.credentials Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net.auth.credentials</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">CredentialsInfo</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">UserCredentials</span></a></li>
+</ul>
+</li>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleClientException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleSecurityException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleUnauthorizedException
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleCredentialsException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleInsufficientCredentialsException</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleInvalidCredentialsException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-use.html
new file mode 100644
index 0000000..315b5ec
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-use.html
@@ -0,0 +1,191 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net.auth.credentials (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net.auth.credentials (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net.auth.credentials" class="title">Uses of Package<br>org.apache.guacamole.net.auth.credentials</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> used by <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/class-use/UserCredentials.html#org.apache.guacamole.net.auth">UserCredentials</a>
+<div class="block">A fully-valid set of credentials and associated values.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> used by <a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/class-use/CredentialsInfo.html#org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>
+<div class="block">Information which describes a set of valid credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/class-use/GuacamoleCredentialsException.html#org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ of a problem related to the provided credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-frame.html
new file mode 100644
index 0000000..092cbcd
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-frame.html
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../org/apache/guacamole/net/auth/package-summary.html" target="classFrame">org.apache.guacamole.net.auth</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="ActiveConnection.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ActiveConnection</span></a></li>
+<li><a href="ActivityRecord.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ActivityRecord</span></a></li>
+<li><a href="ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ActivityRecordSet</span></a></li>
+<li><a href="Attributes.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Attributes</span></a></li>
+<li><a href="AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">AuthenticatedUser</span></a></li>
+<li><a href="AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">AuthenticationProvider</span></a></li>
+<li><a href="Connectable.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Connectable</span></a></li>
+<li><a href="Connection.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Connection</span></a></li>
+<li><a href="ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ConnectionGroup</span></a></li>
+<li><a href="ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ConnectionRecord</span></a></li>
+<li><a href="ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ConnectionRecordSet</span></a></li>
+<li><a href="Directory.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Directory</span></a></li>
+<li><a href="Identifiable.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Identifiable</span></a></li>
+<li><a href="Permissions.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Permissions</span></a></li>
+<li><a href="RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">RelatedObjectSet</span></a></li>
+<li><a href="Shareable.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Shareable</span></a></li>
+<li><a href="SharingProfile.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">SharingProfile</span></a></li>
+<li><a href="User.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">User</span></a></li>
+<li><a href="UserContext.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">UserContext</span></a></li>
+<li><a href="UserGroup.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">UserGroup</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractActiveConnection</a></li>
+<li><a href="AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractAuthenticatedUser</a></li>
+<li><a href="AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractAuthenticationProvider</a></li>
+<li><a href="AbstractConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractConnection</a></li>
+<li><a href="AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractConnectionGroup</a></li>
+<li><a href="AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractIdentifiable</a></li>
+<li><a href="AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractSharingProfile</a></li>
+<li><a href="AbstractUser.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractUser</a></li>
+<li><a href="AbstractUserContext.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractUserContext</a></li>
+<li><a href="AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractUserGroup</a></li>
+<li><a href="Credentials.html" title="class in org.apache.guacamole.net.auth" target="classFrame">Credentials</a></li>
+<li><a href="DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DecoratingDirectory</a></li>
+<li><a href="DelegatingConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingConnection</a></li>
+<li><a href="DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingConnectionGroup</a></li>
+<li><a href="DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingDirectory</a></li>
+<li><a href="DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingSharingProfile</a></li>
+<li><a href="DelegatingUser.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingUser</a></li>
+<li><a href="DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingUserContext</a></li>
+<li><a href="DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingUserGroup</a></li>
+<li><a href="GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth" target="classFrame">GuacamoleProxyConfiguration</a></li>
+<li><a href="TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">TokenInjectingConnection</a></li>
+<li><a href="TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">TokenInjectingConnectionGroup</a></li>
+<li><a href="TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth" target="classFrame">TokenInjectingUserContext</a></li>
+<li><a href="User.Attribute.html" title="class in org.apache.guacamole.net.auth" target="classFrame">User.Attribute</a></li>
+</ul>
+<h2 title="Enums">Enums</h2>
+<ul title="Enums">
+<li><a href="ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth" target="classFrame">ActivityRecordSet.SortableProperty</a></li>
+<li><a href="ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth" target="classFrame">ConnectionGroup.Type</a></li>
+<li><a href="GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth" target="classFrame">GuacamoleProxyConfiguration.EncryptionMethod</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-summary.html
new file mode 100644
index 0000000..1dedcb4
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-summary.html
@@ -0,0 +1,497 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/language/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net.auth</h1>
+<div class="docSummary">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></td>
+<td class="colLast">
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></td>
+<td class="colLast">
+<div class="block">A logging record describing when a user started and ended a particular
+ activity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;RecordType extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</td>
+<td class="colLast">
+<div class="block">A set of all available records related to a type of activity which has a
+ defined start and end time, such as a user being logged in or connected, or a
+ subset of those records.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></td>
+<td class="colLast">
+<div class="block">An object which is associated with a set of arbitrary attributes, defined
+ as name/value pairs.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></td>
+<td class="colLast">
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></td>
+<td class="colLast">
+<div class="block">Provides means of authorizing users and for accessing and managing data
+ associated with those users.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></td>
+<td class="colLast">
+<div class="block">An object which Guacamole can connect to.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></td>
+<td class="colLast">
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></td>
+<td class="colLast">
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></td>
+<td class="colLast">
+<div class="block">A logging record describing when a user started and ended usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt; instead.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</td>
+<td class="colLast">
+<div class="block">Provides access to a collection of all objects with associated identifiers,
+ and allows user manipulation and removal.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></td>
+<td class="colLast">
+<div class="block">An object which has a deterministic, unique identifier, which may not be
+ null.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></td>
+<td class="colLast">
+<div class="block">An object which may be granted permissions to access/manipulate various
+ other objects or aspects of the system.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></td>
+<td class="colLast">
+<div class="block">An arbitrary set of existing objects sharing some common relation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;T&gt;</td>
+<td class="colLast">
+<div class="block">An object which can be shared with others via specially-generated sets of
+ credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></td>
+<td class="colLast">
+<div class="block">Represents the semantics which apply to an existing connection when shared,
+ along with a human-readable name and unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></td>
+<td class="colLast">
+<div class="block">A user of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></td>
+<td class="colLast">
+<div class="block">The context of an active user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></td>
+<td class="colLast">
+<div class="block">A user group of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></td>
+<td class="colLast">
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></td>
+<td class="colLast">
+<div class="block">Basic implementation of an AuthenticatedUser which uses the username to
+ determine equality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></td>
+<td class="colLast">
+<div class="block">Base implementation of AuthenticationProvider which provides default
+ implementations of most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></td>
+<td class="colLast">
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></td>
+<td class="colLast">
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></td>
+<td class="colLast">
+<div class="block">Abstract implementation of Identifiable which provides equals() and
+ hashCode() implementations which use the identifier to determine equality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></td>
+<td class="colLast">
+<div class="block">Base implementation of a sharing profile which can be used to share a
+ Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></td>
+<td class="colLast">
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></td>
+<td class="colLast">
+<div class="block">Base implementation of UserContext which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></td>
+<td class="colLast">
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></td>
+<td class="colLast">
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a>&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</td>
+<td class="colLast">
+<div class="block">Directory implementation which simplifies decorating the objects within an
+ underlying Directory.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></td>
+<td class="colLast">
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></td>
+<td class="colLast">
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</td>
+<td class="colLast">
+<div class="block">Directory implementation which simply delegates all function calls to an
+ underlying Directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></td>
+<td class="colLast">
+<div class="block">SharingProfile implementation which simply delegates all function calls to an
+ underlying SharingProfile.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></td>
+<td class="colLast">
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></td>
+<td class="colLast">
+<div class="block">UserContext implementation which simply delegates all function calls to
+ an underlying UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></td>
+<td class="colLast">
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></td>
+<td class="colLast">
+<div class="block">Information which describes how the connection to guacd should be
+ established.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></td>
+<td class="colLast">
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></td>
+<td class="colLast">
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></td>
+<td class="colLast">
+<div class="block">UserContext implementation which decorates a given UserContext,
+ automatically applying additional parameter tokens during the connection
+ process of any retrieved Connections and ConnectionGroups.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></td>
+<td class="colLast">
+<div class="block">All standard attribute names with semantics defined by the Guacamole web
+ application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation">
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></td>
+<td class="colLast">
+<div class="block">All properties of activity records which can be used as sorting
+ criteria.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></td>
+<td class="colLast">
+<div class="block">All legal types of connection group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></td>
+<td class="colLast">
+<div class="block">All possible types of encryption used by guacd.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.net.auth Description">Package org.apache.guacamole.net.auth Description</h2>
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/language/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-tree.html
new file mode 100644
index 0000000..5f97fef
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-tree.html
@@ -0,0 +1,246 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/language/package-tree.html">Prev</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/credentials/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net.auth</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticationProvider</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractIdentifiable</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractActiveConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticatedUser</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnectionGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUser</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractSharingProfile</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserContext</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Credentials</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingConnection</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingConnectionGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingConnectionGroup</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingDirectory</span></a>&lt;ObjectType&gt; (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DecoratingDirectory</span></a>&lt;ObjectType&gt;</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingSharingProfile</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUser</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUserContext</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingUserContext</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUserGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">GuacamoleProxyConfiguration</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">User.Attribute</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecord</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionRecord</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecordSet</span></a>&lt;RecordType&gt;
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionRecordSet</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Attributes</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">SharingProfile</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">AuthenticationProvider</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connectable</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Directory</span></a>&lt;ObjectType&gt;</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Identifiable</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">AuthenticatedUser</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">SharingProfile</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Permissions</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">RelatedObjectSet</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Shareable</span></a>&lt;T&gt;
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserContext</span></a></li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecordSet.SortableProperty</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup.Type</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">GuacamoleProxyConfiguration.EncryptionMethod</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/language/package-tree.html">Prev</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/credentials/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-use.html
new file mode 100644
index 0000000..eb8f561
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-use.html
@@ -0,0 +1,577 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net.auth (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net.auth (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net.auth" class="title">Uses of Package<br>org.apache.guacamole.net.auth</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.token">org.apache.guacamole.token</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> used by <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.html#org.apache.guacamole.environment">GuacamoleProxyConfiguration</a>
+<div class="block">Information which describes how the connection to guacd should be
+ established.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> used by <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html#org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+<div class="block">Abstract implementation of Identifiable which provides equals() and
+ hashCode() implementations which use the identifier to determine equality.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActiveConnection.html#org.apache.guacamole.net.auth">ActiveConnection</a>
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActivityRecord.html#org.apache.guacamole.net.auth">ActivityRecord</a>
+<div class="block">A logging record describing when a user started and ended a particular
+ activity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html#org.apache.guacamole.net.auth">ActivityRecordSet</a>
+<div class="block">A set of all available records related to a type of activity which has a
+ defined start and end time, such as a user being logged in or connected, or a
+ subset of those records.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html#org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>
+<div class="block">All properties of activity records which can be used as sorting
+ criteria.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Attributes.html#org.apache.guacamole.net.auth">Attributes</a>
+<div class="block">An object which is associated with a set of arbitrary attributes, defined
+ as name/value pairs.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html#org.apache.guacamole.net.auth">AuthenticatedUser</a>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html#org.apache.guacamole.net.auth">AuthenticationProvider</a>
+<div class="block">Provides means of authorizing users and for accessing and managing data
+ associated with those users.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Connectable.html#org.apache.guacamole.net.auth">Connectable</a>
+<div class="block">An object which Guacamole can connect to.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Connection.html#org.apache.guacamole.net.auth">Connection</a>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ConnectionGroup.html#org.apache.guacamole.net.auth">ConnectionGroup</a>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ConnectionGroup.Type.html#org.apache.guacamole.net.auth">ConnectionGroup.Type</a>
+<div class="block">All legal types of connection group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ConnectionRecord.html#org.apache.guacamole.net.auth">ConnectionRecord</a>
+<div class="block">A logging record describing when a user started and ended usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Credentials.html#org.apache.guacamole.net.auth">Credentials</a>
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/DelegatingConnection.html#org.apache.guacamole.net.auth">DelegatingConnection</a>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/DelegatingConnectionGroup.html#org.apache.guacamole.net.auth">DelegatingConnectionGroup</a>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/DelegatingDirectory.html#org.apache.guacamole.net.auth">DelegatingDirectory</a>
+<div class="block">Directory implementation which simply delegates all function calls to an
+ underlying Directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/DelegatingUserContext.html#org.apache.guacamole.net.auth">DelegatingUserContext</a>
+<div class="block">UserContext implementation which simply delegates all function calls to
+ an underlying UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Directory.html#org.apache.guacamole.net.auth">Directory</a>
+<div class="block">Provides access to a collection of all objects with associated identifiers,
+ and allows user manipulation and removal.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.EncryptionMethod.html#org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>
+<div class="block">All possible types of encryption used by guacd.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Identifiable.html#org.apache.guacamole.net.auth">Identifiable</a>
+<div class="block">An object which has a deterministic, unique identifier, which may not be
+ null.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Permissions.html#org.apache.guacamole.net.auth">Permissions</a>
+<div class="block">An object which may be granted permissions to access/manipulate various
+ other objects or aspects of the system.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html#org.apache.guacamole.net.auth">RelatedObjectSet</a>
+<div class="block">An arbitrary set of existing objects sharing some common relation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Shareable.html#org.apache.guacamole.net.auth">Shareable</a>
+<div class="block">An object which can be shared with others via specially-generated sets of
+ credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/SharingProfile.html#org.apache.guacamole.net.auth">SharingProfile</a>
+<div class="block">Represents the semantics which apply to an existing connection when shared,
+ along with a human-readable name and unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/User.html#org.apache.guacamole.net.auth">User</a>
+<div class="block">A user of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/UserContext.html#org.apache.guacamole.net.auth">UserContext</a>
+<div class="block">The context of an active user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/UserGroup.html#org.apache.guacamole.net.auth">UserGroup</a>
+<div class="block">A user group of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> used by <a href="../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractAuthenticationProvider.html#org.apache.guacamole.net.auth.simple">AbstractAuthenticationProvider</a>
+<div class="block">Base implementation of AuthenticationProvider which provides default
+ implementations of most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractConnection.html#org.apache.guacamole.net.auth.simple">AbstractConnection</a>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractConnectionGroup.html#org.apache.guacamole.net.auth.simple">AbstractConnectionGroup</a>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html#org.apache.guacamole.net.auth.simple">AbstractIdentifiable</a>
+<div class="block">Abstract implementation of Identifiable which provides equals() and
+ hashCode() implementations which use the identifier to determine equality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractUser.html#org.apache.guacamole.net.auth.simple">AbstractUser</a>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractUserContext.html#org.apache.guacamole.net.auth.simple">AbstractUserContext</a>
+<div class="block">Base implementation of UserContext which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractUserGroup.html#org.apache.guacamole.net.auth.simple">AbstractUserGroup</a>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActivityRecord.html#org.apache.guacamole.net.auth.simple">ActivityRecord</a>
+<div class="block">A logging record describing when a user started and ended a particular
+ activity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html#org.apache.guacamole.net.auth.simple">ActivityRecordSet</a>
+<div class="block">A set of all available records related to a type of activity which has a
+ defined start and end time, such as a user being logged in or connected, or a
+ subset of those records.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html#org.apache.guacamole.net.auth.simple">ActivityRecordSet.SortableProperty</a>
+<div class="block">All properties of activity records which can be used as sorting
+ criteria.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Attributes.html#org.apache.guacamole.net.auth.simple">Attributes</a>
+<div class="block">An object which is associated with a set of arbitrary attributes, defined
+ as name/value pairs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html#org.apache.guacamole.net.auth.simple">AuthenticatedUser</a>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html#org.apache.guacamole.net.auth.simple">AuthenticationProvider</a>
+<div class="block">Provides means of authorizing users and for accessing and managing data
+ associated with those users.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Connectable.html#org.apache.guacamole.net.auth.simple">Connectable</a>
+<div class="block">An object which Guacamole can connect to.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Connection.html#org.apache.guacamole.net.auth.simple">Connection</a>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ConnectionGroup.html#org.apache.guacamole.net.auth.simple">ConnectionGroup</a>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ConnectionRecord.html#org.apache.guacamole.net.auth.simple">ConnectionRecord</a>
+<div class="block">A logging record describing when a user started and ended usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ConnectionRecordSet.html#org.apache.guacamole.net.auth.simple">ConnectionRecordSet</a>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt; instead.</span></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Credentials.html#org.apache.guacamole.net.auth.simple">Credentials</a>
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Directory.html#org.apache.guacamole.net.auth.simple">Directory</a>
+<div class="block">Provides access to a collection of all objects with associated identifiers,
+ and allows user manipulation and removal.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Identifiable.html#org.apache.guacamole.net.auth.simple">Identifiable</a>
+<div class="block">An object which has a deterministic, unique identifier, which may not be
+ null.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Permissions.html#org.apache.guacamole.net.auth.simple">Permissions</a>
+<div class="block">An object which may be granted permissions to access/manipulate various
+ other objects or aspects of the system.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html#org.apache.guacamole.net.auth.simple">RelatedObjectSet</a>
+<div class="block">An arbitrary set of existing objects sharing some common relation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/User.html#org.apache.guacamole.net.auth.simple">User</a>
+<div class="block">A user of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/UserContext.html#org.apache.guacamole.net.auth.simple">UserContext</a>
+<div class="block">The context of an active user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/UserGroup.html#org.apache.guacamole.net.auth.simple">UserGroup</a>
+<div class="block">A user group of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> used by <a href="../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html#org.apache.guacamole.net.event">AuthenticatedUser</a>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Credentials.html#org.apache.guacamole.net.event">Credentials</a>
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.token">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> used by <a href="../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html#org.apache.guacamole.token">AuthenticatedUser</a>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Credentials.html#org.apache.guacamole.token">Credentials</a>
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html
new file mode 100644
index 0000000..7ccb8d0
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html
@@ -0,0 +1,385 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ObjectPermission.Type (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ObjectPermission.Type (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectPermission.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Enum ObjectPermission.Type" class="title">Enum ObjectPermission.Type</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.permission.ObjectPermission.Type</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <span class="typeNameLabel">ObjectPermission.Type</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;</pre>
+<div class="block">Specific types of object-level permissions. Each permission type is
+ related to a specific class of object-level operation.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#ADMINISTER">ADMINISTER</a></span></code>
+<div class="block">Change who has access to an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#DELETE">DELETE</a></span></code>
+<div class="block">Delete an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#READ">READ</a></span></code>
+<div class="block">Read data within an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#UPDATE">UPDATE</a></span></code>
+<div class="block">Update data within an object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="READ">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>READ</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a> READ</pre>
+<div class="block">Read data within an object.</div>
+</li>
+</ul>
+<a name="UPDATE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UPDATE</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a> UPDATE</pre>
+<div class="block">Update data within an object.</div>
+</li>
+</ul>
+<a name="DELETE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DELETE</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a> DELETE</pre>
+<div class="block">Delete an object.</div>
+</li>
+</ul>
+<a name="ADMINISTER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ADMINISTER</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a> ADMINISTER</pre>
+<div class="block">Change who has access to an object.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (ObjectPermission.Type c : ObjectPermission.Type.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectPermission.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermission.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermission.html
new file mode 100644
index 0000000..7b2c075
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermission.html
@@ -0,0 +1,381 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ObjectPermission (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ObjectPermission (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectPermission.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/ObjectPermission.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Class ObjectPermission" class="title">Class ObjectPermission</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.permission.ObjectPermission</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">ObjectPermission</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;</pre>
+<div class="block">A permission which affects a specific object, rather than the system as a
+ whole.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span></code>
+<div class="block">Specific types of object-level permissions.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#ObjectPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">ObjectPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;type,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Creates a new ObjectPermission having the given type and identifier.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#getObjectIdentifier--">getObjectIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the specific object affected by this
+ permission.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of operation affected by this permission.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ObjectPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ObjectPermission</h4>
+<pre>public&nbsp;ObjectPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;type,
+                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block">Creates a new ObjectPermission having the given type and identifier.
+ The identifier must be the unique identifier assigned to the object
+ associated with this permission by the AuthenticationProvider in use.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - The type of operation affected by this permission.</dd>
+<dd><code>identifier</code> - The identifier of the object associated with the operation affected
+     by this permission.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getObjectIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getObjectIdentifier()</pre>
+<div class="block">Returns the identifier of the specific object affected by this
+ permission.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the specific object affected by this
+         permission.</dd>
+</dl>
+</li>
+</ul>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;getType()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html#getType--">Permission</a></code></span></div>
+<div class="block">Returns the type of operation affected by this permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html#getType--">getType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The type of operation affected by this permission.</dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectPermission.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/ObjectPermission.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html
new file mode 100644
index 0000000..1e67c8c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html
@@ -0,0 +1,478 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ObjectPermissionSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ObjectPermissionSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Interface ObjectPermissionSet" class="title">Interface ObjectPermissionSet</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">ObjectPermissionSet</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</pre>
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#EMPTY_SET">EMPTY_SET</a></span></code>
+<div class="block">An immutable instance of ObjectPermissionSet which contains no
+ permissions.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Adds the specified permission for the object having the given
+ identifier.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Adds the specified permissions, if not already granted.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;permissions,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Tests whether this user has the specified permissions for the objects
+ having the given identifiers.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Tests whether the permission of the given type is granted for the
+ object having the given identifier.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Removes the specified permission for the object having the given
+ identifier.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Removes each of the specified permissions, if granted.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="EMPTY_SET">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EMPTY_SET</h4>
+<pre>static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a> EMPTY_SET</pre>
+<div class="block">An immutable instance of ObjectPermissionSet which contains no
+ permissions.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasPermission</h4>
+<pre>boolean&nbsp;hasPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Tests whether the permission of the given type is granted for the
+ object having the given identifier.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to check.</dd>
+<dd><code>identifier</code> - The identifier of the object affected by the permission being
+     checked.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the permission is granted, false otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while checking permissions, or if permissions
+     cannot be checked due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermission</h4>
+<pre>void&nbsp;addPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Adds the specified permission for the object having the given
+ identifier.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to add.</dd>
+<dd><code>identifier</code> - The identifier of the object affected by the permission being
+     added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permission, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePermission</h4>
+<pre>void&nbsp;removePermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Removes the specified permission for the object having the given
+ identifier.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to remove.</dd>
+<dd><code>identifier</code> - The identifier of the object affected by the permission being
+     added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permission, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAccessibleObjects-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAccessibleObjects</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAccessibleObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;permissions,
+                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Tests whether this user has the specified permissions for the objects
+ having the given identifiers. The identifier of an object is returned
+ in a new collection if at least one of the specified permissions is
+ granted for that object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to check. An identifier will be included in the
+     resulting collection if at least one of these permissions is granted
+     for the associated object</dd>
+<dd><code>identifiers</code> - The identifiers of the objects affected by the permissions being
+     checked.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection containing the subset of identifiers for which at least
+     one of the specified permissions is granted.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while checking permissions, or if permissions
+     cannot be checked due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPermissions</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;getPermissions()
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">PermissionSet</a></code></span></div>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">getPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set containing all permissions granted within this permission set.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if permissions
+     cannot be retrieved due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermissions</h4>
+<pre>void&nbsp;addPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)
+             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Adds the specified permissions, if not already granted. If a specified
+ permission is already granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permissions, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removePermissions</h4>
+<pre>void&nbsp;removePermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Removes each of the specified permissions, if granted. If a specified
+ permission is not granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permissions, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/Permission.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/Permission.html
new file mode 100644
index 0000000..d7da5cb
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/Permission.html
@@ -0,0 +1,241 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Permission (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Permission (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Permission.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/Permission.html" target="_top">Frames</a></li>
+<li><a href="Permission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Interface Permission" class="title">Interface Permission&lt;Type extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The enumeration of all available operation types that this permission
+     can affect.</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>, <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Permission&lt;Type extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&gt;</span></pre>
+<div class="block">A permission which affects a specific type of operation, where all available
+ operation types are defined by an enumeration.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="type parameter in Permission">Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of operation affected by this permission.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getType</h4>
+<pre><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="type parameter in Permission">Type</a>&nbsp;getType()</pre>
+<div class="block">Returns the type of operation affected by this permission.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The type of operation affected by this permission.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Permission.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/Permission.html" target="_top">Frames</a></li>
+<li><a href="Permission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/PermissionSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/PermissionSet.html
new file mode 100644
index 0000000..3cafea9
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/PermissionSet.html
@@ -0,0 +1,301 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>PermissionSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PermissionSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/PermissionSet.html" target="_top">Frames</a></li>
+<li><a href="PermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Interface PermissionSet" class="title">Interface PermissionSet&lt;PermissionType extends <a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>PermissionType</code> - The type of permission stored within this PermissionSet.</dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>, <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">PermissionSet&lt;PermissionType extends <a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&gt;</span></pre>
+<div class="block">An arbitrary set of permissions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a>&gt;&nbsp;permissions)</code>
+<div class="block">Adds the specified permissions, if not already granted.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">getPermissions</a></span>()</code>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a>&gt;&nbsp;permissions)</code>
+<div class="block">Removes each of the specified permissions, if granted.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPermissions</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a>&gt;&nbsp;getPermissions()
+                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set containing all permissions granted within this permission set.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if permissions
+     cannot be retrieved due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermissions</h4>
+<pre>void&nbsp;addPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a>&gt;&nbsp;permissions)
+             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Adds the specified permissions, if not already granted. If a specified
+ permission is already granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permissions, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removePermissions</h4>
+<pre>void&nbsp;removePermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a>&gt;&nbsp;permissions)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Removes each of the specified permissions, if granted. If a specified
+ permission is not granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permissions, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/PermissionSet.html" target="_top">Frames</a></li>
+<li><a href="PermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermission.Type.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermission.Type.html
new file mode 100644
index 0000000..6620e24
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermission.Type.html
@@ -0,0 +1,419 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SystemPermission.Type (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SystemPermission.Type (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SystemPermission.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Enum SystemPermission.Type" class="title">Enum SystemPermission.Type</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.permission.SystemPermission.Type</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <span class="typeNameLabel">SystemPermission.Type</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&gt;</pre>
+<div class="block">Specific types of system-level permissions. Each permission type is
+ related to a specific class of system-level operation.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#ADMINISTER">ADMINISTER</a></span></code>
+<div class="block">Administer the system in general, including adding permissions
+ which affect the system (like user creation, connection creation,
+ and system administration).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#CREATE_CONNECTION">CREATE_CONNECTION</a></span></code>
+<div class="block">Create connections.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#CREATE_CONNECTION_GROUP">CREATE_CONNECTION_GROUP</a></span></code>
+<div class="block">Create connection groups.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#CREATE_SHARING_PROFILE">CREATE_SHARING_PROFILE</a></span></code>
+<div class="block">Create sharing profiles.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#CREATE_USER">CREATE_USER</a></span></code>
+<div class="block">Create users.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#CREATE_USER_GROUP">CREATE_USER_GROUP</a></span></code>
+<div class="block">Create user groups.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="CREATE_USER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREATE_USER</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> CREATE_USER</pre>
+<div class="block">Create users.</div>
+</li>
+</ul>
+<a name="CREATE_USER_GROUP">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREATE_USER_GROUP</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> CREATE_USER_GROUP</pre>
+<div class="block">Create user groups.</div>
+</li>
+</ul>
+<a name="CREATE_CONNECTION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREATE_CONNECTION</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> CREATE_CONNECTION</pre>
+<div class="block">Create connections.</div>
+</li>
+</ul>
+<a name="CREATE_CONNECTION_GROUP">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREATE_CONNECTION_GROUP</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> CREATE_CONNECTION_GROUP</pre>
+<div class="block">Create connection groups.</div>
+</li>
+</ul>
+<a name="CREATE_SHARING_PROFILE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREATE_SHARING_PROFILE</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> CREATE_SHARING_PROFILE</pre>
+<div class="block">Create sharing profiles.</div>
+</li>
+</ul>
+<a name="ADMINISTER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ADMINISTER</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> ADMINISTER</pre>
+<div class="block">Administer the system in general, including adding permissions
+ which affect the system (like user creation, connection creation,
+ and system administration).</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (SystemPermission.Type c : SystemPermission.Type.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SystemPermission.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermission.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermission.html
new file mode 100644
index 0000000..6070276
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermission.html
@@ -0,0 +1,354 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SystemPermission (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SystemPermission (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SystemPermission.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/SystemPermission.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Class SystemPermission" class="title">Class SystemPermission</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.permission.SystemPermission</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SystemPermission</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&gt;</pre>
+<div class="block">A permission which affects the system as a whole, rather than an individual
+ object.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></span></code>
+<div class="block">Specific types of system-level permissions.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html#SystemPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">SystemPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;type)</code>
+<div class="block">Creates a new SystemPermission with the given
+ type.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of operation affected by this permission.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SystemPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SystemPermission</h4>
+<pre>public&nbsp;SystemPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;type)</pre>
+<div class="block">Creates a new SystemPermission with the given
+ type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - The type of operation controlled by this permission.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;getType()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html#getType--">Permission</a></code></span></div>
+<div class="block">Returns the type of operation affected by this permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html#getType--">getType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The type of operation affected by this permission.</dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SystemPermission.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/SystemPermission.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermissionSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermissionSet.html
new file mode 100644
index 0000000..5f37b67
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermissionSet.html
@@ -0,0 +1,422 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SystemPermissionSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SystemPermissionSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SystemPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Interface SystemPermissionSet" class="title">Interface SystemPermissionSet</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">SystemPermissionSet</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</pre>
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#EMPTY_SET">EMPTY_SET</a></span></code>
+<div class="block">An immutable instance of SystemPermissionSet which contains no
+ permissions.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Adds the specified permission.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Adds the specified permissions, if not already granted.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Tests whether the permission of the given type is granted.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Removes the specified permission.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Removes each of the specified permissions, if granted.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="EMPTY_SET">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EMPTY_SET</h4>
+<pre>static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a> EMPTY_SET</pre>
+<div class="block">An immutable instance of SystemPermissionSet which contains no
+ permissions.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasPermission</h4>
+<pre>boolean&nbsp;hasPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Tests whether the permission of the given type is granted.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to check.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the permission is granted, false otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while checking permissions, or if permissions
+     cannot be checked due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermission</h4>
+<pre>void&nbsp;addPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Adds the specified permission.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permission, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePermission</h4>
+<pre>void&nbsp;removePermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Removes the specified permission.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permission, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPermissions</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;getPermissions()
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">PermissionSet</a></code></span></div>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">getPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set containing all permissions granted within this permission set.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if permissions
+     cannot be retrieved due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermissions</h4>
+<pre>void&nbsp;addPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)
+             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Adds the specified permissions, if not already granted. If a specified
+ permission is already granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permissions, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removePermissions</h4>
+<pre>void&nbsp;removePermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Removes each of the specified permissions, if granted. If a specified
+ permission is not granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permissions, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SystemPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html
new file mode 100644
index 0000000..35bdefd
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html
@@ -0,0 +1,313 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.permission.ObjectPermission.Type (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.permission.ObjectPermission.Type (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.permission.ObjectPermission.Type" class="title">Uses of Class<br>org.apache.guacamole.net.auth.permission.ObjectPermission.Type</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermission.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#getType--">getType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermission.Type.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermission.Type.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Adds the specified permission for the object having the given
+ identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Tests whether the permission of the given type is granted for the
+ object having the given identifier.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Removes the specified permission for the object having the given
+ identifier.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;permissions,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Tests whether this user has the specified permissions for the objects
+ having the given identifiers.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#ObjectPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">ObjectPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;type,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Creates a new ObjectPermission having the given type and identifier.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;permissionTypes,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Collection-java.util.Collection-">SimpleObjectPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;types)</code>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains permissions for
+ all possible unique combinations of the given identifiers and permission
+ types.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html
new file mode 100644
index 0000000..41e158d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html
@@ -0,0 +1,249 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.permission.ObjectPermission (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.permission.ObjectPermission (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.permission.ObjectPermission" class="title">Uses of Class<br>org.apache.guacamole.net.auth.permission.ObjectPermission</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> that return types with arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return types with arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#setPermissions-java.util.Set-">setPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Sets the Set which backs this SimpleObjectPermissionSet.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Set-">SimpleObjectPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains the permissions
+ within the given Set.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html
new file mode 100644
index 0000000..a50cb36
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html
@@ -0,0 +1,402 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.permission.ObjectPermissionSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.permission.ObjectPermissionSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.permission.ObjectPermissionSet" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.permission.ObjectPermissionSet</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserPermissions--">getUserPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserPermissions--">getUserPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> declared as <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#EMPTY_SET">EMPTY_SET</a></span></code>
+<div class="block">An immutable instance of ObjectPermissionSet which contains no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></span></code>
+<div class="block">A read-only implementation of ObjectPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#getUserPermissions--">getUserPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/Permission.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/Permission.html
new file mode 100644
index 0000000..a8cd788
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/Permission.html
@@ -0,0 +1,194 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.permission.Permission (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.permission.Permission (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/Permission.html" target="_top">Frames</a></li>
+<li><a href="Permission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.permission.Permission" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.permission.Permission</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with type parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;PermissionType extends <a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&gt;</span></code>
+<div class="block">An arbitrary set of permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> that implement <a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span></code>
+<div class="block">A permission which affects a specific object, rather than the system as a
+ whole.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span></code>
+<div class="block">A permission which affects the system as a whole, rather than an individual
+ object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/Permission.html" target="_top">Frames</a></li>
+<li><a href="Permission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html
new file mode 100644
index 0000000..49b9761
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html
@@ -0,0 +1,214 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.permission.PermissionSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.permission.PermissionSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html" target="_top">Frames</a></li>
+<li><a href="PermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.permission.PermissionSet" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.permission.PermissionSet</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></span></code>
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></span></code>
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></span></code>
+<div class="block">A read-only implementation of ObjectPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></span></code>
+<div class="block">A read-only implementation of SystemPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html" target="_top">Frames</a></li>
+<li><a href="PermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html
new file mode 100644
index 0000000..4886d4c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html
@@ -0,0 +1,257 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.permission.SystemPermission.Type (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.permission.SystemPermission.Type (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.permission.SystemPermission.Type" class="title">Uses of Class<br>org.apache.guacamole.net.auth.permission.SystemPermission.Type</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermission.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html#getType--">getType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermission.Type.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermission.Type.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Adds the specified permission.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Tests whether the permission of the given type is granted.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Removes the specified permission.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html#SystemPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">SystemPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;type)</code>
+<div class="block">Creates a new SystemPermission with the given
+ type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html
new file mode 100644
index 0000000..e98e042
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html
@@ -0,0 +1,249 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.permission.SystemPermission (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.permission.SystemPermission (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.permission.SystemPermission" class="title">Uses of Class<br>org.apache.guacamole.net.auth.permission.SystemPermission</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> that return types with arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return types with arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#setPermissions-java.util.Set-">setPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Sets the Set which backs this SimpleSystemPermissionSet.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#SimpleSystemPermissionSet-java.util.Set-">SimpleSystemPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Creates a new SimpleSystemPermissionSet which contains the permissions
+ within the given Set.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html
new file mode 100644
index 0000000..225789a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html
@@ -0,0 +1,248 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.permission.SystemPermissionSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.permission.SystemPermissionSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.permission.SystemPermissionSet" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.permission.SystemPermissionSet</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> declared as <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#EMPTY_SET">EMPTY_SET</a></span></code>
+<div class="block">An immutable instance of SystemPermissionSet which contains no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></span></code>
+<div class="block">A read-only implementation of SystemPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-frame.html
new file mode 100644
index 0000000..90f75cd
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-frame.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.permission (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html" target="classFrame">org.apache.guacamole.net.auth.permission</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">ObjectPermissionSet</span></a></li>
+<li><a href="Permission.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">Permission</span></a></li>
+<li><a href="PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">PermissionSet</span></a></li>
+<li><a href="SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">SystemPermissionSet</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission" target="classFrame">ObjectPermission</a></li>
+<li><a href="SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission" target="classFrame">SystemPermission</a></li>
+</ul>
+<h2 title="Enums">Enums</h2>
+<ul title="Enums">
+<li><a href="ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission" target="classFrame">ObjectPermission.Type</a></li>
+<li><a href="SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission" target="classFrame">SystemPermission.Type</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-summary.html
new file mode 100644
index 0000000..b4721d0
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-summary.html
@@ -0,0 +1,225 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.permission (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth.permission (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net.auth.permission</h1>
+<div class="docSummary">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></td>
+<td class="colLast">
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;Type extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&gt;</td>
+<td class="colLast">
+<div class="block">A permission which affects a specific type of operation, where all available
+ operation types are defined by an enumeration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;PermissionType extends <a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&gt;</td>
+<td class="colLast">
+<div class="block">An arbitrary set of permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></td>
+<td class="colLast">
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></td>
+<td class="colLast">
+<div class="block">A permission which affects a specific object, rather than the system as a
+ whole.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></td>
+<td class="colLast">
+<div class="block">A permission which affects the system as a whole, rather than an individual
+ object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation">
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></td>
+<td class="colLast">
+<div class="block">Specific types of object-level permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></td>
+<td class="colLast">
+<div class="block">Specific types of system-level permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.net.auth.permission Description">Package org.apache.guacamole.net.auth.permission Description</h2>
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-tree.html
new file mode 100644
index 0000000..2c5a2ae
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-tree.html
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.permission Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth.permission Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net.auth.permission</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermission</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermission</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;Type&gt;)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Permission</span></a>&lt;Type&gt;</li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">PermissionSet</span></a>&lt;PermissionType&gt;
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermissionSet</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermissionSet</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermission.Type</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermission.Type</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-use.html
new file mode 100644
index 0000000..6a9e6c1
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-use.html
@@ -0,0 +1,291 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net.auth.permission (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net.auth.permission (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net.auth.permission" class="title">Uses of Package<br>org.apache.guacamole.net.auth.permission</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> used by <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html#org.apache.guacamole.net.auth">ObjectPermissionSet</a>
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html#org.apache.guacamole.net.auth">SystemPermissionSet</a>
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> used by <a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html#org.apache.guacamole.net.auth.permission">ObjectPermission</a>
+<div class="block">A permission which affects a specific object, rather than the system as a
+ whole.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html#org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>
+<div class="block">Specific types of object-level permissions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html#org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/Permission.html#org.apache.guacamole.net.auth.permission">Permission</a>
+<div class="block">A permission which affects a specific type of operation, where all available
+ operation types are defined by an enumeration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html#org.apache.guacamole.net.auth.permission">PermissionSet</a>
+<div class="block">An arbitrary set of permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html#org.apache.guacamole.net.auth.permission">SystemPermission</a>
+<div class="block">A permission which affects the system as a whole, rather than an individual
+ object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html#org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>
+<div class="block">Specific types of system-level permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html#org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> used by <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html#org.apache.guacamole.net.auth.simple">ObjectPermission</a>
+<div class="block">A permission which affects a specific object, rather than the system as a
+ whole.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html#org.apache.guacamole.net.auth.simple">ObjectPermission.Type</a>
+<div class="block">Specific types of object-level permissions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html#org.apache.guacamole.net.auth.simple">ObjectPermissionSet</a>
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html#org.apache.guacamole.net.auth.simple">PermissionSet</a>
+<div class="block">An arbitrary set of permissions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html#org.apache.guacamole.net.auth.simple">SystemPermission</a>
+<div class="block">A permission which affects the system as a whole, rather than an individual
+ object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html#org.apache.guacamole.net.auth.simple">SystemPermission.Type</a>
+<div class="block">Specific types of system-level permissions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html#org.apache.guacamole.net.auth.simple">SystemPermissionSet</a>
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html
new file mode 100644
index 0000000..3df4513
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html
@@ -0,0 +1,421 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleActivityRecordSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleActivityRecordSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleActivityRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleActivityRecordSet" class="title">Class SimpleActivityRecordSet&lt;RecordType extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet&lt;RecordType&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>RecordType</code> - The type of ActivityRecord contained within this set.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;RecordType&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleActivityRecordSet&lt;RecordType extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;RecordType&gt;</pre>
+<div class="block">An immutable and empty ActivityRecordSet.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ActivityRecordSet">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#SimpleActivityRecordSet--">SimpleActivityRecordSet</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#asCollection--">asCollection</a></span>()</code>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#contains-java.lang.String-">contains</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Returns the subset of records which contain the given value.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#limit-int-">limit</a></span>(int&nbsp;limit)</code>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleActivityRecordSet--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleActivityRecordSet</h4>
+<pre>public&nbsp;SimpleActivityRecordSet()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="asCollection--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asCollection</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;&nbsp;asCollection()
+                                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">asCollection</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection containing all records within this set.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the records within this set.</dd>
+</dl>
+</li>
+</ul>
+<a name="contains-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>contains</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;&nbsp;contains(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns the subset of records which contain the given value. The
+ properties and semantics involved with determining whether a particular
+ record "contains" the given value is implementation dependent. This
+ function may affect the contents of the current ActivityRecordSet. The
+ contents of the current ActivityRecordSet should NOT be relied upon
+ after this function is called.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">contains</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The value which all records within the resulting subset should
+     contain.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The subset of records which contain the specified value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while restricting the current subset.</dd>
+</dl>
+</li>
+</ul>
+<a name="limit-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>limit</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;&nbsp;limit(int&nbsp;limit)
+                                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records. If the subset has fewer than
+ <code>limit</code> records, then this function has no effect. This
+ function may also affect the contents of the current ActivityRecordSet.
+ The contents of the current ActivityRecordSet should NOT be relied upon
+ after this function is called.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">limit</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>limit</code> - The maximum number of records that the new subset should contain.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The subset of records that containing only the first
+     <code>limit</code> records.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while limiting the current subset.</dd>
+</dl>
+</li>
+</ul>
+<a name="sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;&nbsp;sort(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+                                          boolean&nbsp;desc)
+                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria. The sort operation
+ performed is guaranteed to be stable with respect to any past call to
+ sort(). This function may also affect the contents of the current
+ ActivityRecordSet. The contents of the current ActivityRecordSet
+ should NOT be relied upon after this function is called.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property by which the records within the resulting set should be
+     sorted.</dd>
+<dd><code>desc</code> - Whether the records should be sorted according to the specified
+     property in descending order. If false, records will be sorted
+     according to the specified property in ascending order.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ActivityRecordSet, sorted according to the specified criteria.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while sorting the current subset, or if the given
+     property is not supported by the implementation.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleActivityRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html
new file mode 100644
index 0000000..a514aef
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html
@@ -0,0 +1,410 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleAuthenticationProvider (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleAuthenticationProvider (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":6,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleAuthenticationProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="SimpleAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleAuthenticationProvider" class="title">Class SimpleAuthenticationProvider</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractAuthenticationProvider</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">SimpleAuthenticationProvider</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></pre>
+<div class="block">Provides means of retrieving a set of named GuacamoleConfigurations for a
+ given Credentials object. This is a simple AuthenticationProvider
+ implementation intended to be easily extended. It is useful for simple
+ authentication situations where access to web-based administration and
+ complex users and permissions are not required.
+
+ The interface provided by SimpleAuthenticationProvider is similar to that of
+ the AuthenticationProvider interface of older Guacamole releases.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#SimpleAuthenticationProvider--">SimpleAuthenticationProvider</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>abstract <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getAuthorizedConfigurations-org.apache.guacamole.net.auth.Credentials-">getAuthorizedConfigurations</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given an arbitrary credentials object, returns a Map containing all
+ configurations authorized by those credentials.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractAuthenticationProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getResource--">getResource</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#shutdown--">shutdown</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AuthenticationProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getIdentifier--">getIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleAuthenticationProvider--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleAuthenticationProvider</h4>
+<pre>public&nbsp;SimpleAuthenticationProvider()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAuthorizedConfigurations-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthorizedConfigurations</h4>
+<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;getAuthorizedConfigurations(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                                                                                                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given an arbitrary credentials object, returns a Map containing all
+ configurations authorized by those credentials. The keys of this Map
+ are Strings which uniquely identify each configuration.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>credentials</code> - The credentials to use to retrieve authorized
+                    configurations.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Map of all configurations authorized by the given credentials,
+         or null if the credentials given are not authorized.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving
+                            configurations.</dd>
+</dl>
+</li>
+</ul>
+<a name="authenticateUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>authenticateUser</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticateUser(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">AbstractAuthenticationProvider</a></code></span></div>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.
+
+ <p>This implementation performs no authentication whatsoever, ignoring
+ the provided <code>credentials</code> and simply returning <code>null</code>. Any
+ authentication attempt will thus fall through to other
+ <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticationProvider</code></a> implementations, perhaps within other
+ installed extensions, with this <code>AuthenticationProvider</code> making no
+ claim regarding the user's identity nor whether the user should be
+ allowed or disallowed from accessing Guacamole. Implementations that wish
+ to authenticate users should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>credentials</code> - The credentials to use for authentication.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An AuthenticatedUser representing the user authenticated by the
+     given credentials, if any, or null if the credentials are invalid.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while authenticating the user, or if access is
+     temporarily, permanently, or conditionally denied, such as if the
+     supplied credentials are insufficient or invalid.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getUserContext</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;getUserContext(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)
+                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">AbstractAuthenticationProvider</a></code></span></div>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.
+
+ <p>This implementation simply returns <code>null</code>, effectively allowing
+ authentication to continue but refusing to provide data for the given
+ user. Implementations that wish to veto the authentication results of
+ other <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticationProvider</code></a> implementations or provide data for
+ authenticated users should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A UserContext describing the permissions, connection, connection
+     groups, etc. accessible or associated with the given authenticated
+     user, or null if this AuthenticationProvider refuses to provide any
+     such data.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the UserContext.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleAuthenticationProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="SimpleAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnection.html
new file mode 100644
index 0000000..d64653e
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnection.html
@@ -0,0 +1,663 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnection.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleConnection" class="title">Class SimpleConnection</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractConnection</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleConnection</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleConnection</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></pre>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.
+ Parameter tokens provided to connect() are automatically applied if
+ explicitly requested. Tracking of active connections and connection history
+ is not provided.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection--">SimpleConnection</a></span>()</code>
+<div class="block">Creates a completely uninitialized SimpleConnection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection-boolean-">SimpleConnection</a></span>(boolean&nbsp;interpretTokens)</code>
+<div class="block">Creates a completely uninitialized SimpleConnection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection-java.lang.String-java.lang.String-org.apache.guacamole.protocol.GuacamoleConfiguration-">SimpleConnection</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
+                org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</code>
+<div class="block">Creates a new SimpleConnection having the given identifier and
+ GuacamoleConfiguration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection-java.lang.String-java.lang.String-org.apache.guacamole.protocol.GuacamoleConfiguration-boolean-">SimpleConnection</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
+                org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config,
+                boolean&nbsp;interpretTokens)</code>
+<div class="block">Creates a new SimpleConnection having the given identifier and
+ GuacamoleConfiguration.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getActiveConnections--">getActiveConnections</a></span>()</code>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected org.apache.guacamole.protocol.GuacamoleConfiguration</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getFullConfiguration--">getFullConfiguration</a></span>()</code>
+<div class="block">Returns the GuacamoleConfiguration describing how to connect to this
+ connection.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getHistory--">getHistory</a></span>()</code>
+<div class="block">Returns a list of ConnectionRecords representing the usage history
+ of this Connection, including any active users.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getLastActive--">getLastActive</a></span>()</code>
+<div class="block">Returns the date and time that this connection was last used.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></span>(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</code>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractConnection">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getConfiguration--">getConfiguration</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getName--">getName</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getParentIdentifier--">getParentIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#setName-java.lang.String-">setName</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleConnection--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleConnection</h4>
+<pre>public&nbsp;SimpleConnection()</pre>
+<div class="block">Creates a completely uninitialized SimpleConnection. The name,
+ identifier, and configuration of this SimpleConnection must eventually
+ be set before the SimpleConnection may be used. Parameter tokens within
+ the GuacamoleConfiguration eventually supplied with
+ <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-"><code>setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration)</code></a>
+ will not be interpreted.</div>
+</li>
+</ul>
+<a name="SimpleConnection-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleConnection</h4>
+<pre>public&nbsp;SimpleConnection(boolean&nbsp;interpretTokens)</pre>
+<div class="block">Creates a completely uninitialized SimpleConnection. The name,
+ identifier, and configuration of this SimpleConnection must eventually
+ be set before the SimpleConnection may be used. Parameter tokens within
+ the GuacamoleConfiguration eventually supplied with
+ <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-"><code>setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration)</code></a>
+ will not be interpreted unless explicitly requested.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>interpretTokens</code> - Whether parameter tokens in the underlying GuacamoleConfiguration
+     should be automatically applied upon connecting. If false, parameter
+     tokens will not be interpreted at all.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleConnection-java.lang.String-java.lang.String-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleConnection</h4>
+<pre>public&nbsp;SimpleConnection(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
+                        org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</pre>
+<div class="block">Creates a new SimpleConnection having the given identifier and
+ GuacamoleConfiguration. Parameter tokens within the
+ GuacamoleConfiguration will not be interpreted unless explicitly
+ requested.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to associate with this connection.</dd>
+<dd><code>identifier</code> - The identifier to associate with this connection.</dd>
+<dd><code>config</code> - The configuration describing how to connect to this connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleConnection-java.lang.String-java.lang.String-org.apache.guacamole.protocol.GuacamoleConfiguration-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleConnection</h4>
+<pre>public&nbsp;SimpleConnection(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
+                        org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config,
+                        boolean&nbsp;interpretTokens)</pre>
+<div class="block">Creates a new SimpleConnection having the given identifier and
+ GuacamoleConfiguration. Parameter tokens will be interpreted if
+ explicitly requested.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to associate with this connection.</dd>
+<dd><code>identifier</code> - The identifier to associate with this connection.</dd>
+<dd><code>config</code> - The configuration describing how to connect to this connection.</dd>
+<dd><code>interpretTokens</code> - Whether parameter tokens in the underlying GuacamoleConfiguration
+     should be automatically applied upon connecting. If false, parameter
+     tokens will not be interpreted at all.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getFullConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFullConfiguration</h4>
+<pre>protected&nbsp;org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;getFullConfiguration()</pre>
+<div class="block">Returns the GuacamoleConfiguration describing how to connect to this
+ connection. Unlike <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getConfiguration--"><code>AbstractConnection.getConfiguration()</code></a>, which is allowed to omit
+ or tokenize information, the GuacamoleConfiguration returned by this
+ function will always be the full configuration to be used to establish
+ the connection, as provided when this SimpleConnection was created or via
+ <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-"><code>setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration)</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The full GuacamoleConfiguration describing how to connect to this
+     connection, without any information omitted or tokenized.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConfiguration</h4>
+<pre>public&nbsp;void&nbsp;setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">Connection</a></code></span></div>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - The GuacamoleConfiguration to associate with this
+               Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnections--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnections</h4>
+<pre>public&nbsp;int&nbsp;getActiveConnections()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">Connectable</a></code></span></div>
+<div class="block">Returns the number of active connections associated with this object.
+ Implementations may simply return 0 if this value is not tracked.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of active connections associated with this object.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)
+                                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.
+
+ <p>This implementation will connect using the GuacamoleConfiguration
+ returned by <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getFullConfiguration--"><code>getFullConfiguration()</code></a>, honoring the
+ "guacd-hostname", "guacd-port", and "guacd-ssl" properties set within
+ guacamole.properties. Parameter tokens will be taken into account if
+ the SimpleConnection was explicitly requested to do so when created.
+
+ <p>Implementations requiring more complex behavior should consider using
+ the <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><code>AbstractConnection</code></a> base class or implementing
+ <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><code>Connection</code></a> directly.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+<a name="getLastActive--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastActive</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getLastActive()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html#getLastActive--">Connection</a></code></span></div>
+<div class="block">Returns the date and time that this connection was last used. If the
+ connection was never used, the time that the connection was last used is
+ unknown, or this information is not visible to the current user, this
+ may be null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time this connection was last used, or null if this
+     information is unavailable or inapplicable.</dd>
+</dl>
+</li>
+</ul>
+<a name="getHistory--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getHistory</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;getHistory()
+                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html#getHistory--">Connection</a></code></span></div>
+<div class="block">Returns a list of ConnectionRecords representing the usage history
+ of this Connection, including any active users. ConnectionRecords
+ in this list will be sorted in descending order of end time (active
+ connections are first), and then in descending order of start time
+ (newer connections are first).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A list of ConnectionRecrods representing the usage history
+         of this Connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while reading the history
+                            of this connection, or if permission is
+                            denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnection.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html
new file mode 100644
index 0000000..4c01b33
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html
@@ -0,0 +1,344 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleConnectionDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleConnectionDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":42};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleConnectionDirectory" class="title">Class SimpleConnectionDirectory</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleDirectory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</dd>
+</dl>
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public class <span class="typeNameLabel">SimpleConnectionDirectory</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</pre>
+<div class="block">An extremely simple read-only implementation of a Directory of
+ GuacamoleConfigurations which provides access to a pre-defined Map of
+ GuacamoleConfigurations.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#SimpleConnectionDirectory-java.util.Collection-">SimpleConnectionDirectory</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;connections)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleConnectionDirectory which provides access to the
+ connections contained within the given Map.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#putConnection-org.apache.guacamole.net.auth.Connection-">putConnection</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the Connections in this Directory.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#removeConnection-java.lang.String-">removeConnection</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for removing a Connection from this Directory.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.simple.SimpleDirectory">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#add-ObjectType-">add</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#get-java.lang.String-">get</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getAll-java.util.Collection-">getAll</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getIdentifiers--">getIdentifiers</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getObjects--">getObjects</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#remove-java.lang.String-">remove</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#setObjects-java.util.Map-">setObjects</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#update-ObjectType-">update</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleConnectionDirectory-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleConnectionDirectory</h4>
+<pre>public&nbsp;SimpleConnectionDirectory(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;connections)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleConnectionDirectory which provides access to the
+ connections contained within the given Map.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connections</code> - A Collection of all connections that should be present in this
+     connection directory.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="putConnection-org.apache.guacamole.net.auth.Connection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>putConnection</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;putConnection(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the Connections in this Directory.
+ Returns the previous connection for the given identifier, if found.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connection</code> - The connection to add or update the Directory with.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous connection for the connection identifier, if found.</dd>
+</dl>
+</li>
+</ul>
+<a name="removeConnection-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removeConnection</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;removeConnection(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for removing a Connection from this Directory.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the Connection to remove.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous connection for the given identifier, if found.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html
new file mode 100644
index 0000000..03ac741
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html
@@ -0,0 +1,527 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleConnectionGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleConnectionGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleConnectionGroup" class="title">Class SimpleConnectionGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractConnectionGroup</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleConnectionGroup</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleConnectionGroup</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></pre>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with. Load balancing across this connection group is not allowed.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ConnectionGroup">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#SimpleConnectionGroup-java.lang.String-java.lang.String-java.util.Collection-java.util.Collection-">SimpleConnectionGroup</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
+                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionIdentifiers,
+                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionGroupIdentifiers)</code>
+<div class="block">Creates a new SimpleConnectionGroup having the given name and identifier
+ which will expose the given contents.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getActiveConnections--">getActiveConnections</a></span>()</code>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers</a></span>()</code>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers</a></span>()</code>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractConnectionGroup">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getName--">getName</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getType--">getType</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setName-java.lang.String-">setName</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleConnectionGroup-java.lang.String-java.lang.String-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleConnectionGroup</h4>
+<pre>public&nbsp;SimpleConnectionGroup(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionIdentifiers,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionGroupIdentifiers)</pre>
+<div class="block">Creates a new SimpleConnectionGroup having the given name and identifier
+ which will expose the given contents.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to associate with this connection group.</dd>
+<dd><code>identifier</code> - The identifier to associate with this connection group.</dd>
+<dd><code>connectionIdentifiers</code> - The connection identifiers to expose when requested.</dd>
+<dd><code>connectionGroupIdentifiers</code> - The connection group identifiers to expose when requested.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getActiveConnections--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnections</h4>
+<pre>public&nbsp;int&nbsp;getActiveConnections()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">Connectable</a></code></span></div>
+<div class="block">Returns the number of active connections associated with this object.
+ Implementations may simply return 0 if this value is not tracked.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of active connections associated with this object.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getConnectionIdentifiers()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionIdentifiers--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of identifiers of all readable connections that are children
+     of this connection group.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getConnectionGroupIdentifiers()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionGroupIdentifiers--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of identifiers of all readable connection groups that are
+     children of this connection group.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)
+                                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>connect</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html
new file mode 100644
index 0000000..2339e9c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html
@@ -0,0 +1,346 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleConnectionGroupDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleConnectionGroupDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":42};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionGroupDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroupDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleConnectionGroupDirectory" class="title">Class SimpleConnectionGroupDirectory</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleDirectory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</dd>
+</dl>
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public class <span class="typeNameLabel">SimpleConnectionGroupDirectory</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</pre>
+<div class="block">An extremely simple read-only implementation of a Directory of
+ ConnectionGroup which provides which provides access to a pre-defined
+ Collection of ConnectionGroups.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#SimpleConnectionGroupDirectory-java.util.Collection-">SimpleConnectionGroupDirectory</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;groups)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleConnectionGroupDirectory which contains the given
+ groups.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#putConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">putConnectionGroup</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the ConnectionGroups in this Directory.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#removeConnectionGroup-java.lang.String-">removeConnectionGroup</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for removing a ConnectionGroup from this Directory.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.simple.SimpleDirectory">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#add-ObjectType-">add</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#get-java.lang.String-">get</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getAll-java.util.Collection-">getAll</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getIdentifiers--">getIdentifiers</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getObjects--">getObjects</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#remove-java.lang.String-">remove</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#setObjects-java.util.Map-">setObjects</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#update-ObjectType-">update</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleConnectionGroupDirectory-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleConnectionGroupDirectory</h4>
+<pre>public&nbsp;SimpleConnectionGroupDirectory(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;groups)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleConnectionGroupDirectory which contains the given
+ groups.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>groups</code> - A Collection of all groups that should be present in this
+               connection group directory.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="putConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>putConnectionGroup</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;putConnectionGroup(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the ConnectionGroups in this Directory.
+ Returns the previous connection group for the given identifier, if found.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connectionGroup</code> - The connection group to add or update the
+                        Directory with.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous connection group for the connection group
+         identifier, if found.</dd>
+</dl>
+</li>
+</ul>
+<a name="removeConnectionGroup-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removeConnectionGroup</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;removeConnectionGroup(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for removing a ConnectionGroup from this Directory.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the ConnectionGroup to remove.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous connection group for the given identifier, if found.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionGroupDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroupDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html
new file mode 100644
index 0000000..7e6e6c3
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html
@@ -0,0 +1,433 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleConnectionRecordSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleConnectionRecordSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":42,"i2":42,"i3":42};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleConnectionRecordSet" class="title">Class SimpleConnectionRecordSet</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;, <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></dd>
+</dl>
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleActivityRecordSet</code></a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt;
+     instead.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public class <span class="typeNameLabel">SimpleConnectionRecordSet</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></pre>
+<div class="block">An immutable and empty ConnectionRecordSet.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ActivityRecordSet">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#SimpleConnectionRecordSet--">SimpleConnectionRecordSet</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#asCollection--">asCollection</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#contains-java.lang.String-">contains</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Returns the subset of records which contain the given value.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#limit-int-">limit</a></span>(int&nbsp;limit)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleConnectionRecordSet--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleConnectionRecordSet</h4>
+<pre>public&nbsp;SimpleConnectionRecordSet()</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="asCollection--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asCollection</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;asCollection()
+                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">asCollection</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection containing all records within this set.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the records within this set.</dd>
+</dl>
+</li>
+</ul>
+<a name="contains-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>contains</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a>&nbsp;contains(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns the subset of records which contain the given value. The
+ properties and semantics involved with determining whether a particular
+ record "contains" the given value is implementation dependent. This
+ function may affect the contents of the current ActivityRecordSet. The
+ contents of the current ActivityRecordSet should NOT be relied upon
+ after this function is called.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">contains</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The value which all records within the resulting subset should
+     contain.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The subset of records which contain the specified value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while restricting the current subset.</dd>
+</dl>
+</li>
+</ul>
+<a name="limit-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>limit</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a>&nbsp;limit(int&nbsp;limit)
+                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records. If the subset has fewer than
+ <code>limit</code> records, then this function has no effect. This
+ function may also affect the contents of the current ActivityRecordSet.
+ The contents of the current ActivityRecordSet should NOT be relied upon
+ after this function is called.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">limit</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>limit</code> - The maximum number of records that the new subset should contain.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The subset of records that containing only the first
+     <code>limit</code> records.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while limiting the current subset.</dd>
+</dl>
+</li>
+</ul>
+<a name="sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a>&nbsp;sort(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+                                boolean&nbsp;desc)
+                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria. The sort operation
+ performed is guaranteed to be stable with respect to any past call to
+ sort(). This function may also affect the contents of the current
+ ActivityRecordSet. The contents of the current ActivityRecordSet
+ should NOT be relied upon after this function is called.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property by which the records within the resulting set should be
+     sorted.</dd>
+<dd><code>desc</code> - Whether the records should be sorted according to the specified
+     property in descending order. If false, records will be sorted
+     according to the specified property in ascending order.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ActivityRecordSet, sorted according to the specified criteria.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while sorting the current subset, or if the given
+     property is not supported by the implementation.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleDirectory.html
new file mode 100644
index 0000000..b597aa0
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleDirectory.html
@@ -0,0 +1,606 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleDirectory" class="title">Class SimpleDirectory&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleDirectory&lt;ObjectType&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>ObjectType</code> - The type of objects stored within this SimpleDirectory.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;</dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleDirectory&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;</pre>
+<div class="block">An extremely simple read-only implementation of a Directory which provides
+ access to a pre-defined Map of arbitrary objects. Any changes to the Map
+ will affect the available contents of this SimpleDirectory.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory--">SimpleDirectory</a></span>()</code>
+<div class="block">Creates a new empty SimpleDirectory which does not provide access to
+ any objects.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-java.util.Collection-">SimpleDirectory</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;objects)</code>
+<div class="block">Creates a new SimpleDirectory which provides access to the
+ objects contained within the Collection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-java.util.Map-">SimpleDirectory</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;objects)</code>
+<div class="block">Creates a new SimpleDirectory which provides access to the objects
+ contained within the given Map.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-ObjectType...-">SimpleDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>...&nbsp;objects)</code>
+<div class="block">Creates a new SimpleDirectory which provides access to the given
+ objects.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-ObjectType-">SimpleDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Creates a new SimpleDirectory which provides access to the given object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#add-ObjectType-">add</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;connection)</code>
+<div class="block">Adds the given object to the overall set.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#get-java.lang.String-">get</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Returns the object having the given identifier.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getAll-java.util.Collection-">getAll</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Returns the objects having the given identifiers.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getIdentifiers--">getIdentifiers</a></span>()</code>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getObjects--">getObjects</a></span>()</code>
+<div class="block">Returns the Map which currently backs this SimpleDirectory.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#remove-java.lang.String-">remove</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#setObjects-java.util.Map-">setObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;objects)</code>
+<div class="block">Sets the Map which backs this SimpleDirectory.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#update-ObjectType-">update</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;connection)</code>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleDirectory</h4>
+<pre>public&nbsp;SimpleDirectory()</pre>
+<div class="block">Creates a new empty SimpleDirectory which does not provide access to
+ any objects.</div>
+</li>
+</ul>
+<a name="SimpleDirectory-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleDirectory</h4>
+<pre>public&nbsp;SimpleDirectory(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;objects)</pre>
+<div class="block">Creates a new SimpleDirectory which provides access to the objects
+ contained within the given Map. The given Map will be used to back all
+ operations on the SimpleDirectory.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>objects</code> - The Map of objects to provide access to.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleDirectory-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="SimpleDirectory-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleDirectory</h4>
+<pre>public&nbsp;SimpleDirectory(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;object)</pre>
+<div class="block">Creates a new SimpleDirectory which provides access to the given object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object to provide access to.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleDirectory-org.apache.guacamole.net.auth.Identifiable:A-">
+<!--   -->
+</a><a name="SimpleDirectory-ObjectType...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleDirectory</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/SafeVarargs.html?is-external=true" title="class or interface in java.lang">@SafeVarargs</a>
+public&nbsp;SimpleDirectory(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>...&nbsp;objects)</pre>
+<div class="block">Creates a new SimpleDirectory which provides access to the given
+ objects. Note that a new Map will be created to store the given objects.
+ If the objects are already available in Map form, it is more efficient
+ to use the <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-java.util.Map-"><code>SimpleDirectory(java.util.Map)</code></a> constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>objects</code> - The objects that should be present in this directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleDirectory-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleDirectory</h4>
+<pre>public&nbsp;SimpleDirectory(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;objects)</pre>
+<div class="block">Creates a new SimpleDirectory which provides access to the
+ objects contained within the Collection. Note that a new Map will be
+ created to store the given objects. If the objects are already available
+ in Map form, it is more efficient to use the
+ <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-java.util.Map-"><code>SimpleDirectory(java.util.Map)</code></a> constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>objects</code> - A Collection of all objects that should be present in this directory.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setObjects-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjects</h4>
+<pre>protected&nbsp;void&nbsp;setObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;objects)</pre>
+<div class="block">Sets the Map which backs this SimpleDirectory. Future function calls
+ which retrieve objects from this SimpleDirectory will use the provided
+ Map.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>objects</code> - The Map of objects to provide access to.</dd>
+</dl>
+</li>
+</ul>
+<a name="getObjects--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjects</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;getObjects()</pre>
+<div class="block">Returns the Map which currently backs this SimpleDirectory. Changes to
+ this Map will affect future function calls that retrieve objects from
+ this SimpleDirectory.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The Map of objects which currently backs this SimpleDirectory.</dd>
+</dl>
+</li>
+</ul>
+<a name="get-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;get(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">Directory</a></code></span></div>
+<div class="block">Returns the object having the given identifier. Note that changes to
+ the object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within an
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">get</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to use when locating the object to
+                   return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The object having the given identifier, or null if no such object
+         exists.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the
+                            object, or if permission for retrieving the
+                            object is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAll-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAll</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;getAll(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">Directory</a></code></span></div>
+<div class="block">Returns the objects having the given identifiers. Note that changes to
+ any object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within a
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">getAll</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers to use when locating the objects to return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The objects having the given identifiers. If any identifiers do not
+     correspond to accessible objects, those identifiers will be ignored.
+     If no objects correspond to any of the given identifiers, the
+     returned collection will be empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the objects, or if permission
+     to retrieve the requested objects is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getIdentifiers()
+                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#getIdentifiers--">Directory</a></code></span></div>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#getIdentifiers--">getIdentifiers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set of all identifiers.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving
+                            the identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="add-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="add-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>public&nbsp;void&nbsp;add(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;connection)
+         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">Directory</a></code></span></div>
+<div class="block">Adds the given object to the overall set. If a new identifier is
+ created for the added object, that identifier will be automatically
+ assigned via setIdentifier().</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">add</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connection</code> - The object to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the object, or if adding the object
+     is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="update-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="update-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>update</h4>
+<pre>public&nbsp;void&nbsp;update(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;connection)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">Directory</a></code></span></div>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">update</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connection</code> - The object which will supply the data for the update.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the object,
+                            or if updating the object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="remove-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>remove</h4>
+<pre>public&nbsp;void&nbsp;remove(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#remove-java.lang.String-">Directory</a></code></span></div>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#remove-java.lang.String-">remove</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the object to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the object,
+                            or if removing object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html
new file mode 100644
index 0000000..23ff792
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html
@@ -0,0 +1,612 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleObjectPermissionSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleObjectPermissionSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleObjectPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleObjectPermissionSet" class="title">Class SimpleObjectPermissionSet</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>, <a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleObjectPermissionSet</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></pre>
+<div class="block">A read-only implementation of ObjectPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.auth.permission.ObjectPermissionSet">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#EMPTY_SET">EMPTY_SET</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet--">SimpleObjectPermissionSet</a></span>()</code>
+<div class="block">Creates a new empty SimpleObjectPermissionSet.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Collection-">SimpleObjectPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains only READ
+ permissions for each of the given identifiers.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Collection-java.util.Collection-">SimpleObjectPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;types)</code>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains permissions for
+ all possible unique combinations of the given identifiers and permission
+ types.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Set-">SimpleObjectPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains the permissions
+ within the given Set.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Adds the specified permission for the object having the given
+ identifier.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Adds the specified permissions, if not already granted.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;permissionTypes,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Tests whether this user has the specified permissions for the objects
+ having the given identifiers.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Tests whether the permission of the given type is granted for the
+ object having the given identifier.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Removes the specified permission for the object having the given
+ identifier.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Removes each of the specified permissions, if granted.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#setPermissions-java.util.Set-">setPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Sets the Set which backs this SimpleObjectPermissionSet.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleObjectPermissionSet--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleObjectPermissionSet</h4>
+<pre>public&nbsp;SimpleObjectPermissionSet()</pre>
+<div class="block">Creates a new empty SimpleObjectPermissionSet. If you are not extending
+ SimpleObjectPermissionSet and only need an immutable, empty
+ ObjectPermissionSet, consider using <a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#EMPTY_SET"><code>ObjectPermissionSet.EMPTY_SET</code></a>
+ instead.</div>
+</li>
+</ul>
+<a name="SimpleObjectPermissionSet-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleObjectPermissionSet</h4>
+<pre>public&nbsp;SimpleObjectPermissionSet(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers,
+                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;types)</pre>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains permissions for
+ all possible unique combinations of the given identifiers and permission
+ types.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers which should be associated permissions having each
+     of the given permission types.</dd>
+<dd><code>types</code> - The types of permissions which should be granted for each of the
+     given identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleObjectPermissionSet-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleObjectPermissionSet</h4>
+<pre>public&nbsp;SimpleObjectPermissionSet(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</pre>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains only READ
+ permissions for each of the given identifiers.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers which should each be associated with READ
+     permission.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleObjectPermissionSet-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleObjectPermissionSet</h4>
+<pre>public&nbsp;SimpleObjectPermissionSet(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</pre>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains the permissions
+ within the given Set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The Set of permissions this SimpleObjectPermissionSet should
+     contain.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPermissions</h4>
+<pre>protected&nbsp;void&nbsp;setPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</pre>
+<div class="block">Sets the Set which backs this SimpleObjectPermissionSet. Future function
+ calls on this SimpleObjectPermissionSet will use the provided Set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The Set of permissions this SimpleObjectPermissionSet should
+     contain.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPermissions</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;getPermissions()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">PermissionSet</a></code></span></div>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getPermissions--">getPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">getPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set containing all permissions granted within this permission set.</dd>
+</dl>
+</li>
+</ul>
+<a name="hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasPermission</h4>
+<pre>public&nbsp;boolean&nbsp;hasPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">ObjectPermissionSet</a></code></span></div>
+<div class="block">Tests whether the permission of the given type is granted for the
+ object having the given identifier.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to check.</dd>
+<dd><code>identifier</code> - The identifier of the object affected by the permission being
+     checked.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the permission is granted, false otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while checking permissions, or if permissions
+     cannot be checked due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermission</h4>
+<pre>public&nbsp;void&nbsp;addPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">ObjectPermissionSet</a></code></span></div>
+<div class="block">Adds the specified permission for the object having the given
+ identifier.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to add.</dd>
+<dd><code>identifier</code> - The identifier of the object affected by the permission being
+     added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permission, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePermission</h4>
+<pre>public&nbsp;void&nbsp;removePermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">ObjectPermissionSet</a></code></span></div>
+<div class="block">Removes the specified permission for the object having the given
+ identifier.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to remove.</dd>
+<dd><code>identifier</code> - The identifier of the object affected by the permission being
+     added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permission, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAccessibleObjects-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAccessibleObjects</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAccessibleObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;permissionTypes,
+                                               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                                        throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">ObjectPermissionSet</a></code></span></div>
+<div class="block">Tests whether this user has the specified permissions for the objects
+ having the given identifiers. The identifier of an object is returned
+ in a new collection if at least one of the specified permissions is
+ granted for that object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissionTypes</code> - The permissions to check. An identifier will be included in the
+     resulting collection if at least one of these permissions is granted
+     for the associated object</dd>
+<dd><code>identifiers</code> - The identifiers of the objects affected by the permissions being
+     checked.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection containing the subset of identifiers for which at least
+     one of the specified permissions is granted.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while checking permissions, or if permissions
+     cannot be checked due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermissions</h4>
+<pre>public&nbsp;void&nbsp;addPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)
+                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Adds the specified permissions, if not already granted. If a specified
+ permission is already granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permissions, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removePermissions</h4>
+<pre>public&nbsp;void&nbsp;removePermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)
+                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Removes each of the specified permissions, if granted. If a specified
+ permission is not granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permissions, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleObjectPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html
new file mode 100644
index 0000000..6461ac6
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html
@@ -0,0 +1,422 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleRelatedObjectSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleRelatedObjectSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleRelatedObjectSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleRelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleRelatedObjectSet" class="title">Class SimpleRelatedObjectSet</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleRelatedObjectSet</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleRelatedObjectSet</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></pre>
+<div class="block">A read-only implementation of RelatedObjectSet which uses a backing Set
+ of identifiers to determine which objects are present.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.auth.RelatedObjectSet">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#EMPTY_SET">EMPTY_SET</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#SimpleRelatedObjectSet--">SimpleRelatedObjectSet</a></span>()</code>
+<div class="block">Creates a new empty SimpleRelatedObjectSet.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#SimpleRelatedObjectSet-java.util.Set-">SimpleRelatedObjectSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Creates a new SimpleRelatedObjectSet which contains the objects having
+ the identifiers within the given Set.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#addObjects-java.util.Set-">addObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Adds the objects having the given identifiers, if not already present.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#getObjects--">getObjects</a></span>()</code>
+<div class="block">Returns a Set which contains the identifiers of all objects contained
+ within this RelatedObjectSet.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#removeObjects-java.util.Set-">removeObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Removes each of the objects having the specified identifiers, if
+ present.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#setObjects-java.util.Set-">setObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Replaces the Set of object identifiers which backs this
+ SimpleRelatedObjectSet.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleRelatedObjectSet--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleRelatedObjectSet</h4>
+<pre>public&nbsp;SimpleRelatedObjectSet()</pre>
+<div class="block">Creates a new empty SimpleRelatedObjectSet. If you are not extending
+ SimpleRelatedObjectSet and only need an immutable, empty
+ RelatedObjectSet, consider using <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#EMPTY_SET"><code>RelatedObjectSet.EMPTY_SET</code></a>
+ instead.</div>
+</li>
+</ul>
+<a name="SimpleRelatedObjectSet-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleRelatedObjectSet</h4>
+<pre>public&nbsp;SimpleRelatedObjectSet(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</pre>
+<div class="block">Creates a new SimpleRelatedObjectSet which contains the objects having
+ the identifiers within the given Set. The given Set backs the contents
+ of the new SimpleRelatedObjectSet. While the SimpleRelatedObjectSet is
+ read-only, any changes to the underlying Set will be reflected in the
+ SimpleRelatedObjectSet.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The Set containing the identifiers of all objects which should be
+     present within the new SimpleRelatedObjectSet.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setObjects-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjects</h4>
+<pre>protected&nbsp;void&nbsp;setObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</pre>
+<div class="block">Replaces the Set of object identifiers which backs this
+ SimpleRelatedObjectSet. Future function calls on this
+ SimpleRelatedObjectSet will instead use the provided Set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The Set containing the identifiers of all objects which should be
+     present within this SimpleRelatedObjectSet.</dd>
+</dl>
+</li>
+</ul>
+<a name="getObjects--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjects</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getObjects()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#getObjects--">RelatedObjectSet</a></code></span></div>
+<div class="block">Returns a Set which contains the identifiers of all objects contained
+ within this RelatedObjectSet.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#getObjects--">getObjects</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set which contains the identifiers of all objects contained
+     within this RelatedObjectSet.</dd>
+</dl>
+</li>
+</ul>
+<a name="addObjects-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addObjects</h4>
+<pre>public&nbsp;void&nbsp;addObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#addObjects-java.util.Set-">RelatedObjectSet</a></code></span></div>
+<div class="block">Adds the objects having the given identifiers, if not already present.
+ If a specified object is already present, no operation is performed
+ regarding that object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#addObjects-java.util.Set-">addObjects</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers of all objects being added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the objects, or if permission to add
+     objects is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removeObjects-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removeObjects</h4>
+<pre>public&nbsp;void&nbsp;removeObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#removeObjects-java.util.Set-">RelatedObjectSet</a></code></span></div>
+<div class="block">Removes each of the objects having the specified identifiers, if
+ present. If a specified object is not present, no operation is performed
+ regarding that object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#removeObjects-java.util.Set-">removeObjects</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers of all objects being removed.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the objects, or if permission to
+     remove objects is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleRelatedObjectSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleRelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html
new file mode 100644
index 0000000..f815b4b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html
@@ -0,0 +1,504 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleSystemPermissionSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleSystemPermissionSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleSystemPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleSystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleSystemPermissionSet" class="title">Class SimpleSystemPermissionSet</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleSystemPermissionSet</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;, <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleSystemPermissionSet</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></pre>
+<div class="block">A read-only implementation of SystemPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.auth.permission.SystemPermissionSet">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#EMPTY_SET">EMPTY_SET</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#SimpleSystemPermissionSet--">SimpleSystemPermissionSet</a></span>()</code>
+<div class="block">Creates a new empty SimpleSystemPermissionSet.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#SimpleSystemPermissionSet-java.util.Set-">SimpleSystemPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Creates a new SimpleSystemPermissionSet which contains the permissions
+ within the given Set.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Adds the specified permission.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Adds the specified permissions, if not already granted.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Tests whether the permission of the given type is granted.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Removes the specified permission.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Removes each of the specified permissions, if granted.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#setPermissions-java.util.Set-">setPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Sets the Set which backs this SimpleSystemPermissionSet.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleSystemPermissionSet--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleSystemPermissionSet</h4>
+<pre>public&nbsp;SimpleSystemPermissionSet()</pre>
+<div class="block">Creates a new empty SimpleSystemPermissionSet. If you are not extending
+ SimpleSystemPermissionSet and only need an immutable, empty
+ SystemPermissionSet, consider using <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#EMPTY_SET"><code>SystemPermissionSet.EMPTY_SET</code></a>
+ instead.</div>
+</li>
+</ul>
+<a name="SimpleSystemPermissionSet-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleSystemPermissionSet</h4>
+<pre>public&nbsp;SimpleSystemPermissionSet(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</pre>
+<div class="block">Creates a new SimpleSystemPermissionSet which contains the permissions
+ within the given Set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The Set of permissions this SimpleSystemPermissionSet should
+     contain.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPermissions</h4>
+<pre>protected&nbsp;void&nbsp;setPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</pre>
+<div class="block">Sets the Set which backs this SimpleSystemPermissionSet. Future function
+ calls on this SimpleSystemPermissionSet will use the provided Set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The Set of permissions this SimpleSystemPermissionSet should
+     contain.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPermissions</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;getPermissions()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">PermissionSet</a></code></span></div>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">getPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#getPermissions--">getPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set containing all permissions granted within this permission set.</dd>
+</dl>
+</li>
+</ul>
+<a name="hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasPermission</h4>
+<pre>public&nbsp;boolean&nbsp;hasPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)
+                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">SystemPermissionSet</a></code></span></div>
+<div class="block">Tests whether the permission of the given type is granted.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to check.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the permission is granted, false otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while checking permissions, or if permissions
+     cannot be checked due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermission</h4>
+<pre>public&nbsp;void&nbsp;addPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">SystemPermissionSet</a></code></span></div>
+<div class="block">Adds the specified permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permission, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePermission</h4>
+<pre>public&nbsp;void&nbsp;removePermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)
+                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">SystemPermissionSet</a></code></span></div>
+<div class="block">Removes the specified permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permission, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermissions</h4>
+<pre>public&nbsp;void&nbsp;addPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)
+                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Adds the specified permissions, if not already granted. If a specified
+ permission is already granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permissions, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removePermissions</h4>
+<pre>public&nbsp;void&nbsp;removePermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)
+                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Removes each of the specified permissions, if granted. If a specified
+ permission is not granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permissions, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleSystemPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleSystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUser.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUser.html
new file mode 100644
index 0000000..97e54d8
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUser.html
@@ -0,0 +1,518 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleUser (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleUser (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUser.html" target="_top">Frames</a></li>
+<li><a href="SimpleUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleUser" class="title">Class SimpleUser</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractUser</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleUser</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleUser</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></pre>
+<div class="block">A read-only User implementation which has no permissions. Implementations
+ that need to define permissions should extend this class and override the
+ associated getters.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.User">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser--">SimpleUser</a></span>()</code>
+<div class="block">Creates a completely uninitialized SimpleUser.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-">SimpleUser</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</code>
+<div class="block">Creates a new SimpleUser having the given username.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-">SimpleUser</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionIdentifiers,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionGroupIdentifiers)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-java.util.Collection-">SimpleUser</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;userIdentifiers,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionIdentifiers,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionGroupIdentifiers)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractUser">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getAttributes--">getAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getEffectivePermissions--">getEffectivePermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getHistory--">getHistory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getLastActive--">getLastActive</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getPassword--">getPassword</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getSharingProfilePermissions--">getSharingProfilePermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getSystemPermissions--">getSystemPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserGroupPermissions--">getUserGroupPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserGroups--">getUserGroups</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#setAttributes-java.util.Map-">setAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#setPassword-java.lang.String-">setPassword</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleUser--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleUser</h4>
+<pre>public&nbsp;SimpleUser()</pre>
+<div class="block">Creates a completely uninitialized SimpleUser.</div>
+</li>
+</ul>
+<a name="SimpleUser-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleUser</h4>
+<pre>public&nbsp;SimpleUser(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</pre>
+<div class="block">Creates a new SimpleUser having the given username.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The username to assign to this SimpleUser.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleUser</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;SimpleUser(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionIdentifiers,
+                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionGroupIdentifiers)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+<div class="block">Creates a new SimpleUser having the given username and READ access to
+ the connections and connection groups having the given identifiers.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The username to assign to this SimpleUser.</dd>
+<dd><code>connectionIdentifiers</code> - The identifiers of all connections this user has READ access to.</dd>
+<dd><code>connectionGroupIdentifiers</code> - The identifiers of all connection groups this user has READ access
+     to.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleUser</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;SimpleUser(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;userIdentifiers,
+                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionIdentifiers,
+                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionGroupIdentifiers)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+<div class="block">Creates a new SimpleUser having the given username and READ access to
+ the users, connections, and groups having the given identifiers.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The username to assign to this SimpleUser.</dd>
+<dd><code>userIdentifiers</code> - The identifiers of all users this user has READ access to.</dd>
+<dd><code>connectionIdentifiers</code> - The identifiers of all connections this user has READ access to.</dd>
+<dd><code>connectionGroupIdentifiers</code> - The identifiers of all connection groups this user has READ access
+     to.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionPermissions()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionPermissions--">AbstractUser</a></code></span></div>
+<div class="block">Returns all connection permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionPermissions--">getConnectionPermissions</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionGroupPermissions()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionGroupPermissions--">AbstractUser</a></code></span></div>
+<div class="block">Returns all connection group permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection group permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserPermissions--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getUserPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserPermissions()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserPermissions--">AbstractUser</a></code></span></div>
+<div class="block">Returns all user permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserPermissions--">getUserPermissions</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUser.html" target="_top">Frames</a></li>
+<li><a href="SimpleUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserContext.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserContext.html
new file mode 100644
index 0000000..af8a02f
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserContext.html
@@ -0,0 +1,506 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleUserContext (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleUserContext (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUserContext.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserContext">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleUserContext" class="title">Class SimpleUserContext</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractUserContext</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleUserContext</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleUserContext</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></pre>
+<div class="block">An extremely simple UserContext implementation which provides access to
+ a defined and restricted set of GuacamoleConfigurations. Access to
+ querying or modifying either users or permissions is denied.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserContext">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#DEFAULT_ROOT_CONNECTION_GROUP">DEFAULT_ROOT_CONNECTION_GROUP</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.util.Map-">SimpleUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs)</code>
+<div class="block">Creates a new SimpleUserContext which provides access to only those
+ configurations within the given Map.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-">SimpleUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs)</code>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-boolean-">SimpleUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs,
+                 boolean&nbsp;interpretTokens)</code>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getResource--">getResource</a></span>()</code>
+<div class="block">Returns an arbitrary REST resource representing this UserContext.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#self--">self</a></span>()</code>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserContext">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionAttributes--">getConnectionAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionHistory--">getConnectionHistory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserAttributes--">getUserAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserDirectory--">getUserDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserHistory--">getUserHistory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#invalidate--">invalidate</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleUserContext</h4>
+<pre>public&nbsp;SimpleUserContext(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs)</pre>
+<div class="block">Creates a new SimpleUserContext which provides access to only those
+ configurations within the given Map. The username is set to the
+ ANONYMOUS_IDENTIFIER defined by AuthenticatedUser, effectively declaring
+ the current user as anonymous. Parameter tokens within the given
+ GuacamoleConfigurations will not be interpreted.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authProvider</code> - The AuthenticationProvider creating this UserContext.</dd>
+<dd><code>configs</code> - A Map of all configurations for which the user associated with this
+     UserContext has read access.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleUserContext</h4>
+<pre>public&nbsp;SimpleUserContext(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs)</pre>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.
+ Parameter tokens within the given GuacamoleConfigurations will not be
+ interpreted.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authProvider</code> - The AuthenticationProvider creating this UserContext.</dd>
+<dd><code>username</code> - The username of the user associated with this UserContext.</dd>
+<dd><code>configs</code> - A Map of all configurations for which the user associated with
+     this UserContext has read access.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleUserContext</h4>
+<pre>public&nbsp;SimpleUserContext(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs,
+                         boolean&nbsp;interpretTokens)</pre>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.
+ Parameter tokens within the given GuacamoleConfigurations will be
+ interpreted if explicitly requested.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authProvider</code> - The AuthenticationProvider creating this UserContext.</dd>
+<dd><code>username</code> - The username of the user associated with this UserContext.</dd>
+<dd><code>configs</code> - A Map of all configurations for which the user associated with
+     this UserContext has read access.</dd>
+<dd><code>interpretTokens</code> - Whether parameter tokens in the underlying GuacamoleConfigurations
+     should be automatically applied upon connecting. If false, parameter
+     tokens will not be interpreted at all.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="self--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>self</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;self()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#self--">UserContext</a></code></span></div>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The User whose access rights control the operations of this
+         UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="getResource--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResource</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getResource()
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getResource--">AbstractUserContext</a></code></span></div>
+<div class="block">Returns an arbitrary REST resource representing this UserContext. The
+ REST resource returned must be properly annotated with JSR-311
+ annotations, and may serve as the root resource for any number of
+ subresources. The returned resource is ultimately exposed at
+ ".../api/session/ext/IDENTIFIER/", where IDENTIFIER is the identifier of
+ the AuthenticationProvider associated with this UserContext.
+
+ REST resources returned by this function will only be reachable by
+ authenticated users with valid authentication tokens. REST resources
+ which should be accessible by all users regardless of whether they have
+ authenticated should instead be returned from
+ AuthenticationProvider.getResource().
+
+ <p>This implementation simply returns <code>null</code>. Implementations that
+ wish to expose REST resources specific to a user's session should
+ override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getResource--">getResource</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getResource--">getResource</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary REST resource, annotated with JSR-311 annotations, or
+     null if no such resource is defined.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the REST resource cannot be returned due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAuthenticationProvider--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticationProvider</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;getAuthenticationProvider()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">UserContext</a></code></span></div>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticationProvider that created this UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getConnectionDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;getConnectionDirectory()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--">AbstractUserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.
+
+ <p>This implementation simply returns an empty <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>.
+ Implementations that wish to expose connections should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of 
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUserContext.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserContext">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html
new file mode 100644
index 0000000..caac841
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleUserDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleUserDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUserDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.simple.SimpleDirectory">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleUserDirectory" class="title">Class SimpleUserDirectory</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleDirectory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleUserDirectory</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</dd>
+</dl>
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public class <span class="typeNameLabel">SimpleUserDirectory</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</pre>
+<div class="block">An extremely simple read-only implementation of a Directory of Users which
+ provides access to a single pre-defined User.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html#SimpleUserDirectory-org.apache.guacamole.net.auth.User-">SimpleUserDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;user)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleUserDirectory which provides access to the single
+ user provided.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.simple.SimpleDirectory">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#add-ObjectType-">add</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#get-java.lang.String-">get</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getAll-java.util.Collection-">getAll</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getIdentifiers--">getIdentifiers</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getObjects--">getObjects</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#remove-java.lang.String-">remove</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#setObjects-java.util.Map-">setObjects</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#update-ObjectType-">update</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleUserDirectory-org.apache.guacamole.net.auth.User-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleUserDirectory</h4>
+<pre>public&nbsp;SimpleUserDirectory(<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;user)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleUserDirectory which provides access to the single
+ user provided.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>user</code> - The user to provide access to.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUserDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.simple.SimpleDirectory">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserGroup.html
new file mode 100644
index 0000000..35ab2c3
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserGroup.html
@@ -0,0 +1,299 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleUserGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleUserGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserGroup">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleUserGroup" class="title">Class SimpleUserGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractUserGroup</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleUserGroup</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleUserGroup</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></pre>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions. Implementations that need to define members or permissions
+ should extend this class and override the associated getters.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html#SimpleUserGroup--">SimpleUserGroup</a></span>()</code>
+<div class="block">Creates a completely uninitialized SimpleUserGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html#SimpleUserGroup-java.lang.String-">SimpleUserGroup</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Creates a new SimpleUserGroup having the given identifier.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserGroup">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getAttributes--">getAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionPermissions--">getConnectionPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUserGroups--">getMemberUserGroups</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUsers--">getMemberUsers</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getSystemPermissions--">getSystemPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroups--">getUserGroups</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserPermissions--">getUserPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleUserGroup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleUserGroup</h4>
+<pre>public&nbsp;SimpleUserGroup()</pre>
+<div class="block">Creates a completely uninitialized SimpleUserGroup.</div>
+</li>
+</ul>
+<a name="SimpleUserGroup-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleUserGroup</h4>
+<pre>public&nbsp;SimpleUserGroup(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block">Creates a new SimpleUserGroup having the given identifier.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign to this SimpleUserGroup.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserGroup">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleActivityRecordSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleActivityRecordSet.html
new file mode 100644
index 0000000..0a53655
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleActivityRecordSet.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleAuthenticationProvider.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleAuthenticationProvider.html
new file mode 100644
index 0000000..059771f
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleAuthenticationProvider.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="SimpleAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="SimpleAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnection.html
new file mode 100644
index 0000000..4759613
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnection.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnection.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnection" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleConnection</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleConnection</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnection.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionDirectory.html
new file mode 100644
index 0000000..0ca848d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionDirectory.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroup.html
new file mode 100644
index 0000000..97f188c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroup.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleConnectionGroup</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleConnectionGroup</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroupDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroupDirectory.html
new file mode 100644
index 0000000..a130eb1
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroupDirectory.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroupDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroupDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroupDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroupDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionRecordSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionRecordSet.html
new file mode 100644
index 0000000..53e5438
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionRecordSet.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleDirectory.html
new file mode 100644
index 0000000..11e774b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleDirectory.html
@@ -0,0 +1,190 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleDirectory" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleDirectory</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleObjectPermissionSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleObjectPermissionSet.html
new file mode 100644
index 0000000..b6995bc
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleObjectPermissionSet.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleRelatedObjectSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleRelatedObjectSet.html
new file mode 100644
index 0000000..c549387
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleRelatedObjectSet.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleRelatedObjectSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleRelatedObjectSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleRelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleRelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleRelatedObjectSet" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleRelatedObjectSet</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleRelatedObjectSet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleRelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleRelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleSystemPermissionSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleSystemPermissionSet.html
new file mode 100644
index 0000000..5374e84
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleSystemPermissionSet.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleSystemPermissionSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleSystemPermissionSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleSystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleSystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleSystemPermissionSet" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleSystemPermissionSet</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleSystemPermissionSet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleSystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleSystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUser.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUser.html
new file mode 100644
index 0000000..4ac59db
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUser.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleUser (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUser (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUser.html" target="_top">Frames</a></li>
+<li><a href="SimpleUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUser" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleUser</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleUser</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUser.html" target="_top">Frames</a></li>
+<li><a href="SimpleUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserContext.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserContext.html
new file mode 100644
index 0000000..9d69f13
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserContext.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserContext (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserContext (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUserContext.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserContext" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleUserContext</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleUserContext</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUserContext.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserDirectory.html
new file mode 100644
index 0000000..9326c0d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserDirectory.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUserDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserDirectory" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleUserDirectory</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleUserDirectory</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUserDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserGroup.html
new file mode 100644
index 0000000..d94fe62
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserGroup.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUserGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleUserGroup</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleUserGroup</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUserGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-frame.html
new file mode 100644
index 0000000..e668f23
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-frame.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.simple (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html" target="classFrame">org.apache.guacamole.net.auth.simple</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleActivityRecordSet</a></li>
+<li><a href="SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleAuthenticationProvider</a></li>
+<li><a href="SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnection</a></li>
+<li><a href="SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionDirectory</a></li>
+<li><a href="SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionGroup</a></li>
+<li><a href="SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionGroupDirectory</a></li>
+<li><a href="SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionRecordSet</a></li>
+<li><a href="SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleDirectory</a></li>
+<li><a href="SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleObjectPermissionSet</a></li>
+<li><a href="SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleRelatedObjectSet</a></li>
+<li><a href="SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleSystemPermissionSet</a></li>
+<li><a href="SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUser</a></li>
+<li><a href="SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUserContext</a></li>
+<li><a href="SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUserDirectory</a></li>
+<li><a href="SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUserGroup</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-summary.html
new file mode 100644
index 0000000..2961227
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-summary.html
@@ -0,0 +1,254 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.simple (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth.simple (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net.auth.simple</h1>
+<div class="docSummary">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a>&lt;RecordType extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</td>
+<td class="colLast">
+<div class="block">An immutable and empty ActivityRecordSet.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></td>
+<td class="colLast">
+<div class="block">Provides means of retrieving a set of named GuacamoleConfigurations for a
+ given Credentials object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></td>
+<td class="colLast">
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></td>
+<td class="colLast">
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleActivityRecordSet</code></a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt;
+     instead.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</td>
+<td class="colLast">
+<div class="block">An extremely simple read-only implementation of a Directory which provides
+ access to a pre-defined Map of arbitrary objects.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></td>
+<td class="colLast">
+<div class="block">A read-only implementation of ObjectPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></td>
+<td class="colLast">
+<div class="block">A read-only implementation of RelatedObjectSet which uses a backing Set
+ of identifiers to determine which objects are present.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></td>
+<td class="colLast">
+<div class="block">A read-only implementation of SystemPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></td>
+<td class="colLast">
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></td>
+<td class="colLast">
+<div class="block">An extremely simple UserContext implementation which provides access to
+ a defined and restricted set of GuacamoleConfigurations.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></td>
+<td class="colLast">
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.net.auth.simple Description">Package org.apache.guacamole.net.auth.simple Description</h2>
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-tree.html
new file mode 100644
index 0000000..9773288
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-tree.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.simple Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth.simple Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net.auth.simple</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticationProvider</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleAuthenticationProvider</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractIdentifiable</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnection</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnectionGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionGroup</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUser</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUser</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserGroup</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserContext</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserContext</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleActivityRecordSet</span></a>&lt;RecordType&gt; (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;RecordType&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionRecordSet</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleDirectory</span></a>&lt;ObjectType&gt; (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionDirectory</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionGroupDirectory</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserDirectory</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleObjectPermissionSet</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleRelatedObjectSet</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleSystemPermissionSet</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>)</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-use.html
new file mode 100644
index 0000000..0e3facd
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-use.html
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net.auth.simple (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net.auth.simple (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net.auth.simple" class="title">Uses of Package<br>org.apache.guacamole.net.auth.simple</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> used by <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/simple/class-use/SimpleDirectory.html#org.apache.guacamole.net.auth.simple">SimpleDirectory</a>
+<div class="block">An extremely simple read-only implementation of a Directory which provides
+ access to a pre-defined Map of arbitrary objects.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/AuthenticationFailureEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/AuthenticationFailureEvent.html
new file mode 100644
index 0000000..7d6f425
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/AuthenticationFailureEvent.html
@@ -0,0 +1,301 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AuthenticationFailureEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthenticationFailureEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationFailureEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/AuthenticationFailureEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Class AuthenticationFailureEvent" class="title">Class AuthenticationFailureEvent</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.event.AuthenticationFailureEvent</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">AuthenticationFailureEvent</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></pre>
+<div class="block">An event which is triggered whenever a user's credentials fail to be
+ authenticated. The credentials that failed to be authenticated are included
+ within this event, and can be retrieved using getCredentials().</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html#AuthenticationFailureEvent-org.apache.guacamole.net.auth.Credentials-">AuthenticationFailureEvent</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Creates a new AuthenticationFailureEvent which represents the failure
+ to authenticate the given credentials.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AuthenticationFailureEvent-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AuthenticationFailureEvent</h4>
+<pre>public&nbsp;AuthenticationFailureEvent(<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</pre>
+<div class="block">Creates a new AuthenticationFailureEvent which represents the failure
+ to authenticate the given credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>credentials</code> - The credentials which failed authentication.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getCredentials--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getCredentials</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;getCredentials()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">CredentialEvent</a></code></span></div>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The current credentials of the user triggering the event, if
+         any, or null if no credentials are associated with the event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationFailureEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/AuthenticationFailureEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/AuthenticationSuccessEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/AuthenticationSuccessEvent.html
new file mode 100644
index 0000000..655e6f7
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/AuthenticationSuccessEvent.html
@@ -0,0 +1,335 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AuthenticationSuccessEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthenticationSuccessEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationSuccessEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Class AuthenticationSuccessEvent" class="title">Class AuthenticationSuccessEvent</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.event.AuthenticationSuccessEvent</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">AuthenticationSuccessEvent</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></pre>
+<div class="block">An event which is triggered whenever a user's credentials pass
+ authentication. The credentials that passed authentication are included
+ within this event, and can be retrieved using getCredentials().
+ <p>
+ If a <a href="../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> throws
+ a GuacamoleException when handling an event of this type, successful authentication
+ is effectively <em>vetoed</em> and will be subsequently processed as though the
+ authentication failed.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#AuthenticationSuccessEvent-org.apache.guacamole.net.auth.AuthenticatedUser-">AuthenticationSuccessEvent</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Creates a new AuthenticationSuccessEvent which represents a successful
+ authentication attempt by the user identified by the given
+ AuthenticatedUser object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AuthenticationSuccessEvent-org.apache.guacamole.net.auth.AuthenticatedUser-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AuthenticationSuccessEvent</h4>
+<pre>public&nbsp;AuthenticationSuccessEvent(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</pre>
+<div class="block">Creates a new AuthenticationSuccessEvent which represents a successful
+ authentication attempt by the user identified by the given
+ AuthenticatedUser object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser identifying the user that successfully
+     authenticated.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAuthenticatedUser--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticatedUser</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;getAuthenticatedUser()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">UserEvent</a></code></span></div>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticatedUser identifying the user triggering the event, if
+     any, or null if no AuthenticatedUser is associated with the event.</dd>
+</dl>
+</li>
+</ul>
+<a name="getCredentials--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getCredentials</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;getCredentials()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">CredentialEvent</a></code></span></div>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The current credentials of the user triggering the event, if
+         any, or null if no credentials are associated with the event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationSuccessEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/CredentialEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/CredentialEvent.html
new file mode 100644
index 0000000..d5a5670
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/CredentialEvent.html
@@ -0,0 +1,237 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CredentialEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CredentialEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CredentialEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/CredentialEvent.html" target="_top">Frames</a></li>
+<li><a href="CredentialEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Interface CredentialEvent" class="title">Interface CredentialEvent</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">CredentialEvent</span></pre>
+<div class="block">Abstract basis for events which may have associated user credentials when
+ triggered.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getCredentials--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getCredentials</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;getCredentials()</pre>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The current credentials of the user triggering the event, if
+         any, or null if no credentials are associated with the event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CredentialEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/CredentialEvent.html" target="_top">Frames</a></li>
+<li><a href="CredentialEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/TunnelCloseEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/TunnelCloseEvent.html
new file mode 100644
index 0000000..0515b7c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/TunnelCloseEvent.html
@@ -0,0 +1,365 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TunnelCloseEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TunnelCloseEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelCloseEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/TunnelCloseEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Class TunnelCloseEvent" class="title">Class TunnelCloseEvent</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.event.TunnelCloseEvent</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TunnelCloseEvent</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></pre>
+<div class="block">An event which is triggered whenever a tunnel is being closed. The tunnel
+ being closed can be accessed through getTunnel(), and the UserContext
+ associated with the request which is closing the tunnel can be retrieved
+ with getUserContext().
+ <p>
+ If a <a href="../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> throws
+ a GuacamoleException when handling an event of this type, the request to close
+ the tunnel is effectively <em>vetoed</em> and will remain connected.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#TunnelCloseEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelCloseEvent</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Creates a new TunnelCloseEvent which represents the closing of the
+ given tunnel via a request associated with the given credentials.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#getTunnel--">getTunnel</a></span>()</code>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TunnelCloseEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TunnelCloseEvent</h4>
+<pre>public&nbsp;TunnelCloseEvent(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                        <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                        org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</pre>
+<div class="block">Creates a new TunnelCloseEvent which represents the closing of the
+ given tunnel via a request associated with the given credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser associated with the user that is closing the
+     tunnel, if any.</dd>
+<dd><code>credentials</code> - The credentials associated with the request that closed the
+     tunnel. Note that these credentials are not necessarily the same as
+     the credentials provided when the user authenticated.</dd>
+<dd><code>tunnel</code> - The tunnel being closed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAuthenticatedUser--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticatedUser</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;getAuthenticatedUser()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">UserEvent</a></code></span></div>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticatedUser identifying the user triggering the event, if
+     any, or null if no AuthenticatedUser is associated with the event.</dd>
+</dl>
+</li>
+</ul>
+<a name="getCredentials--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCredentials</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;getCredentials()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">CredentialEvent</a></code></span></div>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The current credentials of the user triggering the event, if
+         any, or null if no credentials are associated with the event.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTunnel--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTunnel</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;getTunnel()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html#getTunnel--">TunnelEvent</a></code></span></div>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html#getTunnel--">getTunnel</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The tunnel associated with this event, if any, or null if no
+         tunnel is associated with this event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelCloseEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/TunnelCloseEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/TunnelConnectEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/TunnelConnectEvent.html
new file mode 100644
index 0000000..ad74efc
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/TunnelConnectEvent.html
@@ -0,0 +1,365 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TunnelConnectEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TunnelConnectEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelConnectEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/TunnelConnectEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Class TunnelConnectEvent" class="title">Class TunnelConnectEvent</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.event.TunnelConnectEvent</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TunnelConnectEvent</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></pre>
+<div class="block">An event which is triggered whenever a tunnel is being connected. The tunnel
+ being connected can be accessed through getTunnel(), and the UserContext
+ associated with the request which is connecting the tunnel can be retrieved
+ with getUserContext().
+ <p>
+ If a <a href="../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> throws
+ a GuacamoleException when handling an event of this type, the tunnel connection
+ is effectively <em>vetoed</em> and will be subsequently closed.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#TunnelConnectEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelConnectEvent</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                  <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                  org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Creates a new TunnelConnectEvent which represents the connecting of the
+ given tunnel via a request associated with the given credentials.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#getTunnel--">getTunnel</a></span>()</code>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TunnelConnectEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TunnelConnectEvent</h4>
+<pre>public&nbsp;TunnelConnectEvent(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                          <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                          org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</pre>
+<div class="block">Creates a new TunnelConnectEvent which represents the connecting of the
+ given tunnel via a request associated with the given credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser associated with the user that is connecting the
+     tunnel, if any.</dd>
+<dd><code>credentials</code> - The credentials associated with the request that connected the
+     tunnel. Note that these credentials are not necessarily the same as
+     the credentials provided when the user authenticated.</dd>
+<dd><code>tunnel</code> - The tunnel being connected.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAuthenticatedUser--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticatedUser</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;getAuthenticatedUser()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">UserEvent</a></code></span></div>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticatedUser identifying the user triggering the event, if
+     any, or null if no AuthenticatedUser is associated with the event.</dd>
+</dl>
+</li>
+</ul>
+<a name="getCredentials--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCredentials</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;getCredentials()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">CredentialEvent</a></code></span></div>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The current credentials of the user triggering the event, if
+         any, or null if no credentials are associated with the event.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTunnel--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTunnel</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;getTunnel()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html#getTunnel--">TunnelEvent</a></code></span></div>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html#getTunnel--">getTunnel</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The tunnel associated with this event, if any, or null if no
+         tunnel is associated with this event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelConnectEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/TunnelConnectEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/TunnelEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/TunnelEvent.html
new file mode 100644
index 0000000..3b2941c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/TunnelEvent.html
@@ -0,0 +1,236 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TunnelEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TunnelEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/TunnelEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Interface TunnelEvent" class="title">Interface TunnelEvent</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">TunnelEvent</span></pre>
+<div class="block">Abstract basis for events associated with tunnels.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html#getTunnel--">getTunnel</a></span>()</code>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTunnel--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTunnel</h4>
+<pre>org.apache.guacamole.net.GuacamoleTunnel&nbsp;getTunnel()</pre>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The tunnel associated with this event, if any, or null if no
+         tunnel is associated with this event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/TunnelEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/UserEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/UserEvent.html
new file mode 100644
index 0000000..fe616f7
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/UserEvent.html
@@ -0,0 +1,239 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UserEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UserEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/UserEvent.html" target="_top">Frames</a></li>
+<li><a href="UserEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Interface UserEvent" class="title">Interface UserEvent</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">UserEvent</span></pre>
+<div class="block">Abstract basis for events which may have an associated AuthenticatedUser when
+ triggered.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAuthenticatedUser--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getAuthenticatedUser</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;getAuthenticatedUser()</pre>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticatedUser identifying the user triggering the event, if
+     any, or null if no AuthenticatedUser is associated with the event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/UserEvent.html" target="_top">Frames</a></li>
+<li><a href="UserEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/AuthenticationFailureEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/AuthenticationFailureEvent.html
new file mode 100644
index 0000000..fbdadeb
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/AuthenticationFailureEvent.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.event.AuthenticationFailureEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.event.AuthenticationFailureEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/AuthenticationFailureEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.event.AuthenticationFailureEvent" class="title">Uses of Class<br>org.apache.guacamole.net.event.AuthenticationFailureEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener</a></td>
+<td class="colLast">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event.listener">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationFailureListener.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html#authenticationFailed-org.apache.guacamole.net.event.AuthenticationFailureEvent-">authenticationFailed</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ fails.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/AuthenticationFailureEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/AuthenticationSuccessEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/AuthenticationSuccessEvent.html
new file mode 100644
index 0000000..6cb69cf
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/AuthenticationSuccessEvent.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.event.AuthenticationSuccessEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.event.AuthenticationSuccessEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/AuthenticationSuccessEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.event.AuthenticationSuccessEvent" class="title">Uses of Class<br>org.apache.guacamole.net.event.AuthenticationSuccessEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener</a></td>
+<td class="colLast">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event.listener">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationSuccessListener.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html#authenticationSucceeded-org.apache.guacamole.net.event.AuthenticationSuccessEvent-">authenticationSucceeded</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ succeeds.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/AuthenticationSuccessEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/CredentialEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/CredentialEvent.html
new file mode 100644
index 0000000..e3c1436
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/CredentialEvent.html
@@ -0,0 +1,191 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.CredentialEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.CredentialEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/CredentialEvent.html" target="_top">Frames</a></li>
+<li><a href="CredentialEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.CredentialEvent" class="title">Uses of Interface<br>org.apache.guacamole.net.event.CredentialEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> that implement <a href="../../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></span></code>
+<div class="block">An event which is triggered whenever a user's credentials fail to be
+ authenticated.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></span></code>
+<div class="block">An event which is triggered whenever a user's credentials pass
+ authentication.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></span></code>
+<div class="block">An event which is triggered whenever a tunnel is being closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></span></code>
+<div class="block">An event which is triggered whenever a tunnel is being connected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/CredentialEvent.html" target="_top">Frames</a></li>
+<li><a href="CredentialEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelCloseEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelCloseEvent.html
new file mode 100644
index 0000000..731a49d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelCloseEvent.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.event.TunnelCloseEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.event.TunnelCloseEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/TunnelCloseEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.event.TunnelCloseEvent" class="title">Uses of Class<br>org.apache.guacamole.net.event.TunnelCloseEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener</a></td>
+<td class="colLast">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event.listener">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">TunnelCloseListener.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html#tunnelClosed-org.apache.guacamole.net.event.TunnelCloseEvent-">tunnelClosed</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately before an existing tunnel is closed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/TunnelCloseEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelConnectEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelConnectEvent.html
new file mode 100644
index 0000000..4106dc2
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelConnectEvent.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.event.TunnelConnectEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.event.TunnelConnectEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/TunnelConnectEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.event.TunnelConnectEvent" class="title">Uses of Class<br>org.apache.guacamole.net.event.TunnelConnectEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener</a></td>
+<td class="colLast">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event.listener">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">TunnelConnectListener.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html#tunnelConnected-org.apache.guacamole.net.event.TunnelConnectEvent-">tunnelConnected</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a new tunnel is connected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/TunnelConnectEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelEvent.html
new file mode 100644
index 0000000..b9fa030
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelEvent.html
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.TunnelEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.TunnelEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/TunnelEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.TunnelEvent" class="title">Uses of Interface<br>org.apache.guacamole.net.event.TunnelEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> that implement <a href="../../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></span></code>
+<div class="block">An event which is triggered whenever a tunnel is being closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></span></code>
+<div class="block">An event which is triggered whenever a tunnel is being connected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/TunnelEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/UserEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/UserEvent.html
new file mode 100644
index 0000000..5014583
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/UserEvent.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.UserEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.UserEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/UserEvent.html" target="_top">Frames</a></li>
+<li><a href="UserEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.UserEvent" class="title">Uses of Interface<br>org.apache.guacamole.net.event.UserEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> that implement <a href="../../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></span></code>
+<div class="block">An event which is triggered whenever a user's credentials pass
+ authentication.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></span></code>
+<div class="block">An event which is triggered whenever a tunnel is being closed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></span></code>
+<div class="block">An event which is triggered whenever a tunnel is being connected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/UserEvent.html" target="_top">Frames</a></li>
+<li><a href="UserEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html
new file mode 100644
index 0000000..03dcf5b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html
@@ -0,0 +1,248 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AuthenticationFailureListener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthenticationFailureListener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":38};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationFailureListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event.listener</div>
+<h2 title="Interface AuthenticationFailureListener" class="title">Interface AuthenticationFailureListener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public interface <span class="typeNameLabel">AuthenticationFailureListener</span></pre>
+<div class="block">A listener whose authenticationFailed() hook will fire immediately
+ after a user's authentication attempt fails. Note that this hook cannot
+ be used to cancel the authentication failure.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html#authenticationFailed-org.apache.guacamole.net.event.AuthenticationFailureEvent-">authenticationFailed</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ fails.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="authenticationFailed-org.apache.guacamole.net.event.AuthenticationFailureEvent-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>authenticationFailed</h4>
+<pre>void&nbsp;authenticationFailed(<a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a>&nbsp;e)
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ fails.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>e</code> - The AuthenticationFailureEvent describing the authentication
+      failure that just occurred.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while handling the authentication failure event.
+      Note that throwing an exception will NOT cause the authentication
+      failure to be canceled (which makes no sense), but it will prevent
+      subsequent listeners from receiving the notification.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationFailureListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html
new file mode 100644
index 0000000..f6be9e3
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html
@@ -0,0 +1,252 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AuthenticationSuccessListener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthenticationSuccessListener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":38};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationSuccessListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event.listener</div>
+<h2 title="Interface AuthenticationSuccessListener" class="title">Interface AuthenticationSuccessListener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public interface <span class="typeNameLabel">AuthenticationSuccessListener</span></pre>
+<div class="block">A listener whose hooks will fire immediately before and after a user's
+ authentication attempt succeeds. If a user successfully authenticates,
+ the authenticationSucceeded() hook has the opportunity to cancel the
+ authentication and force it to fail.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html#authenticationSucceeded-org.apache.guacamole.net.event.AuthenticationSuccessEvent-">authenticationSucceeded</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ succeeds.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="authenticationSucceeded-org.apache.guacamole.net.event.AuthenticationSuccessEvent-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>authenticationSucceeded</h4>
+<pre>boolean&nbsp;authenticationSucceeded(<a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a>&nbsp;e)
+                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ succeeds. The return value of this hook dictates whether the
+ successful authentication attempt is canceled.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>e</code> - The AuthenticationFailureEvent describing the authentication
+      failure that just occurred.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the successful authentication attempt should be
+      allowed, or false if the attempt should be denied, causing
+      the attempt to effectively fail.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while handling the authentication success event.
+      Throwing an exception will also cancel the authentication success.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationSuccessListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/Listener.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/Listener.html
new file mode 100644
index 0000000..566e1fd
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/Listener.html
@@ -0,0 +1,245 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Listener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Listener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Listener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/Listener.html" target="_top">Frames</a></li>
+<li><a href="Listener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event.listener</div>
+<h2 title="Interface Listener" class="title">Interface Listener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Listener</span></pre>
+<div class="block">A listener for events that occur in handing various Guacamole requests
+ such as authentication, tunnel connect/close, etc. Listeners are registered
+ through the extension manifest mechanism. When an event occurs, listeners
+ are notified in the order in which they are declared in the manifest and
+ continues until either all listeners have been notified or with the first
+ listener that throws a GuacamoleException or other runtime exception.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html#handleEvent-java.lang.Object-">handleEvent</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;event)</code>
+<div class="block">Notifies the recipient that an event has occurred.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="handleEvent-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>handleEvent</h4>
+<pre>void&nbsp;handleEvent(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;event)
+          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Notifies the recipient that an event has occurred.
+ <p>
+ Throwing an exception from an event listener can act to veto an action in
+ progress for some event types. See the Javadoc for specific event types for
+ details.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>event</code> - An object that describes the event that has occurred.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the listener wishes to stop notification of the event to subsequent
+     listeners. For some event types, this acts to veto an action in progress;
+     e.g. treating a successful authentication as though it failed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Listener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/Listener.html" target="_top">Frames</a></li>
+<li><a href="Listener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/TunnelCloseListener.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/TunnelCloseListener.html
new file mode 100644
index 0000000..cde6d7f
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/TunnelCloseListener.html
@@ -0,0 +1,249 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TunnelCloseListener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TunnelCloseListener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":38};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelCloseListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/TunnelCloseListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event.listener</div>
+<h2 title="Interface TunnelCloseListener" class="title">Interface TunnelCloseListener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public interface <span class="typeNameLabel">TunnelCloseListener</span></pre>
+<div class="block">A listener whose tunnelClosed() hook will fire immediately before an
+ existing tunnel is closed.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html#tunnelClosed-org.apache.guacamole.net.event.TunnelCloseEvent-">tunnelClosed</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately before an existing tunnel is closed.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="tunnelClosed-org.apache.guacamole.net.event.TunnelCloseEvent-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>tunnelClosed</h4>
+<pre>boolean&nbsp;tunnelClosed(<a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a>&nbsp;e)
+              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately before an existing tunnel is closed.
+ The return value of this hook dictates whether the tunnel is allowed to
+ be closed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>e</code> - The TunnelCloseEvent describing the tunnel being closed and
+      any associated credentials.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the tunnel should be allowed to be closed, or false
+      if the attempt should be denied, causing the attempt to
+      effectively fail.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while handling the tunnel close event. Throwing
+      an exception will also stop the tunnel from being closed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelCloseListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/TunnelCloseListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/TunnelConnectListener.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/TunnelConnectListener.html
new file mode 100644
index 0000000..38b6cf3
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/TunnelConnectListener.html
@@ -0,0 +1,250 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TunnelConnectListener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TunnelConnectListener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":38};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelConnectListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/TunnelConnectListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event.listener</div>
+<h2 title="Interface TunnelConnectListener" class="title">Interface TunnelConnectListener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public interface <span class="typeNameLabel">TunnelConnectListener</span></pre>
+<div class="block">A listener whose tunnelConnected() hook will fire immediately after a new
+ tunnel is connected.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html#tunnelConnected-org.apache.guacamole.net.event.TunnelConnectEvent-">tunnelConnected</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a new tunnel is connected.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="tunnelConnected-org.apache.guacamole.net.event.TunnelConnectEvent-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>tunnelConnected</h4>
+<pre>boolean&nbsp;tunnelConnected(<a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a>&nbsp;e)
+                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a new tunnel is connected.
+ The return value of this hook dictates whether the tunnel is made visible
+ to the session.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>e</code> - The TunnelConnectEvent describing the tunnel being connected and
+      any associated credentials.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the tunnel should be allowed to be connected, or false
+      if the attempt should be denied, causing the attempt to
+      effectively fail.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while handling the tunnel connect event. Throwing
+       an exception will also stop the tunnel from being made visible to the
+       session.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelConnectListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/TunnelConnectListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/AuthenticationFailureListener.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/AuthenticationFailureListener.html
new file mode 100644
index 0000000..c745fd9
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/AuthenticationFailureListener.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.listener.AuthenticationFailureListener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.listener.AuthenticationFailureListener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/AuthenticationFailureListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.listener.AuthenticationFailureListener" class="title">Uses of Interface<br>org.apache.guacamole.net.event.listener.AuthenticationFailureListener</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.event.listener.AuthenticationFailureListener</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/AuthenticationFailureListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/AuthenticationSuccessListener.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/AuthenticationSuccessListener.html
new file mode 100644
index 0000000..930102a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/AuthenticationSuccessListener.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.listener.AuthenticationSuccessListener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.listener.AuthenticationSuccessListener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/AuthenticationSuccessListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.listener.AuthenticationSuccessListener" class="title">Uses of Interface<br>org.apache.guacamole.net.event.listener.AuthenticationSuccessListener</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.event.listener.AuthenticationSuccessListener</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/AuthenticationSuccessListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/Listener.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/Listener.html
new file mode 100644
index 0000000..b4aa37b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/Listener.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.listener.Listener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.listener.Listener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/Listener.html" target="_top">Frames</a></li>
+<li><a href="Listener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.listener.Listener" class="title">Uses of Interface<br>org.apache.guacamole.net.event.listener.Listener</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.event.listener.Listener</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/Listener.html" target="_top">Frames</a></li>
+<li><a href="Listener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/TunnelCloseListener.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/TunnelCloseListener.html
new file mode 100644
index 0000000..8c843c8
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/TunnelCloseListener.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.listener.TunnelCloseListener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.listener.TunnelCloseListener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/TunnelCloseListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.listener.TunnelCloseListener" class="title">Uses of Interface<br>org.apache.guacamole.net.event.listener.TunnelCloseListener</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.event.listener.TunnelCloseListener</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/TunnelCloseListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/TunnelConnectListener.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/TunnelConnectListener.html
new file mode 100644
index 0000000..5e4d6d9
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/TunnelConnectListener.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.listener.TunnelConnectListener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.listener.TunnelConnectListener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/TunnelConnectListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.listener.TunnelConnectListener" class="title">Uses of Interface<br>org.apache.guacamole.net.event.listener.TunnelConnectListener</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.event.listener.TunnelConnectListener</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/TunnelConnectListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-frame.html
new file mode 100644
index 0000000..733d4c9
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-frame.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.event.listener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html" target="classFrame">org.apache.guacamole.net.event.listener</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">AuthenticationFailureListener</span></a></li>
+<li><a href="AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">AuthenticationSuccessListener</span></a></li>
+<li><a href="Listener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">Listener</span></a></li>
+<li><a href="TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">TunnelCloseListener</span></a></li>
+<li><a href="TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">TunnelConnectListener</span></a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-summary.html
new file mode 100644
index 0000000..be48b09
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-summary.html
@@ -0,0 +1,185 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.event.listener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.event.listener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/properties/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net.event.listener</h1>
+<div class="docSummary">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener">AuthenticationFailureListener</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener">AuthenticationSuccessListener</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener">Listener</a></td>
+<td class="colLast">
+<div class="block">A listener for events that occur in handing various Guacamole requests
+ such as authentication, tunnel connect/close, etc.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener">TunnelCloseListener</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener">TunnelConnectListener</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.net.event.listener Description">Package org.apache.guacamole.net.event.listener Description</h2>
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application. These event
+ hooks can be used to take action upon occurrence of an event and,
+ in some cases, prevent the web application from allowing the
+ event to continue for the user that triggered it.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/properties/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-tree.html
new file mode 100644
index 0000000..138a922
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-tree.html
@@ -0,0 +1,139 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.event.listener Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.event.listener Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/properties/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net.event.listener</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">AuthenticationFailureListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">AuthenticationSuccessListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Listener</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">TunnelCloseListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">TunnelConnectListener</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/properties/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-use.html
new file mode 100644
index 0000000..fa5cbd1
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-use.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net.event.listener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net.event.listener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net.event.listener" class="title">Uses of Package<br>org.apache.guacamole.net.event.listener</h1>
+</div>
+<div class="contentContainer">No usage of org.apache.guacamole.net.event.listener</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-frame.html
new file mode 100644
index 0000000..7d7fc3c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-frame.html
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.event (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../org/apache/guacamole/net/event/package-summary.html" target="classFrame">org.apache.guacamole.net.event</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="CredentialEvent.html" title="interface in org.apache.guacamole.net.event" target="classFrame"><span class="interfaceName">CredentialEvent</span></a></li>
+<li><a href="TunnelEvent.html" title="interface in org.apache.guacamole.net.event" target="classFrame"><span class="interfaceName">TunnelEvent</span></a></li>
+<li><a href="UserEvent.html" title="interface in org.apache.guacamole.net.event" target="classFrame"><span class="interfaceName">UserEvent</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">AuthenticationFailureEvent</a></li>
+<li><a href="AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">AuthenticationSuccessEvent</a></li>
+<li><a href="TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">TunnelCloseEvent</a></li>
+<li><a href="TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">TunnelConnectEvent</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-summary.html
new file mode 100644
index 0000000..c4845a4
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-summary.html
@@ -0,0 +1,214 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.event (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.event (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/listener/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net.event</h1>
+<div class="docSummary">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></td>
+<td class="colLast">
+<div class="block">Abstract basis for events which may have associated user credentials when
+ triggered.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></td>
+<td class="colLast">
+<div class="block">Abstract basis for events associated with tunnels.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></td>
+<td class="colLast">
+<div class="block">Abstract basis for events which may have an associated AuthenticatedUser when
+ triggered.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></td>
+<td class="colLast">
+<div class="block">An event which is triggered whenever a user's credentials fail to be
+ authenticated.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></td>
+<td class="colLast">
+<div class="block">An event which is triggered whenever a user's credentials pass
+ authentication.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></td>
+<td class="colLast">
+<div class="block">An event which is triggered whenever a tunnel is being closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></td>
+<td class="colLast">
+<div class="block">An event which is triggered whenever a tunnel is being connected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.net.event Description">Package org.apache.guacamole.net.event Description</h2>
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.
+ These event classes are most useful when used with hooks implemented
+ using listener classes.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/listener/package-summary.html"><code>org.apache.guacamole.net.event.listener</code></a></dd>
+</dl>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/listener/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-tree.html
new file mode 100644
index 0000000..652aabe
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-tree.html
@@ -0,0 +1,148 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.event Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.event Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/simple/package-tree.html">Prev</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/listener/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net.event</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">AuthenticationFailureEvent</span></a> (implements org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>)</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">AuthenticationSuccessEvent</span></a> (implements org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>)</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelCloseEvent</span></a> (implements org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a>, org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>)</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelConnectEvent</span></a> (implements org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a>, org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">CredentialEvent</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelEvent</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">UserEvent</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/simple/package-tree.html">Prev</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/listener/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-use.html
new file mode 100644
index 0000000..09e7b14
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-use.html
@@ -0,0 +1,217 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net.event (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net.event (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net.event" class="title">Uses of Package<br>org.apache.guacamole.net.event</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener</a></td>
+<td class="colLast">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> used by <a href="../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/CredentialEvent.html#org.apache.guacamole.net.event">CredentialEvent</a>
+<div class="block">Abstract basis for events which may have associated user credentials when
+ triggered.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/TunnelEvent.html#org.apache.guacamole.net.event">TunnelEvent</a>
+<div class="block">Abstract basis for events associated with tunnels.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/UserEvent.html#org.apache.guacamole.net.event">UserEvent</a>
+<div class="block">Abstract basis for events which may have an associated AuthenticatedUser when
+ triggered.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.event.listener">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> used by <a href="../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/AuthenticationFailureEvent.html#org.apache.guacamole.net.event.listener">AuthenticationFailureEvent</a>
+<div class="block">An event which is triggered whenever a user's credentials fail to be
+ authenticated.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/AuthenticationSuccessEvent.html#org.apache.guacamole.net.event.listener">AuthenticationSuccessEvent</a>
+<div class="block">An event which is triggered whenever a user's credentials pass
+ authentication.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/TunnelCloseEvent.html#org.apache.guacamole.net.event.listener">TunnelCloseEvent</a>
+<div class="block">An event which is triggered whenever a tunnel is being closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/TunnelConnectEvent.html#org.apache.guacamole.net.event.listener">TunnelConnectEvent</a>
+<div class="block">An event which is triggered whenever a tunnel is being connected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/BooleanGuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/BooleanGuacamoleProperty.html
new file mode 100644
index 0000000..7f1c177
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/BooleanGuacamoleProperty.html
@@ -0,0 +1,305 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanGuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BooleanGuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/BooleanGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="BooleanGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Class BooleanGuacamoleProperty" class="title">Class BooleanGuacamoleProperty</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.properties.BooleanGuacamoleProperty</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">BooleanGuacamoleProperty</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</pre>
+<div class="block">A GuacamoleProperty whose value is an boolean. Legal true values are "true",
+ or "false". Case does not matter.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html#BooleanGuacamoleProperty--">BooleanGuacamoleProperty</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.properties.GuacamoleProperty">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></h3>
+<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BooleanGuacamoleProperty--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BooleanGuacamoleProperty</h4>
+<pre>public&nbsp;BooleanGuacamoleProperty()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">GuacamoleProperty</a></code></span></div>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/BooleanGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="BooleanGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/FileGuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/FileGuacamoleProperty.html
new file mode 100644
index 0000000..2bfc4b5
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/FileGuacamoleProperty.html
@@ -0,0 +1,304 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FileGuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FileGuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FileGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/FileGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="FileGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Class FileGuacamoleProperty" class="title">Class FileGuacamoleProperty</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.properties.FileGuacamoleProperty</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">FileGuacamoleProperty</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&gt;</pre>
+<div class="block">A GuacamoleProperty whose value is a filename.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html#FileGuacamoleProperty--">FileGuacamoleProperty</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.properties.GuacamoleProperty">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></h3>
+<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FileGuacamoleProperty--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FileGuacamoleProperty</h4>
+<pre>public&nbsp;FileGuacamoleProperty()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">GuacamoleProperty</a></code></span></div>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FileGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/FileGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="FileGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/GuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/GuacamoleProperty.html
new file mode 100644
index 0000000..933c6ef
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/GuacamoleProperty.html
@@ -0,0 +1,271 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/GuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Interface GuacamoleProperty" class="title">Interface GuacamoleProperty&lt;Type&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type this GuacamoleProperty will parse into.</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a>, <a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">FileGuacamoleProperty</a>, <a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a>, <a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">LongGuacamoleProperty</a>, <a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">GuacamoleProperty&lt;Type&gt;</span></pre>
+<div class="block">An abstract representation of a property in the guacamole.properties file,
+ which parses into a specific type.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name of the property in guacamole.properties that this
+ GuacamoleProperty will parse.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="type parameter in GuacamoleProperty">Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the name of the property in guacamole.properties that this
+ GuacamoleProperty will parse.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the property in guacamole.properties that this
+         GuacamoleProperty will parse.</dd>
+</dl>
+</li>
+</ul>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="type parameter in GuacamoleProperty">Type</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/GuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/IntegerGuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/IntegerGuacamoleProperty.html
new file mode 100644
index 0000000..bc15d28
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/IntegerGuacamoleProperty.html
@@ -0,0 +1,304 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IntegerGuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IntegerGuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IntegerGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/IntegerGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="IntegerGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Class IntegerGuacamoleProperty" class="title">Class IntegerGuacamoleProperty</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.properties.IntegerGuacamoleProperty</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">IntegerGuacamoleProperty</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</pre>
+<div class="block">A GuacamoleProperty whose value is an integer.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html#IntegerGuacamoleProperty--">IntegerGuacamoleProperty</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.properties.GuacamoleProperty">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></h3>
+<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="IntegerGuacamoleProperty--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>IntegerGuacamoleProperty</h4>
+<pre>public&nbsp;IntegerGuacamoleProperty()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">GuacamoleProperty</a></code></span></div>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IntegerGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/IntegerGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="IntegerGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/LongGuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/LongGuacamoleProperty.html
new file mode 100644
index 0000000..cf87d58
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/LongGuacamoleProperty.html
@@ -0,0 +1,304 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LongGuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LongGuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LongGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/LongGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="LongGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Class LongGuacamoleProperty" class="title">Class LongGuacamoleProperty</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.properties.LongGuacamoleProperty</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">LongGuacamoleProperty</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</pre>
+<div class="block">A GuacamoleProperty whose value is an long.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html#LongGuacamoleProperty--">LongGuacamoleProperty</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.properties.GuacamoleProperty">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></h3>
+<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="LongGuacamoleProperty--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LongGuacamoleProperty</h4>
+<pre>public&nbsp;LongGuacamoleProperty()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">GuacamoleProperty</a></code></span></div>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LongGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/LongGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="LongGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/StringGuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/StringGuacamoleProperty.html
new file mode 100644
index 0000000..6ba439a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/StringGuacamoleProperty.html
@@ -0,0 +1,304 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>StringGuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="StringGuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StringGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/StringGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="StringGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Class StringGuacamoleProperty" class="title">Class StringGuacamoleProperty</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.properties.StringGuacamoleProperty</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">StringGuacamoleProperty</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</pre>
+<div class="block">A GuacamoleProperty whose value is a simple string.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html#StringGuacamoleProperty--">StringGuacamoleProperty</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.properties.GuacamoleProperty">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></h3>
+<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="StringGuacamoleProperty--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>StringGuacamoleProperty</h4>
+<pre>public&nbsp;StringGuacamoleProperty()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">GuacamoleProperty</a></code></span></div>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StringGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/StringGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="StringGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/BooleanGuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/BooleanGuacamoleProperty.html
new file mode 100644
index 0000000..0e32a3b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/BooleanGuacamoleProperty.html
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.properties.BooleanGuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.properties.BooleanGuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/BooleanGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="BooleanGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.properties.BooleanGuacamoleProperty" class="title">Uses of Class<br>org.apache.guacamole.properties.BooleanGuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a> in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> declared as <a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#GUACD_SSL">GUACD_SSL</a></span></code>
+<div class="block">Whether guacd requires SSL/TLS on connections.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/BooleanGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="BooleanGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/FileGuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/FileGuacamoleProperty.html
new file mode 100644
index 0000000..50af980
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/FileGuacamoleProperty.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.properties.FileGuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.properties.FileGuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/FileGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="FileGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.properties.FileGuacamoleProperty" class="title">Uses of Class<br>org.apache.guacamole.properties.FileGuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.properties.FileGuacamoleProperty</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/FileGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="FileGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/GuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/GuacamoleProperty.html
new file mode 100644
index 0000000..8336740
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/GuacamoleProperty.html
@@ -0,0 +1,248 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.properties.GuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.properties.GuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/GuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.properties.GuacamoleProperty" class="title">Uses of Interface<br>org.apache.guacamole.properties.GuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.properties">org.apache.guacamole.properties</a></td>
+<td class="colLast">
+<div class="block">Provides classes for reading properties from the web-application-wide
+ guacamole.properties file.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a> in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> with parameters of type <a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty</a></span>(<a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><span class="typeNameLabel">LocalEnvironment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty</a></span>(<a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty</a></span>(<a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property,
+           Type&nbsp;defaultValue)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><span class="typeNameLabel">LocalEnvironment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty</a></span>(<a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property,
+           Type&nbsp;defaultValue)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty</a></span>(<a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><span class="typeNameLabel">LocalEnvironment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty</a></span>(<a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.properties">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a> in <a href="../../../../../org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a> that implement <a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></span></code>
+<div class="block">A GuacamoleProperty whose value is an boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">FileGuacamoleProperty</a></span></code>
+<div class="block">A GuacamoleProperty whose value is a filename.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></span></code>
+<div class="block">A GuacamoleProperty whose value is an integer.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">LongGuacamoleProperty</a></span></code>
+<div class="block">A GuacamoleProperty whose value is an long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></span></code>
+<div class="block">A GuacamoleProperty whose value is a simple string.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/GuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/IntegerGuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/IntegerGuacamoleProperty.html
new file mode 100644
index 0000000..78936aa
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/IntegerGuacamoleProperty.html
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.properties.IntegerGuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.properties.IntegerGuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/IntegerGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="IntegerGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.properties.IntegerGuacamoleProperty" class="title">Uses of Class<br>org.apache.guacamole.properties.IntegerGuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a> in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> declared as <a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#GUACD_PORT">GUACD_PORT</a></span></code>
+<div class="block">The port that guacd (the Guacamole proxy server) is listening on.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/IntegerGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="IntegerGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/LongGuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/LongGuacamoleProperty.html
new file mode 100644
index 0000000..4660aec
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/LongGuacamoleProperty.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.properties.LongGuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.properties.LongGuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/LongGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="LongGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.properties.LongGuacamoleProperty" class="title">Uses of Class<br>org.apache.guacamole.properties.LongGuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.properties.LongGuacamoleProperty</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/LongGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="LongGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/StringGuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/StringGuacamoleProperty.html
new file mode 100644
index 0000000..5dc70fc
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/StringGuacamoleProperty.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.properties.StringGuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.properties.StringGuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/StringGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="StringGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.properties.StringGuacamoleProperty" class="title">Uses of Class<br>org.apache.guacamole.properties.StringGuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a> in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> declared as <a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#GUACD_HOSTNAME">GUACD_HOSTNAME</a></span></code>
+<div class="block">The hostname of the server where guacd (the Guacamole proxy server) is
+ running.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/StringGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="StringGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-frame.html
new file mode 100644
index 0000000..0531614
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-frame.html
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.properties (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/properties/package-summary.html" target="classFrame">org.apache.guacamole.properties</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="GuacamoleProperty.html" title="interface in org.apache.guacamole.properties" target="classFrame"><span class="interfaceName">GuacamoleProperty</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">BooleanGuacamoleProperty</a></li>
+<li><a href="FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">FileGuacamoleProperty</a></li>
+<li><a href="IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">IntegerGuacamoleProperty</a></li>
+<li><a href="LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">LongGuacamoleProperty</a></li>
+<li><a href="StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">StringGuacamoleProperty</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-summary.html
new file mode 100644
index 0000000..482bfff
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-summary.html
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.properties (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.properties (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/event/listener/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/protocols/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.properties</h1>
+<div class="docSummary">
+<div class="block">Provides classes for reading properties from the web-application-wide
+ guacamole.properties file.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;</td>
+<td class="colLast">
+<div class="block">An abstract representation of a property in the guacamole.properties file,
+ which parses into a specific type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleProperty whose value is an boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">FileGuacamoleProperty</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleProperty whose value is a filename.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleProperty whose value is an integer.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">LongGuacamoleProperty</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleProperty whose value is an long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleProperty whose value is a simple string.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.properties Description">Package org.apache.guacamole.properties Description</h2>
+<div class="block">Provides classes for reading properties from the web-application-wide
+ guacamole.properties file.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/event/listener/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/protocols/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-tree.html
new file mode 100644
index 0000000..48b6877
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-tree.html
@@ -0,0 +1,147 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.properties Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.properties Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/event/listener/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/protocols/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.properties</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">BooleanGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">FileGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">IntegerGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">LongGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">StringGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">GuacamoleProperty</span></a>&lt;Type&gt;</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/event/listener/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/protocols/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-use.html
new file mode 100644
index 0000000..cda6d41
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-use.html
@@ -0,0 +1,202 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.properties (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.properties (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.properties" class="title">Uses of Package<br>org.apache.guacamole.properties</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.properties">org.apache.guacamole.properties</a></td>
+<td class="colLast">
+<div class="block">Provides classes for reading properties from the web-application-wide
+ guacamole.properties file.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a> used by <a href="../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/properties/class-use/BooleanGuacamoleProperty.html#org.apache.guacamole.environment">BooleanGuacamoleProperty</a>
+<div class="block">A GuacamoleProperty whose value is an boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/properties/class-use/GuacamoleProperty.html#org.apache.guacamole.environment">GuacamoleProperty</a>
+<div class="block">An abstract representation of a property in the guacamole.properties file,
+ which parses into a specific type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/properties/class-use/IntegerGuacamoleProperty.html#org.apache.guacamole.environment">IntegerGuacamoleProperty</a>
+<div class="block">A GuacamoleProperty whose value is an integer.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/properties/class-use/StringGuacamoleProperty.html#org.apache.guacamole.environment">StringGuacamoleProperty</a>
+<div class="block">A GuacamoleProperty whose value is a simple string.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.properties">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a> used by <a href="../../../../org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/properties/class-use/GuacamoleProperty.html#org.apache.guacamole.properties">GuacamoleProperty</a>
+<div class="block">An abstract representation of a property in the guacamole.properties file,
+ which parses into a specific type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/ProtocolInfo.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/ProtocolInfo.html
new file mode 100644
index 0000000..0010fe3
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/ProtocolInfo.html
@@ -0,0 +1,482 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ProtocolInfo (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ProtocolInfo (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ProtocolInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/ProtocolInfo.html" target="_top">Frames</a></li>
+<li><a href="ProtocolInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocols</div>
+<h2 title="Class ProtocolInfo" class="title">Class ProtocolInfo</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocols.ProtocolInfo</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">ProtocolInfo</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Describes a protocol and all parameters associated with it, as required by
+ a protocol plugin for guacd. Each parameter is described with a Form, which
+ allows the parameters of a protocol to be exposed to the user as friendly
+ groupings of fields.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo--">ProtocolInfo</a></span>()</code>
+<div class="block">Creates a new ProtocolInfo with no associated name or forms.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-">ProtocolInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new ProtocolInfo having the given name, but without any forms.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-">ProtocolInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;forms)</code>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-java.util.Collection-">ProtocolInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</code>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#getConnectionForms--">getConnectionForms</a></span>()</code>
+<div class="block">Returns a mutable collection of forms describing all known parameters for
+ a connection using this protocol.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the unique name of this protocol.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#getSharingProfileForms--">getSharingProfileForms</a></span>()</code>
+<div class="block">Returns a mutable collection of forms describing all known parameters
+ relevant to a sharing profile whose primary connection uses this
+ protocol.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#setConnectionForms-java.util.Collection-">setConnectionForms</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms)</code>
+<div class="block">Sets the collection of forms describing all known parameters for a
+ connection using this protocol.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the unique name of this protocol.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#setSharingProfileForms-java.util.Collection-">setSharingProfileForms</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</code>
+<div class="block">Sets the collection of forms describing all known parameters relevant to
+ a sharing profile whose primary connection uses this protocol.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ProtocolInfo-java.lang.String-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ProtocolInfo</h4>
+<pre>public&nbsp;ProtocolInfo(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</pre>
+<div class="block">Creates a new ProtocolInfo having the given name and forms. The given
+ collections of forms are used to describe the parameters for connections
+ and sharing profiles respectively.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name associated with the protocol.</dd>
+<dd><code>connectionForms</code> - A collection of forms describing all known parameters for a
+     connection using this protocol.</dd>
+<dd><code>sharingProfileForms</code> - A collection of forms describing all known parameters relevant to a
+     sharing profile whose primary connection uses this protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="ProtocolInfo--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ProtocolInfo</h4>
+<pre>public&nbsp;ProtocolInfo()</pre>
+<div class="block">Creates a new ProtocolInfo with no associated name or forms.</div>
+</li>
+</ul>
+<a name="ProtocolInfo-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ProtocolInfo</h4>
+<pre>public&nbsp;ProtocolInfo(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new ProtocolInfo having the given name, but without any forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name associated with the protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="ProtocolInfo-java.lang.String-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ProtocolInfo</h4>
+<pre>public&nbsp;ProtocolInfo(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;forms)</pre>
+<div class="block">Creates a new ProtocolInfo having the given name and forms. The given
+ forms are used to describe the parameters for both connections and
+ sharing profiles.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name associated with the protocol.</dd>
+<dd><code>forms</code> - A collection of forms describing all known parameters for this
+     protocol, regardless of whether it is used in the context of a
+     connection or a sharing profile.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the unique name of this protocol. The protocol name is the
+ value required by the corresponding protocol plugin for guacd.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique name of this protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Sets the unique name of this protocol. The protocol name is the value
+ required by the corresponding protocol plugin for guacd.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name of this protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionForms--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionForms</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionForms()</pre>
+<div class="block">Returns a mutable collection of forms describing all known parameters for
+ a connection using this protocol. Changes to this collection affect the
+ forms exposed to the user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A mutable collection of forms describing all known parameters for a
+     connection using this protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConnectionForms-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConnectionForms</h4>
+<pre>public&nbsp;void&nbsp;setConnectionForms(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms)</pre>
+<div class="block">Sets the collection of forms describing all known parameters for a
+ connection using this protocol. The provided collection must be mutable.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connectionForms</code> - A mutable collection of forms describing all known parameters for a
+     connection using this protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileForms--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileForms</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getSharingProfileForms()</pre>
+<div class="block">Returns a mutable collection of forms describing all known parameters
+ relevant to a sharing profile whose primary connection uses this
+ protocol. Changes to this collection affect the forms exposed to the
+ user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A mutable collection of forms describing all known parameters
+     relevant to a sharing profile whose primary connection uses this
+     protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="setSharingProfileForms-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setSharingProfileForms</h4>
+<pre>public&nbsp;void&nbsp;setSharingProfileForms(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</pre>
+<div class="block">Sets the collection of forms describing all known parameters relevant to
+ a sharing profile whose primary connection uses this protocol. The
+ provided collection must be mutable.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sharingProfileForms</code> - A mutable collection of forms describing all known parameters
+     relevant to a sharing profile whose primary connection uses this
+     protocol.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ProtocolInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/ProtocolInfo.html" target="_top">Frames</a></li>
+<li><a href="ProtocolInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/class-use/ProtocolInfo.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/class-use/ProtocolInfo.html
new file mode 100644
index 0000000..bff346b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/class-use/ProtocolInfo.html
@@ -0,0 +1,192 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocols.ProtocolInfo (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocols.ProtocolInfo (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocols/class-use/ProtocolInfo.html" target="_top">Frames</a></li>
+<li><a href="ProtocolInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocols.ProtocolInfo" class="title">Uses of Class<br>org.apache.guacamole.protocols.ProtocolInfo</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a> in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> that return <a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#getProtocol-java.lang.String-">getProtocol</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the protocol having the given name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LocalEnvironment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProtocol-java.lang.String-">getProtocol</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> that return types with arguments of type <a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#getProtocols--">getProtocols</a></span>()</code>
+<div class="block">Returns a map of all available protocols, where each key is the name of
+ that protocol as would be passed to guacd during connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">LocalEnvironment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProtocols--">getProtocols</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocols/class-use/ProtocolInfo.html" target="_top">Frames</a></li>
+<li><a href="ProtocolInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-frame.html
new file mode 100644
index 0000000..5d1dc31
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-frame.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.protocols (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/protocols/package-summary.html" target="classFrame">org.apache.guacamole.protocols</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="ProtocolInfo.html" title="class in org.apache.guacamole.protocols" target="classFrame">ProtocolInfo</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-summary.html
new file mode 100644
index 0000000..05fc8d2
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-summary.html
@@ -0,0 +1,147 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.protocols (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.protocols (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/token/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.protocols</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></td>
+<td class="colLast">
+<div class="block">Describes a protocol and all parameters associated with it, as required by
+ a protocol plugin for guacd.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/token/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-tree.html
new file mode 100644
index 0000000..bd6c8dc
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-tree.html
@@ -0,0 +1,139 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.protocols Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.protocols Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/token/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.protocols</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.protocols.<a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols"><span class="typeNameLink">ProtocolInfo</span></a></li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/token/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-use.html
new file mode 100644
index 0000000..41db7cf
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-use.html
@@ -0,0 +1,162 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.protocols (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.protocols (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.protocols" class="title">Uses of Package<br>org.apache.guacamole.protocols</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a> used by <a href="../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocols/class-use/ProtocolInfo.html#org.apache.guacamole.environment">ProtocolInfo</a>
+<div class="block">Describes a protocol and all parameters associated with it, as required by
+ a protocol plugin for guacd.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/StandardTokens.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/StandardTokens.html
new file mode 100644
index 0000000..d4a2aed
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/StandardTokens.html
@@ -0,0 +1,485 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>StandardTokens (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="StandardTokens (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":41,"i1":41,"i2":41};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StandardTokens.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/StandardTokens.html" target="_top">Frames</a></li>
+<li><a href="StandardTokens.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.token</div>
+<h2 title="Class StandardTokens" class="title">Class StandardTokens</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.token.StandardTokens</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Standard tokens are now supplied by default to the connect()
+ functions of connections and connection groups. Manually generating the
+ standard tokens is not necessary.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public class <span class="typeNameLabel">StandardTokens</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Utility class which provides access to standardized token names, as well as
+ facilities for generating those tokens from common objects.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#CLIENT_ADDRESS_TOKEN">CLIENT_ADDRESS_TOKEN</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the client address token added via addStandardTokens().</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#CLIENT_HOSTNAME_TOKEN">CLIENT_HOSTNAME_TOKEN</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the client hostname token added via addStandardTokens().</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#DATE_TOKEN">DATE_TOKEN</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the date token (server-local time) added via
+ addStandardTokens().</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#PASSWORD_TOKEN">PASSWORD_TOKEN</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the password token added via addStandardTokens().</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#TIME_TOKEN">TIME_TOKEN</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the time token (server-local time) added via
+ addStandardTokens().</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#USERNAME_TOKEN">USERNAME_TOKEN</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the username token added via addStandardTokens().</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-">addStandardTokens</a></span>(<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter and which do not require a corresponding Credentials object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.AuthenticatedUser-">addStandardTokens</a></span>(<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                 <a href="../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;user)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given AuthenticatedUser object,
+ including any associated credentials.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.Credentials-">addStandardTokens</a></span>(<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                 <a href="../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given Credentials object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="USERNAME_TOKEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>USERNAME_TOKEN</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> USERNAME_TOKEN</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the username token added via addStandardTokens().</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.token.StandardTokens.USERNAME_TOKEN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="PASSWORD_TOKEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PASSWORD_TOKEN</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> PASSWORD_TOKEN</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the password token added via addStandardTokens().</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.token.StandardTokens.PASSWORD_TOKEN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="CLIENT_HOSTNAME_TOKEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_HOSTNAME_TOKEN</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> CLIENT_HOSTNAME_TOKEN</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the client hostname token added via addStandardTokens().</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.token.StandardTokens.CLIENT_HOSTNAME_TOKEN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="CLIENT_ADDRESS_TOKEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_ADDRESS_TOKEN</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> CLIENT_ADDRESS_TOKEN</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the client address token added via addStandardTokens().</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.token.StandardTokens.CLIENT_ADDRESS_TOKEN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="DATE_TOKEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DATE_TOKEN</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> DATE_TOKEN</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the date token (server-local time) added via
+ addStandardTokens().</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.token.StandardTokens.DATE_TOKEN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="TIME_TOKEN">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TIME_TOKEN</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> TIME_TOKEN</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the time token (server-local time) added via
+ addStandardTokens().</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.token.StandardTokens.TIME_TOKEN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="addStandardTokens-org.apache.guacamole.token.TokenFilter-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addStandardTokens</h4>
+<pre>public static&nbsp;void&nbsp;addStandardTokens(<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter and which do not require a corresponding Credentials object.
+ These the server date and time (GUAC_DATE and GUAC_TIME respectively).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>filter</code> - The TokenFilter to add standard tokens to.</dd>
+</dl>
+</li>
+</ul>
+<a name="addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addStandardTokens</h4>
+<pre>public static&nbsp;void&nbsp;addStandardTokens(<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                                     <a href="../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given Credentials object. These
+ standardized tokens include the current username (GUAC_USERNAME),
+ password (GUAC_PASSWORD), and the server date and time (GUAC_DATE and
+ GUAC_TIME respectively). If either the username or password are not set
+ within the given credentials, the corresponding token(s) will remain
+ unset.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>filter</code> - The TokenFilter to add standard tokens to.</dd>
+<dd><code>credentials</code> - The Credentials to use when populating the GUAC_USERNAME and
+     GUAC_PASSWORD tokens.</dd>
+</dl>
+</li>
+</ul>
+<a name="addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.AuthenticatedUser-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>addStandardTokens</h4>
+<pre>public static&nbsp;void&nbsp;addStandardTokens(<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                                     <a href="../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;user)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given AuthenticatedUser object,
+ including any associated credentials. These standardized tokens include
+ the current username (GUAC_USERNAME), password (GUAC_PASSWORD), and the
+ server date and time (GUAC_DATE and GUAC_TIME respectively). If either
+ the username or password are not set within the given user or their
+ provided credentials, the corresponding token(s) will remain unset.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>filter</code> - The TokenFilter to add standard tokens to.</dd>
+<dd><code>user</code> - The AuthenticatedUser to use when populating the GUAC_USERNAME and
+     GUAC_PASSWORD tokens.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StandardTokens.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/StandardTokens.html" target="_top">Frames</a></li>
+<li><a href="StandardTokens.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/TokenFilter.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/TokenFilter.html
new file mode 100644
index 0000000..df10545
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/TokenFilter.html
@@ -0,0 +1,455 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TokenFilter (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TokenFilter (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/TokenFilter.html" target="_top">Frames</a></li>
+<li><a href="TokenFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.token</div>
+<h2 title="Class TokenFilter" class="title">Class TokenFilter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.token.TokenFilter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TokenFilter</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Filtering object which replaces tokens of the form "${TOKEN_NAME}" with
+ their corresponding values. Unknown tokens are not replaced. If TOKEN_NAME
+ is a valid token, the literal value "${TOKEN_NAME}" can be included by using
+ "$${TOKEN_NAME}".</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#TokenFilter--">TokenFilter</a></span>()</code>
+<div class="block">Creates a new TokenFilter which has no associated tokens.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#TokenFilter-java.util.Map-">TokenFilter</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokenValues)</code>
+<div class="block">Creates a new TokenFilter which is initialized with the given token
+ name/value pairs.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#filter-java.lang.String-">filter</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;input)</code>
+<div class="block">Filters the given string, replacing any tokens with their corresponding
+ values.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#filterValues-java.util.Map-">filterValues</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;?,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;map)</code>
+<div class="block">Given an arbitrary map containing String values, replace each non-null
+ value with the corresponding filtered value.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#getToken-java.lang.String-">getToken</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the value of the token with the given name, or null if no such
+ token has been set.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#getTokens--">getTokens</a></span>()</code>
+<div class="block">Returns a map of all tokens, with each key being a token name, and each
+ value being the corresponding token value.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#setToken-java.lang.String-java.lang.String-">setToken</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Sets the token having the given name to the given value.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#setTokens-java.util.Map-">setTokens</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Replaces all current token values with the contents of the given map,
+ where each map key represents a token name, and each map value
+ represents a token value.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#unsetToken-java.lang.String-">unsetToken</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Removes the value of the token with the given name.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TokenFilter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TokenFilter</h4>
+<pre>public&nbsp;TokenFilter()</pre>
+<div class="block">Creates a new TokenFilter which has no associated tokens. Tokens must
+ later be given using <a href="../../../../org/apache/guacamole/token/TokenFilter.html#setToken-java.lang.String-java.lang.String-"><code>setToken(java.lang.String, java.lang.String)</code></a>
+ or <a href="../../../../org/apache/guacamole/token/TokenFilter.html#setTokens-java.util.Map-"><code>setTokens(java.util.Map)</code></a>.</div>
+</li>
+</ul>
+<a name="TokenFilter-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TokenFilter</h4>
+<pre>public&nbsp;TokenFilter(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokenValues)</pre>
+<div class="block">Creates a new TokenFilter which is initialized with the given token
+ name/value pairs.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tokenValues</code> - A map containing token names and their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setToken-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setToken</h4>
+<pre>public&nbsp;void&nbsp;setToken(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
+<div class="block">Sets the token having the given name to the given value. Any existing
+ value for that token is replaced.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the token to set.</dd>
+<dd><code>value</code> - The value to set the token to.</dd>
+</dl>
+</li>
+</ul>
+<a name="getToken-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getToken</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getToken(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the value of the token with the given name, or null if no such
+ token has been set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the token to return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The value of the token with the given name, or null if no such
+     token exists.</dd>
+</dl>
+</li>
+</ul>
+<a name="unsetToken-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unsetToken</h4>
+<pre>public&nbsp;void&nbsp;unsetToken(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Removes the value of the token with the given name. If no such token
+ exists, this function has no effect.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the token whose value should be removed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTokens--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTokens</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getTokens()</pre>
+<div class="block">Returns a map of all tokens, with each key being a token name, and each
+ value being the corresponding token value. Changes to this map will
+ directly affect the tokens associated with this filter.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all token names and their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="setTokens-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTokens</h4>
+<pre>public&nbsp;void&nbsp;setTokens(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</pre>
+<div class="block">Replaces all current token values with the contents of the given map,
+ where each map key represents a token name, and each map value
+ represents a token value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tokens</code> - A map containing the token names and corresponding values to
+     assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="filter-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>filter</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filter(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;input)</pre>
+<div class="block">Filters the given string, replacing any tokens with their corresponding
+ values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>input</code> - The string to filter.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A copy of the input string, with any tokens replaced with their
+     corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="filterValues-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>filterValues</h4>
+<pre>public&nbsp;void&nbsp;filterValues(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;?,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;map)</pre>
+<div class="block">Given an arbitrary map containing String values, replace each non-null
+ value with the corresponding filtered value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>map</code> - The map whose values should be filtered.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/TokenFilter.html" target="_top">Frames</a></li>
+<li><a href="TokenFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/TokenName.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/TokenName.html
new file mode 100644
index 0000000..6bb007d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/TokenName.html
@@ -0,0 +1,288 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TokenName (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TokenName (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenName.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/TokenName.html" target="_top">Frames</a></li>
+<li><a href="TokenName.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.token</div>
+<h2 title="Class TokenName" class="title">Class TokenName</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.token.TokenName</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TokenName</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Utility class for generating parameter token names.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenName.html#canonicalize-java.lang.String-">canonicalize</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Generate the name of a parameter token from the given string, with no
+ added prefix, such that the token name will simply be the transformed
+ version of the string.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenName.html#canonicalize-java.lang.String-java.lang.String-">canonicalize</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;prefix)</code>
+<div class="block">Generates the name of the parameter token that should be populated with
+ the given string.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="canonicalize-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>canonicalize</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;canonicalize(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;prefix)</pre>
+<div class="block">Generates the name of the parameter token that should be populated with
+ the given string. The provided string will be automatically transformed
+ from "CamelCase", "headlessCamelCase", "lowercase_with_underscores",
+ and "mixes_ofBoth_Styles" to consistent "UPPERCASE_WITH_UNDERSCORES".
+ Each returned token name will be prefixed with the string value provided
+ in the prefix.  The value provided in prefix will be prepended to the
+ string, but will itself not be transformed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The string to be used to generate the token name.</dd>
+<dd><code>prefix</code> - The prefix to prepend to the generated token name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the parameter token that should be populated with the
+     given string.</dd>
+</dl>
+</li>
+</ul>
+<a name="canonicalize-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>canonicalize</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;canonicalize(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Generate the name of a parameter token from the given string, with no
+ added prefix, such that the token name will simply be the transformed
+ version of the string. See
+ <a href="../../../../org/apache/guacamole/token/TokenName.html#canonicalize-java.lang.String-java.lang.String-"><code>canonicalize(java.lang.String, java.lang.String)</code></a></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The string to use to generate the token name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the parameter token that should be populated with the
+     given string.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenName.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/TokenName.html" target="_top">Frames</a></li>
+<li><a href="TokenName.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/class-use/StandardTokens.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/class-use/StandardTokens.html
new file mode 100644
index 0000000..fbadbb5
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/class-use/StandardTokens.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.token.StandardTokens (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.token.StandardTokens (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/token/class-use/StandardTokens.html" target="_top">Frames</a></li>
+<li><a href="StandardTokens.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.token.StandardTokens" class="title">Uses of Class<br>org.apache.guacamole.token.StandardTokens</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.token.StandardTokens</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/token/class-use/StandardTokens.html" target="_top">Frames</a></li>
+<li><a href="StandardTokens.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/class-use/TokenFilter.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/class-use/TokenFilter.html
new file mode 100644
index 0000000..32b7b16
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/class-use/TokenFilter.html
@@ -0,0 +1,189 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.token.TokenFilter (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.token.TokenFilter (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/token/class-use/TokenFilter.html" target="_top">Frames</a></li>
+<li><a href="TokenFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.token.TokenFilter" class="title">Uses of Class<br>org.apache.guacamole.token.TokenFilter</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.token">org.apache.guacamole.token</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.token">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a> in <a href="../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a> with parameters of type <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">StandardTokens.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-">addStandardTokens</a></span>(<a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter and which do not require a corresponding Credentials object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">StandardTokens.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.AuthenticatedUser-">addStandardTokens</a></span>(<a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                 <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;user)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given AuthenticatedUser object,
+ including any associated credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">StandardTokens.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.Credentials-">addStandardTokens</a></span>(<a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                 <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given Credentials object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/token/class-use/TokenFilter.html" target="_top">Frames</a></li>
+<li><a href="TokenFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/class-use/TokenName.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/class-use/TokenName.html
new file mode 100644
index 0000000..a702d09
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/class-use/TokenName.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.token.TokenName (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.token.TokenName (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/token/class-use/TokenName.html" target="_top">Frames</a></li>
+<li><a href="TokenName.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.token.TokenName" class="title">Uses of Class<br>org.apache.guacamole.token.TokenName</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.token.TokenName</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/token/class-use/TokenName.html" target="_top">Frames</a></li>
+<li><a href="TokenName.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-frame.html
new file mode 100644
index 0000000..3fc278b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-frame.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.token (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/token/package-summary.html" target="classFrame">org.apache.guacamole.token</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="StandardTokens.html" title="class in org.apache.guacamole.token" target="classFrame">StandardTokens</a></li>
+<li><a href="TokenFilter.html" title="class in org.apache.guacamole.token" target="classFrame">TokenFilter</a></li>
+<li><a href="TokenName.html" title="class in org.apache.guacamole.token" target="classFrame">TokenName</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-summary.html
new file mode 100644
index 0000000..bd6a36e
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-summary.html
@@ -0,0 +1,160 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.token (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.token (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocols/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/xml/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.token</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Standard tokens are now supplied by default to the connect()
+ functions of connections and connection groups.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></td>
+<td class="colLast">
+<div class="block">Filtering object which replaces tokens of the form "${TOKEN_NAME}" with
+ their corresponding values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token">TokenName</a></td>
+<td class="colLast">
+<div class="block">Utility class for generating parameter token names.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocols/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/xml/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-tree.html
new file mode 100644
index 0000000..10a5482
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-tree.html
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.token Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.token Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocols/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/xml/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.token</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.token.<a href="../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">StandardTokens</span></a></li>
+<li type="circle">org.apache.guacamole.token.<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">TokenFilter</span></a></li>
+<li type="circle">org.apache.guacamole.token.<a href="../../../../org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">TokenName</span></a></li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocols/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/xml/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-use.html
new file mode 100644
index 0000000..8f846f7
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-use.html
@@ -0,0 +1,162 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.token (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.token (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.token" class="title">Uses of Package<br>org.apache.guacamole.token</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.token">org.apache.guacamole.token</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.token">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a> used by <a href="../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/token/class-use/TokenFilter.html#org.apache.guacamole.token">TokenFilter</a>
+<div class="block">Filtering object which replaces tokens of the form "${TOKEN_NAME}" with
+ their corresponding values.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/DocumentHandler.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/DocumentHandler.html
new file mode 100644
index 0000000..f81a46f
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/DocumentHandler.html
@@ -0,0 +1,372 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DocumentHandler (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DocumentHandler (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DocumentHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/DocumentHandler.html" target="_top">Frames</a></li>
+<li><a href="DocumentHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.xml</div>
+<h2 title="Class DocumentHandler" class="title">Class DocumentHandler</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax">org.xml.sax.helpers.DefaultHandler</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.xml.DocumentHandler</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</a>, <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/DTDHandler.html?is-external=true" title="class or interface in org.xml.sax">DTDHandler</a>, <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/EntityResolver.html?is-external=true" title="class or interface in org.xml.sax">EntityResolver</a>, <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ErrorHandler.html?is-external=true" title="class or interface in org.xml.sax">ErrorHandler</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DocumentHandler</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax">org.xml.sax.helpers.DefaultHandler</a></pre>
+<div class="block">A simple ContentHandler implementation which digests SAX document events and
+ produces simpler tag-level events, maintaining its own stack for the
+ convenience of the tag handlers.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html#DocumentHandler-java.lang.String-org.apache.guacamole.xml.TagHandler-">DocumentHandler</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rootElementName,
+               <a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a>&nbsp;root)</code>
+<div class="block">Creates a new DocumentHandler which will use the given TagHandler
+ to handle the root element.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html#characters-char:A-int-int-">characters</a></span>(char[]&nbsp;ch,
+          int&nbsp;start,
+          int&nbsp;length)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html#endElement-java.lang.String-java.lang.String-java.lang.String-">endElement</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;uri,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;qName)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html#startElement-java.lang.String-java.lang.String-java.lang.String-org.xml.sax.Attributes-">startElement</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;uri,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;qName,
+            <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/Attributes.html?is-external=true" title="class or interface in org.xml.sax">Attributes</a>&nbsp;attributes)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.xml.sax.helpers.DefaultHandler">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.xml.sax.helpers.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax">DefaultHandler</a></h3>
+<code>endDocument, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DocumentHandler-java.lang.String-org.apache.guacamole.xml.TagHandler-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DocumentHandler</h4>
+<pre>public&nbsp;DocumentHandler(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rootElementName,
+                       <a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a>&nbsp;root)</pre>
+<div class="block">Creates a new DocumentHandler which will use the given TagHandler
+ to handle the root element.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>rootElementName</code> - The name of the root element of the document
+                        being handled.</dd>
+<dd><code>root</code> - The TagHandler to use for the root element.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="startElement-java.lang.String-java.lang.String-java.lang.String-org.xml.sax.Attributes-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>startElement</h4>
+<pre>public&nbsp;void&nbsp;startElement(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;uri,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;qName,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/Attributes.html?is-external=true" title="class or interface in org.xml.sax">Attributes</a>&nbsp;attributes)
+                  throws <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true#startElement-java.lang.String-java.lang.String-java.lang.String-org.xml.sax.Attributes-" title="class or interface in org.xml.sax">startElement</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true#startElement-java.lang.String-java.lang.String-java.lang.String-org.xml.sax.Attributes-" title="class or interface in org.xml.sax">startElement</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax">org.xml.sax.helpers.DefaultHandler</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="endElement-java.lang.String-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>endElement</h4>
+<pre>public&nbsp;void&nbsp;endElement(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;uri,
+                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName,
+                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;qName)
+                throws <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true#endElement-java.lang.String-java.lang.String-java.lang.String-" title="class or interface in org.xml.sax">endElement</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true#endElement-java.lang.String-java.lang.String-java.lang.String-" title="class or interface in org.xml.sax">endElement</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax">org.xml.sax.helpers.DefaultHandler</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="characters-char:A-int-int-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>characters</h4>
+<pre>public&nbsp;void&nbsp;characters(char[]&nbsp;ch,
+                       int&nbsp;start,
+                       int&nbsp;length)
+                throws <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true#characters-char:A-int-int-" title="class or interface in org.xml.sax">characters</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true#characters-char:A-int-int-" title="class or interface in org.xml.sax">characters</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax">org.xml.sax.helpers.DefaultHandler</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DocumentHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/DocumentHandler.html" target="_top">Frames</a></li>
+<li><a href="DocumentHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/TagHandler.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/TagHandler.html
new file mode 100644
index 0000000..787c2c8
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/TagHandler.html
@@ -0,0 +1,293 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TagHandler (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TagHandler (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TagHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/TagHandler.html" target="_top">Frames</a></li>
+<li><a href="TagHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.xml</div>
+<h2 title="Interface TagHandler" class="title">Interface TagHandler</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">TagHandler</span></pre>
+<div class="block">A simple element-level event handler for events triggered by the
+ SAX-driven DocumentHandler parser.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/TagHandler.html#childElement-java.lang.String-">childElement</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName)</code>
+<div class="block">Called when a child element of the current element is parsed.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/TagHandler.html#complete-java.lang.String-">complete</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;textContent)</code>
+<div class="block">Called when this element, and all child elements, have been fully parsed,
+ and the entire text content of this element (if any) is available.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/TagHandler.html#init-org.xml.sax.Attributes-">init</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/Attributes.html?is-external=true" title="class or interface in org.xml.sax">Attributes</a>&nbsp;attributes)</code>
+<div class="block">Called when the element corresponding to this TagHandler is first seen,
+ just after an instance is created.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="childElement-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>childElement</h4>
+<pre><a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a>&nbsp;childElement(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName)
+                 throws <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></pre>
+<div class="block">Called when a child element of the current element is parsed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>localName</code> - The local name of the child element seen.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The TagHandler which should handle all element-level events
+         related to the child element.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></code> - If the child element being parsed was not expected,
+                      or some other error prevents a proper TagHandler
+                      from being constructed for the child element.</dd>
+</dl>
+</li>
+</ul>
+<a name="init-org.xml.sax.Attributes-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>init</h4>
+<pre>void&nbsp;init(<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/Attributes.html?is-external=true" title="class or interface in org.xml.sax">Attributes</a>&nbsp;attributes)
+   throws <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></pre>
+<div class="block">Called when the element corresponding to this TagHandler is first seen,
+ just after an instance is created.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - The attributes of the element seen.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></code> - If an error prevents a the TagHandler from being
+                      from being initialized.</dd>
+</dl>
+</li>
+</ul>
+<a name="complete-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>complete</h4>
+<pre>void&nbsp;complete(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;textContent)
+       throws <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></pre>
+<div class="block">Called when this element, and all child elements, have been fully parsed,
+ and the entire text content of this element (if any) is available.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>textContent</code> - The full text content of this element, if any.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></code> - If the text content received is not valid for any
+                      reason, or the child elements parsed are not
+                      correct.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TagHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/TagHandler.html" target="_top">Frames</a></li>
+<li><a href="TagHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/class-use/DocumentHandler.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/class-use/DocumentHandler.html
new file mode 100644
index 0000000..755f095
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/class-use/DocumentHandler.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.xml.DocumentHandler (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.xml.DocumentHandler (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/xml/class-use/DocumentHandler.html" target="_top">Frames</a></li>
+<li><a href="DocumentHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.xml.DocumentHandler" class="title">Uses of Class<br>org.apache.guacamole.xml.DocumentHandler</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.xml.DocumentHandler</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/xml/class-use/DocumentHandler.html" target="_top">Frames</a></li>
+<li><a href="DocumentHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/class-use/TagHandler.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/class-use/TagHandler.html
new file mode 100644
index 0000000..9be01d9
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/class-use/TagHandler.html
@@ -0,0 +1,186 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.xml.TagHandler (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.xml.TagHandler (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/xml/class-use/TagHandler.html" target="_top">Frames</a></li>
+<li><a href="TagHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.xml.TagHandler" class="title">Uses of Interface<br>org.apache.guacamole.xml.TagHandler</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.xml">org.apache.guacamole.xml</a></td>
+<td class="colLast">
+<div class="block">Classes driving the SAX-based XML parser used by the Guacamole web
+ application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.xml">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a> in <a href="../../../../../org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a> that return <a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TagHandler.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/xml/TagHandler.html#childElement-java.lang.String-">childElement</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName)</code>
+<div class="block">Called when a child element of the current element is parsed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a> with parameters of type <a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/xml/DocumentHandler.html#DocumentHandler-java.lang.String-org.apache.guacamole.xml.TagHandler-">DocumentHandler</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rootElementName,
+               <a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a>&nbsp;root)</code>
+<div class="block">Creates a new DocumentHandler which will use the given TagHandler
+ to handle the root element.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/xml/class-use/TagHandler.html" target="_top">Frames</a></li>
+<li><a href="TagHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-frame.html
new file mode 100644
index 0000000..90bc2d6
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-frame.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.xml (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/xml/package-summary.html" target="classFrame">org.apache.guacamole.xml</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="TagHandler.html" title="interface in org.apache.guacamole.xml" target="classFrame"><span class="interfaceName">TagHandler</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="DocumentHandler.html" title="class in org.apache.guacamole.xml" target="classFrame">DocumentHandler</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-summary.html
new file mode 100644
index 0000000..d73bc66
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-summary.html
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.xml (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.xml (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/package-summary.html">Prev&nbsp;Package</a></li>
+<li>Next&nbsp;Package</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.xml</h1>
+<div class="docSummary">
+<div class="block">Classes driving the SAX-based XML parser used by the Guacamole web
+ application.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></td>
+<td class="colLast">
+<div class="block">A simple element-level event handler for events triggered by the
+ SAX-driven DocumentHandler parser.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">DocumentHandler</a></td>
+<td class="colLast">
+<div class="block">A simple ContentHandler implementation which digests SAX document events and
+ produces simpler tag-level events, maintaining its own stack for the
+ convenience of the tag handlers.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.xml Description">Package org.apache.guacamole.xml Description</h2>
+<div class="block">Classes driving the SAX-based XML parser used by the Guacamole web
+ application.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/package-summary.html">Prev&nbsp;Package</a></li>
+<li>Next&nbsp;Package</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-tree.html
new file mode 100644
index 0000000..dcaa4e9
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-tree.html
@@ -0,0 +1,147 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.xml Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.xml Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/package-tree.html">Prev</a></li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.xml</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.xml.sax.helpers.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax"><span class="typeNameLink">DefaultHandler</span></a> (implements org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</a>, org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/DTDHandler.html?is-external=true" title="class or interface in org.xml.sax">DTDHandler</a>, org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/EntityResolver.html?is-external=true" title="class or interface in org.xml.sax">EntityResolver</a>, org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ErrorHandler.html?is-external=true" title="class or interface in org.xml.sax">ErrorHandler</a>)
+<ul>
+<li type="circle">org.apache.guacamole.xml.<a href="../../../../org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml"><span class="typeNameLink">DocumentHandler</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.xml.<a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml"><span class="typeNameLink">TagHandler</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/package-tree.html">Prev</a></li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-use.html
new file mode 100644
index 0000000..cd47b42
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-use.html
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.xml (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.xml (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.xml" class="title">Uses of Package<br>org.apache.guacamole.xml</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.xml">org.apache.guacamole.xml</a></td>
+<td class="colLast">
+<div class="block">Classes driving the SAX-based XML parser used by the Guacamole web
+ application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.xml">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a> used by <a href="../../../../org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/xml/class-use/TagHandler.html#org.apache.guacamole.xml">TagHandler</a>
+<div class="block">A simple element-level event handler for events triggered by the
+ SAX-driven DocumentHandler parser.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/overview-frame.html b/doc/1.1.0/guacamole-ext/overview-frame.html
new file mode 100644
index 0000000..edc7547
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/overview-frame.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Overview List (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<div class="indexHeader"><span><a href="allclasses-frame.html" target="packageFrame">All&nbsp;Classes</a></span></div>
+<div class="indexContainer">
+<h2 title="Packages">Packages</h2>
+<ul title="Packages">
+<li><a href="org/apache/guacamole/environment/package-frame.html" target="packageFrame">org.apache.guacamole.environment</a></li>
+<li><a href="org/apache/guacamole/form/package-frame.html" target="packageFrame">org.apache.guacamole.form</a></li>
+<li><a href="org/apache/guacamole/language/package-frame.html" target="packageFrame">org.apache.guacamole.language</a></li>
+<li><a href="org/apache/guacamole/net/auth/package-frame.html" target="packageFrame">org.apache.guacamole.net.auth</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/package-frame.html" target="packageFrame">org.apache.guacamole.net.auth.credentials</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/package-frame.html" target="packageFrame">org.apache.guacamole.net.auth.permission</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/package-frame.html" target="packageFrame">org.apache.guacamole.net.auth.simple</a></li>
+<li><a href="org/apache/guacamole/net/event/package-frame.html" target="packageFrame">org.apache.guacamole.net.event</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/package-frame.html" target="packageFrame">org.apache.guacamole.net.event.listener</a></li>
+<li><a href="org/apache/guacamole/properties/package-frame.html" target="packageFrame">org.apache.guacamole.properties</a></li>
+<li><a href="org/apache/guacamole/protocols/package-frame.html" target="packageFrame">org.apache.guacamole.protocols</a></li>
+<li><a href="org/apache/guacamole/token/package-frame.html" target="packageFrame">org.apache.guacamole.token</a></li>
+<li><a href="org/apache/guacamole/xml/package-frame.html" target="packageFrame">org.apache.guacamole.xml</a></li>
+</ul>
+</div>
+<p>&nbsp;</p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/overview-summary.html b/doc/1.1.0/guacamole-ext/overview-summary.html
new file mode 100644
index 0000000..a1a7e7e
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/overview-summary.html
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:18 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Overview (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Overview (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
+<li><a href="overview-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">guacamole-ext 1.1.0 API</h1>
+</div>
+<div class="contentContainer">
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Packages table, listing packages, and an explanation">
+<caption><span>Packages</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></td>
+<td class="colLast">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></td>
+<td class="colLast">
+<div class="block">Provides classes for reading properties from the web-application-wide
+ guacamole.properties file.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a></td>
+<td class="colLast">
+<div class="block">Classes driving the SAX-based XML parser used by the Guacamole web
+ application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
+<li><a href="overview-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/overview-tree.html b/doc/1.1.0/guacamole-ext/overview-tree.html
new file mode 100644
index 0000000..8db2c23
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/overview-tree.html
@@ -0,0 +1,392 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:18 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For All Packages</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="org/apache/guacamole/environment/package-tree.html">org.apache.guacamole.environment</a>, </li>
+<li><a href="org/apache/guacamole/form/package-tree.html">org.apache.guacamole.form</a>, </li>
+<li><a href="org/apache/guacamole/language/package-tree.html">org.apache.guacamole.language</a>, </li>
+<li><a href="org/apache/guacamole/net/auth/package-tree.html">org.apache.guacamole.net.auth</a>, </li>
+<li><a href="org/apache/guacamole/net/auth/credentials/package-tree.html">org.apache.guacamole.net.auth.credentials</a>, </li>
+<li><a href="org/apache/guacamole/net/auth/permission/package-tree.html">org.apache.guacamole.net.auth.permission</a>, </li>
+<li><a href="org/apache/guacamole/net/auth/simple/package-tree.html">org.apache.guacamole.net.auth.simple</a>, </li>
+<li><a href="org/apache/guacamole/net/event/package-tree.html">org.apache.guacamole.net.event</a>, </li>
+<li><a href="org/apache/guacamole/net/event/listener/package-tree.html">org.apache.guacamole.net.event.listener</a>, </li>
+<li><a href="org/apache/guacamole/properties/package-tree.html">org.apache.guacamole.properties</a>, </li>
+<li><a href="org/apache/guacamole/protocols/package-tree.html">org.apache.guacamole.protocols</a>, </li>
+<li><a href="org/apache/guacamole/token/package-tree.html">org.apache.guacamole.token</a>, </li>
+<li><a href="org/apache/guacamole/xml/package-tree.html">org.apache.guacamole.xml</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticationProvider</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleAuthenticationProvider</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractIdentifiable</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractActiveConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticatedUser</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnection</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnectionGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionGroup</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUser</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUser</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserGroup</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractSharingProfile</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserContext</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserContext</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">AuthenticationFailureEvent</span></a> (implements org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>)</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">AuthenticationSuccessEvent</span></a> (implements org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">BooleanGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Credentials</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">CredentialsInfo</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">UserCredentials</span></a></li>
+</ul>
+</li>
+<li type="circle">org.xml.sax.helpers.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax"><span class="typeNameLink">DefaultHandler</span></a> (implements org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</a>, org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/DTDHandler.html?is-external=true" title="class or interface in org.xml.sax">DTDHandler</a>, org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/EntityResolver.html?is-external=true" title="class or interface in org.xml.sax">EntityResolver</a>, org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ErrorHandler.html?is-external=true" title="class or interface in org.xml.sax">ErrorHandler</a>)
+<ul>
+<li type="circle">org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml"><span class="typeNameLink">DocumentHandler</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingConnection</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingConnectionGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingConnectionGroup</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingDirectory</span></a>&lt;ObjectType&gt; (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DecoratingDirectory</span></a>&lt;ObjectType&gt;</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingSharingProfile</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUser</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUserContext</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingUserContext</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUserGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>)</li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Field</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">BooleanField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">DateField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">EmailField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">EnumField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">LanguageField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">MultilineField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">NumericField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">PasswordField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TerminalColorSchemeField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TextField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TimeField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TimeZoneField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">UsernameField</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Field.Type</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">FieldOption</span></a></li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">FileGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Form</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">GuacamoleProxyConfiguration</span></a></li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">IntegerGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment"><span class="typeNameLink">LocalEnvironment</span></a> (implements org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a>)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">LongGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermission</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols"><span class="typeNameLink">ProtocolInfo</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleActivityRecordSet</span></a>&lt;RecordType&gt; (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;RecordType&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionRecordSet</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleDirectory</span></a>&lt;ObjectType&gt; (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionDirectory</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionGroupDirectory</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserDirectory</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleObjectPermissionSet</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleRelatedObjectSet</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleSystemPermissionSet</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>)</li>
+<li type="circle">org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">StandardTokens</span></a></li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">StringGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermission</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;Type&gt;)</li>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleClientException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleSecurityException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleUnauthorizedException
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleCredentialsException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleInsufficientCredentialsException</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleInvalidCredentialsException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">TokenFilter</span></a></li>
+<li type="circle">org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">TokenName</span></a></li>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableMessage</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelCloseEvent</span></a> (implements org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a>, org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>)</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelConnectEvent</span></a> (implements org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a>, org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">User.Attribute</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecord</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionRecord</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecordSet</span></a>&lt;RecordType&gt;
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionRecordSet</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Attributes</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">SharingProfile</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">AuthenticationFailureListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">AuthenticationProvider</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">AuthenticationSuccessListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connectable</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">CredentialEvent</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Directory</span></a>&lt;ObjectType&gt;</li>
+<li type="circle">org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment"><span class="typeNameLink">Environment</span></a></li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">GuacamoleProperty</span></a>&lt;Type&gt;</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Identifiable</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">AuthenticatedUser</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">SharingProfile</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Listener</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Permission</span></a>&lt;Type&gt;</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Permissions</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">PermissionSet</span></a>&lt;PermissionType&gt;
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermissionSet</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermissionSet</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">RelatedObjectSet</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Shareable</span></a>&lt;T&gt;
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml"><span class="typeNameLink">TagHandler</span></a></li>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language"><span class="typeNameLink">Translatable</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">TunnelCloseListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">TunnelConnectListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelEvent</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserContext</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">UserEvent</span></a></li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecordSet.SortableProperty</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup.Type</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">GuacamoleProxyConfiguration.EncryptionMethod</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermission.Type</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermission.Type</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/package-list b/doc/1.1.0/guacamole-ext/package-list
new file mode 100644
index 0000000..c4b215c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/package-list
@@ -0,0 +1,13 @@
+org.apache.guacamole.environment
+org.apache.guacamole.form
+org.apache.guacamole.language
+org.apache.guacamole.net.auth
+org.apache.guacamole.net.auth.credentials
+org.apache.guacamole.net.auth.permission
+org.apache.guacamole.net.auth.simple
+org.apache.guacamole.net.event
+org.apache.guacamole.net.event.listener
+org.apache.guacamole.properties
+org.apache.guacamole.protocols
+org.apache.guacamole.token
+org.apache.guacamole.xml
diff --git a/doc/1.1.0/guacamole-ext/script.js b/doc/1.1.0/guacamole-ext/script.js
new file mode 100644
index 0000000..b346356
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/script.js
@@ -0,0 +1,30 @@
+function show(type)
+{
+    count = 0;
+    for (var key in methods) {
+        var row = document.getElementById(key);
+        if ((methods[key] &  type) != 0) {
+            row.style.display = '';
+            row.className = (count++ % 2) ? rowColor : altColor;
+        }
+        else
+            row.style.display = 'none';
+    }
+    updateTabs(type);
+}
+
+function updateTabs(type)
+{
+    for (var value in tabs) {
+        var sNode = document.getElementById(tabs[value][0]);
+        var spanNode = sNode.firstChild;
+        if (value == type) {
+            sNode.className = activeTableTab;
+            spanNode.innerHTML = tabs[value][1];
+        }
+        else {
+            sNode.className = tableTab;
+            spanNode.innerHTML = "<a href=\"javascript:show("+ value + ");\">" + tabs[value][1] + "</a>";
+        }
+    }
+}
diff --git a/doc/1.1.0/guacamole-ext/serialized-form.html b/doc/1.1.0/guacamole-ext/serialized-form.html
new file mode 100644
index 0000000..1d0dc75
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/serialized-form.html
@@ -0,0 +1,205 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Serialized Form (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Serialized Form (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li>
+<li><a href="serialized-form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Serialized Form" class="title">Serialized Form</h1>
+</div>
+<div class="serializedFormContainer">
+<ul class="blockList">
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.guacamole.net.auth</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.Credentials">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.Credentials</a> extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>1L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>username</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> username</pre>
+<div class="block">An arbitrary username.</div>
+</li>
+<li class="blockList">
+<h4>password</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> password</pre>
+<div class="block">An arbitrary password.</div>
+</li>
+<li class="blockList">
+<h4>remoteAddress</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> remoteAddress</pre>
+<div class="block">The address of the client end of the connection which provided these
+ credentials, if known.</div>
+</li>
+<li class="blockListLast">
+<h4>remoteHostname</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> remoteHostname</pre>
+<div class="block">The hostname or, if the hostname cannot be determined, the address of
+ the client end of the connection which provided these credentials, if
+ known.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.guacamole.net.auth.credentials</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException</a> extends org.apache.guacamole.GuacamoleUnauthorizedException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>credentialsInfo</h4>
+<pre><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a> credentialsInfo</pre>
+<div class="block">Information describing the form of valid credentials.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException</a> extends <a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException</a> extends <a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a> implements Serializable</h3>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li>
+<li><a href="serialized-form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/stylesheet.css b/doc/1.1.0/guacamole-ext/stylesheet.css
new file mode 100644
index 0000000..98055b2
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/stylesheet.css
@@ -0,0 +1,574 @@
+/* Javadoc style sheet */
+/*
+Overall document style
+*/
+
+@import url('resources/fonts/dejavu.css');
+
+body {
+    background-color:#ffffff;
+    color:#353833;
+    font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
+    font-size:14px;
+    margin:0;
+}
+a:link, a:visited {
+    text-decoration:none;
+    color:#4A6782;
+}
+a:hover, a:focus {
+    text-decoration:none;
+    color:#bb7a2a;
+}
+a:active {
+    text-decoration:none;
+    color:#4A6782;
+}
+a[name] {
+    color:#353833;
+}
+a[name]:hover {
+    text-decoration:none;
+    color:#353833;
+}
+pre {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+}
+h1 {
+    font-size:20px;
+}
+h2 {
+    font-size:18px;
+}
+h3 {
+    font-size:16px;
+    font-style:italic;
+}
+h4 {
+    font-size:13px;
+}
+h5 {
+    font-size:12px;
+}
+h6 {
+    font-size:11px;
+}
+ul {
+    list-style-type:disc;
+}
+code, tt {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+    margin-top:8px;
+    line-height:1.4em;
+}
+dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+}
+table tr td dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    vertical-align:top;
+    padding-top:4px;
+}
+sup {
+    font-size:8px;
+}
+/*
+Document title and Copyright styles
+*/
+.clear {
+    clear:both;
+    height:0px;
+    overflow:hidden;
+}
+.aboutLanguage {
+    float:right;
+    padding:0px 21px;
+    font-size:11px;
+    z-index:200;
+    margin-top:-9px;
+}
+.legalCopy {
+    margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+    color:#FFFFFF;
+    text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+    color:#bb7a2a;
+}
+.tab {
+    background-color:#0066FF;
+    color:#ffffff;
+    padding:8px;
+    width:5em;
+    font-weight:bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    padding:.8em .5em .4em .8em;
+    height:auto;/*height:1.8em;*/
+    font-size:11px;
+    margin:0;
+}
+.topNav {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px; 
+}
+.bottomNav {
+    margin-top:10px;
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav {
+    background-color:#dee3e9;
+    float:left;
+    width:100%;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav div {
+    clear:left;
+    float:left;
+    padding:0 0 5px 6px;
+    text-transform:uppercase;
+}
+ul.navList, ul.subNavList {
+    float:left;
+    margin:0 25px 0 0;
+    padding:0;
+}
+ul.navList li{
+    list-style:none;
+    float:left;
+    padding: 5px 6px;
+    text-transform:uppercase;
+}
+ul.subNavList li{
+    list-style:none;
+    float:left;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+    color:#FFFFFF;
+    text-decoration:none;
+    text-transform:uppercase;
+}
+.topNav a:hover, .bottomNav a:hover {
+    text-decoration:none;
+    color:#bb7a2a;
+    text-transform:uppercase;
+}
+.navBarCell1Rev {
+    background-color:#F8981D;
+    color:#253441;
+    margin: auto 5px;
+}
+.skipNav {
+    position:absolute;
+    top:auto;
+    left:-9999px;
+    overflow:hidden;
+}
+/*
+Page header and footer styles
+*/
+.header, .footer {
+    clear:both;
+    margin:0 20px;
+    padding:5px 0 0 0;
+}
+.indexHeader {
+    margin:10px;
+    position:relative;
+}
+.indexHeader span{
+    margin-right:15px;
+}
+.indexHeader h1 {
+    font-size:13px;
+}
+.title {
+    color:#2c4557;
+    margin:10px 0;
+}
+.subTitle {
+    margin:5px 0 0 0;
+}
+.header ul {
+    margin:0 0 15px 0;
+    padding:0;
+}
+.footer ul {
+    margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+    list-style:none;
+    font-size:13px;
+}
+/*
+Heading styles
+*/
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+    padding:0;
+    margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+    padding:0px 0 20px 0;
+}
+/*
+Page layout container styles
+*/
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
+    clear:both;
+    padding:10px 20px;
+    position:relative;
+}
+.indexContainer {
+    margin:10px;
+    position:relative;
+    font-size:12px;
+}
+.indexContainer h2 {
+    font-size:13px;
+    padding:0 0 3px 0;
+}
+.indexContainer ul {
+    margin:0;
+    padding:0;
+}
+.indexContainer ul li {
+    list-style:none;
+    padding-top:2px;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+    font-size:12px;
+    font-weight:bold;
+    margin:10px 0 0 0;
+    color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+    margin:5px 0 10px 0px;
+    font-size:14px;
+    font-family:'DejaVu Sans Mono',monospace;
+}
+.serializedFormContainer dl.nameValue dt {
+    margin-left:1px;
+    font-size:1.1em;
+    display:inline;
+    font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+    margin:0 0 0 1px;
+    font-size:1.1em;
+    display:inline;
+}
+/*
+List styles
+*/
+ul.horizontal li {
+    display:inline;
+    font-size:0.9em;
+}
+ul.inheritance {
+    margin:0;
+    padding:0;
+}
+ul.inheritance li {
+    display:inline;
+    list-style:none;
+}
+ul.inheritance li ul.inheritance {
+    margin-left:15px;
+    padding-left:15px;
+    padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+    margin:10px 0 10px 0;
+    padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+    list-style:none;
+    margin-bottom:15px;
+    line-height:1.4;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+    padding:0px 20px 5px 10px;
+    border:1px solid #ededed; 
+    background-color:#f8f8f8;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+    padding:0 0 5px 8px;
+    background-color:#ffffff;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+    margin-left:0;
+    padding-left:0;
+    padding-bottom:15px;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+    list-style:none;
+    border-bottom:none;
+    padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+    margin-top:0;
+    margin-bottom:1px;
+}
+/*
+Table styles
+*/
+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
+    width:100%;
+    border-left:1px solid #EEE; 
+    border-right:1px solid #EEE; 
+    border-bottom:1px solid #EEE; 
+}
+.overviewSummary, .memberSummary  {
+    padding:0px;
+}
+.overviewSummary caption, .memberSummary caption, .typeSummary caption,
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
+    position:relative;
+    text-align:left;
+    background-repeat:no-repeat;
+    color:#253441;
+    font-weight:bold;
+    clear:none;
+    overflow:hidden;
+    padding:0px;
+    padding-top:10px;
+    padding-left:1px;
+    margin:0px;
+    white-space:pre;
+}
+.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
+.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
+.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
+.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
+.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
+    color:#FFFFFF;
+}
+.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    padding-bottom:7px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    border: none;
+    height:16px;
+}
+.memberSummary caption span.activeTableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    height:16px;
+}
+.memberSummary caption span.tableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#4D7A97;
+    height:16px;
+}
+.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
+    padding-top:0px;
+    padding-left:0px;
+    padding-right:0px;
+    background-image:none;
+    float:none;
+    display:inline;
+}
+.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
+    display:none;
+    width:5px;
+    position:relative;
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .activeTableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative; 
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .tableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative;
+    background-color:#4D7A97;
+    float:left;
+
+}
+.overviewSummary td, .memberSummary td, .typeSummary td,
+.useSummary td, .constantsSummary td, .deprecatedSummary td {
+    text-align:left;
+    padding:0px 0px 12px 10px;
+}
+th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
+td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
+    vertical-align:top;
+    padding-right:0px;
+    padding-top:8px;
+    padding-bottom:3px;
+}
+th.colFirst, th.colLast, th.colOne, .constantsSummary th {
+    background:#dee3e9;
+    text-align:left;
+    padding:8px 3px 3px 7px;
+}
+td.colFirst, th.colFirst {
+    white-space:nowrap;
+    font-size:13px;
+}
+td.colLast, th.colLast {
+    font-size:13px;
+}
+td.colOne, th.colOne {
+    font-size:13px;
+}
+.overviewSummary td.colFirst, .overviewSummary th.colFirst,
+.useSummary td.colFirst, .useSummary th.colFirst,
+.overviewSummary td.colOne, .overviewSummary th.colOne,
+.memberSummary td.colFirst, .memberSummary th.colFirst,
+.memberSummary td.colOne, .memberSummary th.colOne,
+.typeSummary td.colFirst{
+    width:25%;
+    vertical-align:top;
+}
+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+    font-weight:bold;
+}
+.tableSubHeadingColor {
+    background-color:#EEEEFF;
+}
+.altColor {
+    background-color:#FFFFFF;
+}
+.rowColor {
+    background-color:#EEEEEF;
+}
+/*
+Content styles
+*/
+.description pre {
+    margin-top:0;
+}
+.deprecatedContent {
+    margin:0;
+    padding:10px 0;
+}
+.docSummary {
+    padding:0;
+}
+
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    font-style:normal;
+}
+
+div.block {
+    font-size:14px;
+    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+
+td.colLast div {
+    padding-top:0px;
+}
+
+
+td.colLast a {
+    padding-bottom:3px;
+}
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+    color:green;
+    padding:0 30px 0 0;
+}
+h1.hidden {
+    visibility:hidden;
+    overflow:hidden;
+    font-size:10px;
+}
+.block {
+    display:block;
+    margin:3px 10px 2px 0px;
+    color:#474747;
+}
+.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
+.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
+.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
+    font-weight:bold;
+}
+.deprecationComment, .emphasizedPhrase, .interfaceName {
+    font-style:italic;
+}
+
+div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
+div.block div.block span.interfaceName {
+    font-style:normal;
+}
+
+div.contentContainer ul.blockList li.blockList h2{
+    padding-bottom:0px;
+}
diff --git a/doc/1.1.0/gug/adhoc-connections.html b/doc/1.1.0/gug/adhoc-connections.html
new file mode 100644
index 0000000..ef2f122
--- /dev/null
+++ b/doc/1.1.0/gug/adhoc-connections.html
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 14. Ad-hoc Connections</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="radius-auth.html" title="Chapter 13. RADIUS Authentication" /><link rel="next" href="using-guacamole.html" title="Chapter 15. Using Guacamole" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 14. Ad-hoc Connections</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="radius-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="using-guacamole.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="adhoc-connections"></a>Chapter 14. Ad-hoc Connections</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="adhoc-connections.html#quickconnect-downloading">Downloading the quickconnect extension</a></span></dt><dt><span class="section"><a href="adhoc-connections.html#installing-quickconnect">Installing the quickconnect extension</a></span></dt><dd><dl><dt><span class="section"><a href="adhoc-connections.html#guac-quickconnect-config">Configuring Guacamole for the quickconnect extension</a></span></dt><dt><span class="section"><a href="adhoc-connections.html#completing-quickconnect-install">Completing the installation</a></span></dt></dl></dd><dt><span class="section"><a href="adhoc-connections.html#using-quickconnect">Using the quickconnect extension</a></span></dt></dl></div><a id="idm46420848482096" class="indexterm"></a><a id="idm46420847676416" class="indexterm"></a><a id="idm46420847675520" class="indexterm"></a><p>The quickconnect extension provides a connection bar on the Guacamole Client home page
+        that allows users to type in the URI of a server to which they want to connect and the client
+        will parse the URI and immediately establish the connection.  The purpose of the extension is
+        to allow situations where administrators want to allow users the flexibility of establishing
+        their own connections without having to grant them access to edit connections or even to have
+        to create the connections at all, aside from typing the URI.</p><div class="important"><h3 class="title">Important</h3><p>There are several implications of using this extension that should be well-understood
+            by administrators prior to implementing it:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Connections established with this extension are created in-memory
+                    and only persist until the Guacamole session ends.</p></li><li class="listitem"><p>Connections created with this extension are not accessible to other users, and
+                    cannot be shared with other users.</p></li><li class="listitem"><p>This extension provides no functionality for authenticating users - it does
+                    not allow anonymous logins, and requires that users are successfully authenticated
+                    by another authentication module before it can be used.</p></li><li class="listitem"><p>The extension provides users the ability not only to establish connections, but
+                    also to set any of the parameters for a connection.  There are security implications for
+                    this - for example, RDP file sharing can be used to pass through any directory available
+                    on the server running guacd to the remote desktop.  This should be taken into consideration
+                    when enabling this extension and making sure that guacd is configured in a way that
+                    does not compromise sensitive system files by allowing access to them.</p></li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="quickconnect-downloading"></a>Downloading the quickconnect extension</h2></div></div></div><p>The quickconnect extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided in the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The quickconnect extension is packaged as a <code class="filename">.tar.gz</code> file containing
+            only the extension itself, <code class="filename">guacamole-auth-quickconnect-1.1.0.jar</code>, which must
+            ultimately be placed in <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-quickconnect"></a>Installing the quickconnect extension</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory.
+                <span class="emphasis"><em>If you are unsure where <code class="varname">GUACAMOLE_HOME</code> is located on
+                your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before
+                proceeding.</em></span></p><p>To install the extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Place the <code class="filename">guacamole-auth-quickconnect-1.1.0.jar</code> file in
+                    the <code class="filename">GUACAMOLE_HOME/extensions</code> directory.</p></li></ol></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-quickconnect-config"></a>Configuring Guacamole for the quickconnect extension</h3></div></div></div><a id="idm46420848179008" class="indexterm"></a><p>This module has no configuration options.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="completing-quickconnect-install"></a>Completing the installation</h3></div></div></div><p>Guacamole will only load newly-installed extensions during startup, so your
+                servlet container will need to be restarted before the quickconnect extension
+                can be used. <span class="emphasis"><em>Doing this will disconnect all active users, so be sure
+                    that it is safe to do so prior to attempting installation.</em></span>
+                When ready, restart your servlet container and give the extension a try.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="using-quickconnect"></a>Using the quickconnect extension</h2></div></div></div><p>The quickconnect extension provides a field on the home page that allows you to enter
+            a Uniform Resource Identifier (URI) to create a connection. A URI is in the form:</p><div class="informalexample"><p><code class="uri"><em class="replaceable"><code>protocol</code></em>://<em class="replaceable"><code>username</code></em>:<em class="replaceable"><code>password</code></em>@<em class="replaceable"><code>host</code></em>:<em class="replaceable"><code>port</code></em>/?<em class="replaceable"><code>parameters</code></em></code></p></div><p>The <em class="replaceable"><code>protocol</code></em> field can have any of the protocols supported
+            by Guacamole, as documented in <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a>. Many of the
+            protocols define a default <em class="replaceable"><code>port</code></em> value, with the exception of
+            VNC. The <em class="replaceable"><code>parameters</code></em> field can specify any of the
+            protocol-specific parameters as documented on the configuration page.</p><p>To establish a connection, simply type in a valid URI and either press "Enter" or
+            click the connect button. This extension will parse the URI and create a new connection,
+            and immediately start that connection in the current browser.</p><p>Here are a few examples of URIs:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><div class="informalexample"><p><code class="uri">ssh://linux1.example.com/</code></p></div><p>Connect to the server linux1.example.com using the SSH protocol on the default
+                    SSH port (22). This will result in prompting for both username and
+                    password.</p></li><li class="listitem"><div class="informalexample"><p><code class="uri">vnc://linux1.example.com:5900/</code></p></div><p>Connect to the server linux1.example.com using the VNC protocol and specifying
+                    the port as 5900.</p></li><li class="listitem"><div class="informalexample"><p><code class="uri">
+                            rdp://localuser@windows1.example.com/?security=rdp&amp;ignore-cert=true&amp;disable-audio=true&amp;enable-drive=true&amp;drive-path=/mnt/usb
+                        </code></p></div><p>Connect to the server windows1.example.com using the RDP protocol and the user
+                    "localuser". This URI also specifies several RDP-specific parameters on the
+                    connection, including forcing security mode to RDP (security=rdp), ignoring any
+                    certificate errors (ignore-cert=true), disabling audio pass-through
+                    (disable-audio=true), and enabling filesystem redirection (enable-drive=true) to
+                    the /mnt/usb folder on the system running guacd (drive-path=/mnt/usb).</p></li></ul></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="radius-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using-guacamole.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 13. RADIUS Authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 15. Using Guacamole</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/administration.html b/doc/1.1.0/gug/administration.html
new file mode 100644
index 0000000..4e85cef
--- /dev/null
+++ b/doc/1.1.0/gug/administration.html
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 16. Administration</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="using-guacamole.html" title="Chapter 15. Using Guacamole" /><link rel="next" href="troubleshooting.html" title="Chapter 17. Troubleshooting" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 16. Administration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using-guacamole.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="troubleshooting.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="administration"></a>Chapter 16. Administration</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="administration.html#session-management">Managing sessions</a></span></dt><dd><dl><dt><span class="section"><a href="administration.html#filtering-sessions">Filtering and sorting</a></span></dt></dl></dd><dt><span class="section"><a href="administration.html#connection-history">Connection history</a></span></dt><dd><dl><dt><span class="section"><a href="administration.html#filtering-history">Filtering and sorting</a></span></dt></dl></dd><dt><span class="section"><a href="administration.html#user-management">User management</a></span></dt><dd><dl><dt><span class="section"><a href="administration.html#user-group-membership">Editing group membership</a></span></dt></dl></dd><dt><span class="section"><a href="administration.html#user-group-management">User group management</a></span></dt><dd><dl><dt><span class="section"><a href="administration.html#idm46420845391936">Group membership of groups</a></span></dt></dl></dd><dt><span class="section"><a href="administration.html#connection-management">Connections and connection groups</a></span></dt><dd><dl><dt><span class="section"><a href="administration.html#connection-group-management">Connection organization and balancing</a></span></dt><dt><span class="section"><a href="administration.html#idm46420845357872">Connection sharing</a></span></dt></dl></dd></dl></div><a id="idm46420847313712" class="indexterm"></a><p>Users, user groups, connections, and active sessions can be administered from within the
+        web interface if the underlying authentication module supports this. The only
+        officially-supported authentication modules supporting this are the database extensions,
+        which are documented in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>.</p><p>If you are using the default authentication mechanism, or another authentication
+        extension, this chapter probably does not apply to you, and the management options will not
+        be visible in the Guacamole interface. If, on the other hand, you are using one of the
+        database authentication providers, and you are logged in as a user with sufficient
+        privileges, you will see management sections listed within the settings screen:</p><div class="informalfigure"><div class="mediaobject"><img src="images/guacamole-settings-sections.png" width="315" /><div class="caption"><p>Sections within the Guacamole settings screen.</p></div></div></div><p>Clicking any of these options will take you to a corresponding management section where
+        you can perform administrative tasks.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="session-management"></a>Managing sessions</h2></div></div></div><a id="idm46420847271824" class="indexterm"></a><p>Clicking "Active Sessions" navigates to the session management screen. The session
+            management screen displays all active sessions and allows system administrators to kill
+            them as needed.</p><p>When any user accesses a particular remote desktop connection, a unique session is
+            created and will appear in the list of active sessions in the session management screen.
+            Each active session is displayed in a sortable table, showing the corresponding user's
+            username, how long the session has been active, the IP address of the machine from which
+            the user is connecting, and the name of the connection being used.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/manage-sessions.png" width="450" /><div class="caption"><p>Session management interface</p></div></div></div></div><p>To kill one or more sessions, select the sessions by clicking their checkboxes. Once
+            all desired sessions have been selected, clicking "Kill Sessions" will immediately
+            disconnect those users from the associated connection.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="filtering-sessions"></a>Filtering and sorting</h3></div></div></div><p>The table can be resorted by clicking on the column headers. Clicking any column
+                will resort the table by the values within that column, while clicking a column
+                which is already sorted will toggle between ascending and descending order.</p><p>The content of the table can be limited through search terms specified in the
+                "Filter" field. Entering search terms will limit the table to only sessions
+                containing those terms. For example, to list only connections by the user
+                "guacadmin" which have been active since March, 2015, you would enter: "guacadmin
+                2015-03". Beware that if a search term needs to contain spaces, it must be enclosed
+                in double quotes to avoid being interpreted as multiple terms.</p><div class="informalfigure"><div class="mediaobject"><img src="images/session-filter-example-1.png" width="450" /></div></div><p>If you wish to narrow the content of the table to only those connections which
+                originate from a particular block of IP addresses, you can do this by specifying the
+                block in standard CIDR notation, such "10.0.0.0/8" or "2001:db8:1234::/48". This
+                will work with both IPv4 and IPv6 addresses.</p><div class="informalfigure"><div class="mediaobject"><img src="images/session-filter-example-2.png" width="450" /></div></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="connection-history"></a>Connection history</h2></div></div></div><a id="idm46420847827344" class="indexterm"></a><a id="idm46420847826448" class="indexterm"></a><p>Clicking "History" navigates to the connection history screen. The connection history
+            screen displays a table of the most recent connections, including the user that used
+            that connection, the time the connection began, and how long the connection was
+            used.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/manage-history.png" width="450" /><div class="caption"><p>Connection history interface</p></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="filtering-history"></a>Filtering and sorting</h3></div></div></div><p>Initially, the connection history table will display only the most recent history
+                records. You can page through these records to see how and when Guacamole has been
+                used.</p><p>Just as with the table of active sessions described earlier, the table of history
+                records can be resorted by clicking on the column headers or filtered by entering
+                search terms within the "Filter" field.</p><p>The same filtering format applies - a search term containing spaces must be
+                enclosed in double quotes to avoid being interpreted as multiple terms, and only
+                history records which contain each term will be included in the history table.
+                Unlike the table of active sessions, however, the filter will only take effect once
+                you click the "Search" button. This is due to the nature of the connection history,
+                as the number of records may be quite extensive.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="user-management"></a>User management</h2></div></div></div><a id="idm46420847696272" class="indexterm"></a><p>Clicking "Users" within the list of settings sections will take you to the user
+            management screen. Here you can add new users, edit the properties and privileges of
+            existing users, and view the times that each user last logged in. If you have a large
+            number of users, you can also enter search terms within the "Filter" field to filter the
+            list of users by username.</p><p>To add a new user, click the "New User" button. This will take you to a screen where
+            you will be allowed to enter the details of the new user, such as the password and
+            username. Note that, unless you specify otherwise, the new user will have no access to
+            any existing connections, nor any administrative privileges, and you will need to
+            manually set the user's password before they will be able to log in.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/manage-users.png" width="450" /><div class="caption"><p>User management interface</p></div></div></div></div><p>To edit a user, just click on the user you wish to edit. You will be taken to a screen
+            which allows you to change the user's password, expire their password (such that it must
+            be changed at next login), add or remove administrative permissions, and add or remove
+            read access to specific connections, sharing profiles, or groups. If you are managing a
+            large number of connections or groups and wish to reduce the size of the list displayed,
+            you can do so by specifying search terms within the "Filter" field. Groups will be
+            filtered by name and connections will be filtered by name or protocol.</p><p>If you have delete permission on the user, you will also see a "Delete" button.
+            Clicking this button will permanently delete the user. Alternatively, if you only wish
+            to temporarily disable the account, checking "Login disabled" will achieve the same
+            effect while not removing the user entirely. If they attempt to log in, the attempt will
+            be rejected as if their account did not exist at all.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-user.png" width="450" /><div class="caption"><p>Editing a user</p></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="user-group-membership"></a>Editing group membership</h3></div></div></div><p>When editing a user, the groups that user is a member of may be modified within
+                the "Groups" section. By default, only groups that the user is already a member of
+                will be displayed. If you have permission to modify the user's membership within a
+                group, an "X" icon will be available next to that group's name. Clicking the "X"
+                will remove the user from that group, taking effect after the user is saved.</p><p>To add users to a group, the arrow next to the list of groups must be clicked to
+                expand the section and reveal all available groups. Available groups may then be
+                checked/unchecked to modify the user's membership within those groups:</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-user-membership.png" width="450" /><div class="caption"><p>Editing group membership of a user</p></div></div></div></div><p>If you have a large number of available groups, you can also enter search terms
+                within the "Filter" field to filter the list of groups by name.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="user-group-management"></a>User group management</h2></div></div></div><a id="idm46420847720688" class="indexterm"></a><a id="idm46420847719792" class="indexterm"></a><a id="idm46420847718896" class="indexterm"></a><p>Clicking "Groups" within the list of settings sections will take you to the user group
+            management screen. Here you can add new groups and edit the properties and privileges of
+            existing groups. If you have a large number of user groups, you can also enter search
+            terms within the "Filter" field to filter the list of groups by name:</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/manage-groups.png" width="450" /><div class="caption"><p>User group management interface</p></div></div></div></div><p>To add a new group, click the "New Group" button. This will take you to a screen where
+            you will be allowed to enter the details of the new group, including membership and any
+            permissions that members of the group should have.</p><p>To edit a group, just click on the group you wish to edit. You will be taken to a
+            screen which allows you to modify membership, add or remove administrative permissions,
+            and add or remove read access to specific connections, sharing profiles, or connection
+            groups. If you are managing a large number of connections or groups and wish to reduce
+            the size of the list displayed, you can do so by specifying search terms within the
+            "Filter" field. Connection groups will be filtered by name and connections will be
+            filtered by name or protocol.</p><p>If you have delete permission on the group, you will also see a "Delete" button.
+            Clicking this button will permanently delete the group. Alternatively, if you only wish
+            to temporarily disable the effects of membership in the group, checking "Disabled" will
+            achieve the same effect while not removing the group entirely.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-user-group.png" width="450" /><div class="caption"><p>Editing a user group</p></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420845391936"></a>Group membership of groups</h3></div></div></div><p>Managing the group membership of groups is more complex than that of users, as
+                groups may contain both users and groups, with permissions from parent groups
+                possibly being inherited. Parent groups, member groups, and member users, can all be
+                managed identically to the <a class="link" href="administration.html#user-group-membership" title="Editing group membership">group memberships of users</a>, with a
+                corresponding section dedicated to each within the user group editor:</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-group-memberships.png" width="450" /><div class="caption"><p>Editing the various membership relations of a user group</p></div></div></div></div><p>Note that it is ultimately up to the extension providing the group to determine
+                how permissions granted to that group are inherited, if at all. The <a class="link" href="jdbc-auth.html" title="Chapter 6. Database authentication">database
+                    authentication extension</a> implements full recursive inheritance of group
+                permissions, with permissions granted to a group being granted to all
+                members/descendants of that group, regardless of how deeply those members are
+                nested.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="connection-management"></a>Connections and connection groups</h2></div></div></div><a id="idm46420845382368" class="indexterm"></a><a id="idm46420845381472" class="indexterm"></a><a id="idm46420845380576" class="indexterm"></a><p>Clicking "Connections" within the list of settings sections will take you to the
+            connection management screen. The connection management screen allows administrators to
+            create and edit connections, sharing profiles, and connection groups. If you have a
+            large number of connections, you can also enter search terms within the "Filter" field
+            to filter the list of connections by name or protocol.</p><p>To add a new connection or connection group, click the "New Connection" or "New Group"
+            button, or the "New Connection" or "New Group" placeholders which appear when you expand
+            an existing connection group. These options will take you to a screen where you will be
+            allowed to enter the details of the new object, such as its location, parameters, and
+            name. This name should be descriptive, but must also be unique with respect to other
+            objects in the same location.</p><p>Once you click "Save", the new object will be added, but will initially only be usable
+            by administrators and your current user. To grant another user access to the new
+            connection or connection group, you must <a class="link" href="administration.html#user-management" title="User management">edit that
+                user</a> or <a class="link" href="administration.html#user-group-management" title="User group management">a user group that the user is a member of</a>,
+            checking the box corresponding to the connection or connection group you created.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/manage-connections.png" width="450" /><div class="caption"><p>Connection management interface</p></div></div></div></div><p>Editing connections, sharing profiles, and connection groups works identically to
+            editing a user. Click on the object you wish to edit, and you will be taken to screen
+            which allows you to edit it. The screen will display all properties of the object,
+            including its usage history, if applicable.</p><p>If you have delete permission on the object, you will also see a "Delete" button.
+            Clicking this button will permanently delete the object being edited.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-connection.png" width="450" /><div class="caption"><p>Editing a connection</p></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="connection-group-management"></a>Connection organization and balancing</h3></div></div></div><p>Connection groups can be either "organizational" or "balancing". Each group can
+                contain any number of other connections or groups, but the semantics of the group
+                change depending on the type.</p><p>An organizational group behaves exactly as a folder or directory in a file system.
+                It simply contains connections and other groups, but provides no other behavior.
+                Clicking on an organizational group within a connection list will expand the group,
+                revealing its contents.</p><p>A balancing group behaves as a connection. It dynamically balances load across the
+                connections it contains, choosing the connection with the fewest number of active
+                users. Unlike organizational groups, clicking on a balancing group causes a new
+                connection to be opened. The actual underlying connection used depends on which
+                connection has the least load at the time the group was clicked, and whether session
+                affinity is enabled on that group.</p><p><a id="idm46420845362960" class="indexterm"></a>Enabling session affinity for a balancing group ensures that users are
+                consistently routed to the same underlying connections until they log out of
+                Guacamole. The load balancing behavior of the balancing group will apply only for
+                the first time a particular user connects to the group. If your users may lose their
+                desktop state if they are routed to a different underlying connection, this option
+                should be enabled.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-group.png" width="450" /><div class="caption"><p>Editing a connection group</p></div></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420845357872"></a>Connection sharing</h3></div></div></div><p>The ability to share a connection is governed through the use of "sharing
+                profiles". If a sharing profile is created for a connection, users with access to
+                both that connection and that sharing profile will be able to share the connection
+                with other users by <a class="link" href="using-guacamole.html#client-share-menu" title="Sharing the connection">generating connection sharing links</a>, even if
+                those users do not otherwise have user accounts within Guacamole.</p><p>The name of the sharing profile will be presented an option within the <a class="link" href="using-guacamole.html#client-share-menu" title="Sharing the connection">share
+                    menu</a> for any users with access, while the level of access granted to
+                users of generated share links will be dictated by the parameters specified for the
+                sharing profile.</p><div class="important"><h3 class="title">Important</h3><p><span class="emphasis"><em>The only extension which ships with Guacamole and implements enough
+                        of the <a class="link" href="guacamole-ext.html" title="Chapter 22. guacamole-ext">Guacamole extension API</a> to share its
+                        connections is the <a class="link" href="jdbc-auth.html" title="Chapter 6. Database authentication">database authentication extension</a></em></span>.
+                    If you wish to share connections (or allow your users to share connections), you
+                    will need to use the database authentication extension to store those
+                    connections.</p><p>If you need to use other authentication schemes, keep in mind that the
+                    database authentication extension can be used <a class="link" href="ldap-auth.html#ldap-and-database" title="Associating LDAP with a database">alongside other extensions</a>, with the database handling connection
+                    storage and permissions only. Writing your own extension which supports sharing
+                    is another alternative, though that may be overly complicated if everything you
+                    need is already provided.</p></div><p>Unlike connections and groups, there is no "New Sharing Profile" button. Sharing
+                profiles are created through clicking the "New Sharing Profile" placeholders which
+                appear when connections are expanded. Just as expanding a connection group reveals
+                the connections or groups therein, expanding a connection reveals the sharing
+                profiles associated with that connection. This holds true with both <a class="link" href="administration.html#connection-management" title="Connections and connection groups">the
+                    list of connections in the connection management screen</a> and <a class="link" href="administration.html#user-management" title="User management">the list of
+                    connections in the user editor</a>.</p><p>Creating or editing a sharing profile is virtually identical to creating or
+                editing a connection, with the exception that not all connection parameters are
+                available:</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-sharing-profile.png" width="450" /><div class="caption"><p>Editing a sharing profile</p></div></div></div></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using-guacamole.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="troubleshooting.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 15. Using Guacamole </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 17. Troubleshooting</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/appendices.html b/doc/1.1.0/gug/appendices.html
new file mode 100644
index 0000000..416aca1
--- /dev/null
+++ b/doc/1.1.0/gug/appendices.html
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part III. Appendices</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="index.html" title="Guacamole Manual" /><link rel="prev" href="writing-you-own-guacamole-app.html" title="Chapter 26. Writing your own Guacamole application" /><link rel="next" href="faq.html" title="Appendix A. FAQ" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part III. Appendices</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="writing-you-own-guacamole-app.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="faq.html">Next</a></td></tr></table><hr /></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a id="appendices"></a>Part III. Appendices</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="appendix"><a href="faq.html">A. FAQ</a></span></dt><dt><span class="appendix"><a href="protocol-reference.html">B. Guacamole protocol reference</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#drawing-instructions">Drawing instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#streaming-instructions">Streaming instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#object-instructions">Object instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#client-handshake-instructions">Client handshake instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#server-handshake-instructions">Server handshake instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#client-control-instructions">Client control instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#server-control-instructions">Server control instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#client-events">Client events</a></span></dt></dl></dd><dt><span class="index"><a href="book-index.html">Index</a></span></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="writing-you-own-guacamole-app.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="faq.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 26. Writing your own Guacamole application </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Appendix A. FAQ</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/book-index.html b/doc/1.1.0/gug/book-index.html
new file mode 100644
index 0000000..c0d7a19
--- /dev/null
+++ b/doc/1.1.0/gug/book-index.html
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Index</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="appendices.html" title="Part III. Appendices" /><link rel="prev" href="protocol-reference.html" title="Appendix B. Guacamole protocol reference" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Index</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="protocol-reference.html">Prev</a> </td><th width="60%" align="center">Part III. Appendices</th><td width="20%" align="right"> </td></tr></table><hr /></div><div class="index"><div class="titlepage"><div><div><h2 class="title"><a id="book-index"></a>Index</h2></div></div></div><div xmlns:xlink="http://www.w3.org/1999/xlink" class="index"><div class="indexdiv"><h3>A</h3><dl><dt id="ientry-idm46420843086176">ack, <a class="indexterm" href="protocol-reference.html#ack-instruction">ack</a></dt><dt id="ientry-idm46420847676416">adhoc, <a class="indexterm" href="adhoc-connections.html">Ad-hoc Connections</a></dt><dt id="ientry-idm46420847313712">administration, <a class="indexterm" href="administration.html">Administration</a></dt><dt id="ientry-idm46420845124768">API</dt><dd><dl><dt>C, <a class="indexterm" href="libguac.html">libguac</a></dt><dt>Java, <a class="indexterm" href="guacamole-common.html">guacamole-common</a>, <a class="indexterm" href="guacamole-ext.html">guacamole-ext</a></dt><dt>JavaScript, <a class="indexterm" href="guacamole-common-js.html">guacamole-common-js</a></dt></dl></dd><dt id="ientry-idm46420848564688">api-session-timeout, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46420844276048">application</dt><dd><dl><dt>development, <a class="indexterm" href="writing-you-own-guacamole-app.html">Writing your own Guacamole application</a></dt></dl></dd><dt id="ientry-idm46420843545568">arc, <a class="indexterm" href="protocol-reference.html#arc-instruction">arc</a></dt><dt id="ientry-idm46420849712288">architecture, <a class="indexterm" href="guacamole-architecture.html">Implementation and architecture</a></dt><dt id="ientry-idm46420843012912">argv, <a class="indexterm" href="protocol-reference.html#argv-instruction">argv</a></dt><dt id="ientry-idm46420846525152">audio, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a>, <a class="indexterm" href="protocol-reference.html#audio-stream-instruction">audio</a>, <a class="indexterm" href="protocol-reference.html#audio-handshake-instruction">audio</a></dt><dt id="ientry-idm46420846520160">audio input, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt id="ientry-idm46420847073952">authentication, <a class="indexterm" href="configuring-guacamole.html#basic-auth">Using the default authentication</a></dt><dd><dl><dt>custom, <a class="indexterm" href="custom-auth.html">Custom authentication</a></dt></dl></dd><dt id="ientry-idm46420848561648">available-languages, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt></dl></div><div class="indexdiv"><h3>B</h3><dl><dt id="ientry-idm46420845449744">bind_host, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46420845446000">bind_port, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46420842994352">blob, <a class="indexterm" href="protocol-reference.html#blob-instruction">blob</a></dt><dt id="ientry-idm46420842907408">body, <a class="indexterm" href="protocol-reference.html#body-object-instruction">body</a></dt></dl></div><div class="indexdiv"><h3>C</h3><dl><dt id="ientry-idm46420847951472">CAS Authentication, <a class="indexterm" href="cas-auth.html">CAS Authentication</a></dt><dt id="ientry-idm46420847159328">CAS authentication</dt><dd><dl><dt>configuration, <a class="indexterm" href="cas-auth.html#guac-cas-config">Configuring Guacamole for CAS Authentication</a></dt></dl></dd><dt id="ientry-idm46420843391888">cfill, <a class="indexterm" href="protocol-reference.html#cfill-instruction">cfill</a></dt><dt id="ientry-idm46420842801792">client instructions</dt><dd><dl><dt>control, <a class="indexterm" href="protocol-reference.html#client-control-instructions">Client control instructions</a></dt><dt>events, <a class="indexterm" href="protocol-reference.html#client-events">Client events</a></dt></dl></dd><dt id="ientry-idm46420849705664">client plugin, <a class="indexterm" href="guacamole-architecture.html#guacd">guacd</a></dt><dt id="ientry-idm46420843375712">clip, <a class="indexterm" href="protocol-reference.html#clip-instruction">clip</a></dt><dt id="ientry-idm46420847490688">clipboard, <a class="indexterm" href="using-guacamole.html#using-the-clipboard">Copying/pasting text</a>, <a class="indexterm" href="protocol-reference.html#clipboard-instruction">clipboard</a></dt><dt id="ientry-idm46420846808608">clipboard encoding, <a class="indexterm" href="configuring-guacamole.html#vnc-clipboard-encoding">Clipboard encoding</a></dt><dt id="ientry-idm46420843369648">close, <a class="indexterm" href="protocol-reference.html#close-instruction">close</a></dt><dt id="ientry-idm46420849611040">compiling</dt><dd><dl><dt>Guacamole, <a class="indexterm" href="installing-guacamole.html">Installing Guacamole natively</a></dt></dl></dd><dt id="ientry-idm46420848573040">configuration, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46420849431152">configuring CAS authentication, <a class="indexterm" href="cas-auth.html#guac-cas-config">Configuring Guacamole for CAS Authentication</a></dt><dt id="ientry-idm46420849227472">configuring Duo, <a class="indexterm" href="duo-auth.html#guac-duo-config">Configuring Guacamole for Duo</a></dt><dt id="ientry-idm46420848418672">configuring HTTP header authentication, <a class="indexterm" href="header-auth.html#guac-header-config">Configuring Guacamole for HTTP header authentication</a></dt><dt id="ientry-idm46420847161760">configuring LDAP, <a class="indexterm" href="ldap-auth.html#guac-ldap-config">Configuring Guacamole for LDAP</a></dt><dt id="ientry-idm46420848220640">configuring OpenID Connect authentication, <a class="indexterm" href="openid-auth.html#guac-openid-config">Configuring Guacamole for single sign-on with OpenID Connect</a></dt><dt id="ientry-idm46420848179008">configuring quickconnect, <a class="indexterm" href="adhoc-connections.html#guac-quickconnect-config">Configuring Guacamole for the quickconnect extension</a></dt><dt id="ientry-idm46420848490096">configuring RADIUS authentication, <a class="indexterm" href="radius-auth.html#guac-radius-config">Configuring Guacamole for RADIUS authentication</a></dt><dt id="ientry-idm46420848413344">configuring TOTP, <a class="indexterm" href="totp-auth.html#guac-totp-config">Configuring Guacamole for TOTP</a></dt><dt id="ientry-idm46420842849264">connect, <a class="indexterm" href="protocol-reference.html#connect-instruction">connect</a></dt><dt id="ientry-idm46420845290896">Connecting, waiting for first update..., <a class="indexterm" href="troubleshooting.html#idm46420845291632">No graphics appear</a></dt><dt id="ientry-idm46420846418816">connection broker, <a class="indexterm" href="configuring-guacamole.html#rdp-connection-broker">Load balancing and RDP connection brokers</a></dt><dt id="ientry-idm46420845381472">connection groups, <a class="indexterm" href="administration.html#connection-management">Connections and connection groups</a></dt><dt id="ientry-idm46420847826448">connection history, <a class="indexterm" href="administration.html#connection-history">Connection history</a></dt><dt id="ientry-idm46420845382368">connection management, <a class="indexterm" href="administration.html#connection-management">Connections and connection groups</a></dt><dt id="ientry-idm46420847052192">connections</dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#connection-setup">Adding connections to a user</a></dt><dt>adhoc, <a class="indexterm" href="adhoc-connections.html">Ad-hoc Connections</a></dt></dl></dd><dt id="ientry-idm46420842804032">control instructions, <a class="indexterm" href="protocol-reference.html#client-control-instructions">Client control instructions</a></dt><dt id="ientry-idm46420843363424">copy, <a class="indexterm" href="protocol-reference.html#copy-instruction">copy</a></dt><dt id="ientry-idm46420843341456">cstroke, <a class="indexterm" href="protocol-reference.html#cstroke-instruction">cstroke</a></dt><dt id="ientry-idm46420843318640">cursor, <a class="indexterm" href="protocol-reference.html#cursor-instruction">cursor</a></dt><dt id="ientry-idm46420843301312">curve, <a class="indexterm" href="protocol-reference.html#curve-instruction">curve</a></dt><dt id="ientry-idm46420844277056">custom application, <a class="indexterm" href="writing-you-own-guacamole-app.html">Writing your own Guacamole application</a></dt></dl></div><div class="indexdiv"><h3>D</h3><dl><dt id="ientry-idm46420848059040">default user, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-default-user">Logging in</a></dt><dt id="ientry-idm46420848921088">deploying, <a class="indexterm" href="installing-guacamole.html#deploying-guacamole">Deploying Guacamole</a></dt><dt id="ientry-idm46420846525936">disabling audio, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt id="ientry-idm46420842797968">disconnect, <a class="indexterm" href="protocol-reference.html#client-disconnect-instruction">disconnect</a>, <a class="indexterm" href="protocol-reference.html#server-disconnect-instruction">disconnect</a></dt><dt id="ientry-idm46420843283440">dispose, <a class="indexterm" href="protocol-reference.html#dispose-instruction">dispose</a></dt><dt id="ientry-idm46420844230576">distort, <a class="indexterm" href="protocol-reference.html#distort-instruction">distort</a></dt><dt id="ientry-idm46420849300368">docker, <a class="indexterm" href="guacamole-docker.html">Installing Guacamole with Docker</a></dt><dt id="ientry-idm46420843551136">drawing instructions, <a class="indexterm" href="protocol-reference.html#drawing-instructions">Drawing instructions</a></dt><dt id="ientry-idm46420849461648">Duo, <a class="indexterm" href="duo-auth.html">Duo two-factor authentication</a></dt><dd><dl><dt>configuration, <a class="indexterm" href="duo-auth.html#guac-duo-config">Configuring Guacamole for Duo</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>E</h3><dl><dt id="ientry-idm46420847131312">enable-environment-properties, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46420846520960">enabling audio input, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt id="ientry-idm46420846505280">enabling file transfer, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt id="ientry-idm46420846515776">enabling printing, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt id="ientry-idm46420842977440">end, <a class="indexterm" href="protocol-reference.html#end-instruction">end</a></dt><dt id="ientry-idm46420842776016">error, <a class="indexterm" href="protocol-reference.html#error-instruction">error</a></dt><dt id="ientry-idm46420845295376">errors, <a class="indexterm" href="troubleshooting.html">Troubleshooting</a></dt><dd><dl><dt>guacd, <a class="indexterm" href="troubleshooting.html#guacd-errors">guacd errors</a></dt></dl></dd><dt id="ientry-idm46420844613760">events, <a class="indexterm" href="protocol-reference.html#client-events">Client events</a></dt><dd><dl><dt>listeners, <a class="indexterm" href="event-listeners.html">Event listeners</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>F</h3><dl><dt id="ientry-idm46420842971120">file, <a class="indexterm" href="protocol-reference.html#file-stream-instruction">file</a></dt><dt id="ientry-idm46420846504480">file transfer, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a>, <a class="indexterm" href="using-guacamole.html#file-transfer">Transferring files</a></dt><dt id="ientry-idm46420842894832">filesystem, <a class="indexterm" href="protocol-reference.html#filesystem-object-instruction">filesystem</a></dt></dl></div><div class="indexdiv"><h3>G</h3><dl><dt id="ientry-idm46420846423264">gateway domain, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt><dt id="ientry-idm46420846435728">gateway hostname, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt><dt id="ientry-idm46420846426256">gateway password, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt><dt id="ientry-idm46420846432384">gateway port, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt><dt id="ientry-idm46420846429360">gateway username, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt><dt id="ientry-idm46420842886304">get, <a class="indexterm" href="protocol-reference.html#get-object-instruction">get</a></dt><dt id="ientry-idm46420847718896">groups, <a class="indexterm" href="administration.html#user-group-management">User group management</a>, <a class="indexterm" href="administration.html#connection-management">Connections and connection groups</a></dt><dt id="ientry-idm46420848058144">guacadmin, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-default-user">Logging in</a></dt><dt id="ientry-idm46420849661696">Guacamole</dt><dd><dl><dt>definition, <a class="indexterm" href="preface.html#what-is-guac">What is Guacamole?</a></dt><dt>history, <a class="indexterm" href="preface.html">Introduction</a></dt></dl></dd><dt id="ientry-idm46420849615680">Guacamole protocol, <a class="indexterm" href="guacamole-architecture.html#guacamole-protocol-architecture">The Guacamole protocol </a>, <a class="indexterm" href="guacamole-protocol.html">The Guacamole protocol</a>, <a class="indexterm" href="protocol-reference.html">Guacamole protocol reference</a></dt><dt id="ientry-idm46420848951136">guacamole-client</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-client">guacamole-client</a></dt></dl></dd><dt id="ientry-idm46420847428496">guacamole-common, <a class="indexterm" href="guacamole-common.html">guacamole-common</a></dt><dt id="ientry-idm46420845022704">guacamole-common-js, <a class="indexterm" href="guacamole-common-js.html">guacamole-common-js</a></dt><dt id="ientry-idm46420844902320">guacamole-ext, <a class="indexterm" href="guacamole-ext.html">guacamole-ext</a></dt><dt id="ientry-idm46420849557072">guacamole-server</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46420848574208">guacamole.properties, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46420848952608">guacamole.war</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-client">guacamole-client</a></dt></dl></dd><dt id="ientry-idm46420847876752">guacamole_connection, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-connections">Connections and parameters</a></dt><dt id="ientry-idm46420847350912">guacamole_connection_group, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-connection-groups">Connection groups</a></dt><dt id="ientry-idm46420847894128">guacamole_connection_group_permission, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-connection-group-permissions">Connection group permissions</a></dt><dt id="ientry-idm46420848249248">guacamole_connection_history, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-connection-history">Usage history</a></dt><dt id="ientry-idm46420847875728">guacamole_connection_parameter, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-connections">Connections and parameters</a></dt><dt id="ientry-idm46420847923264">guacamole_connection_permission, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-connection-permissions">Connection permissions</a></dt><dt id="ientry-idm46420848169472">guacamole_entity, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-entities">Entities</a></dt><dt id="ientry-idm46420848888464">GUACAMOLE_HOME, <a class="indexterm" href="configuring-guacamole.html#guacamole-home">GUACAMOLE_HOME (/etc/guacamole)</a></dt><dt id="ientry-idm46420847600832">guacamole_sharing_profile, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-sharing-profiles">Sharing profiles and parameters</a></dt><dt id="ientry-idm46420847599792">guacamole_sharing_profile_parameter, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-sharing-profiles">Sharing profiles and parameters</a></dt><dt id="ientry-idm46420847908848">guacamole_sharing_profile_permission, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-sharing-profile-permissions">Sharing profile permissions</a></dt><dt id="ientry-idm46420847315120">guacamole_system_permission, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-system-permissions">lSystem permissions</a></dt><dt id="ientry-idm46420848154192">guacamole_user, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-users">Users</a></dt><dt id="ientry-idm46420847186848">guacamole_user_group, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-groups">User groups</a></dt><dt id="ientry-idm46420847170544">guacamole_user_group_member, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-groups">User groups</a></dt><dt id="ientry-idm46420847535344">guacamole_user_group_permission, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-group-permissions">User group permissions</a></dt><dt id="ientry-idm46420848325632">guacamole_user_history, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-login-history">Login history</a></dt><dt id="ientry-idm46420848519264">guacamole_user_password_history, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-password-history">Password history</a></dt><dt id="ientry-idm46420847550192">guacamole_user_permission, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-user-permissions">User permissions</a></dt><dt id="ientry-idm46420847371648">guacctl, <a class="indexterm" href="using-guacamole.html#guacctl">guacctl / guacget</a></dt><dt id="ientry-idm46420849706560">guacd, <a class="indexterm" href="guacamole-architecture.html#guacd">guacd</a></dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt><dt>errors, <a class="indexterm" href="troubleshooting.html#guacd-errors">guacd errors</a></dt><dt>logging, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt>startup script, <a class="indexterm" href="installing-guacamole.html#guacamole-server-build-process">The build process</a></dt></dl></dd><dt id="ientry-idm46420847124080">guacd-hostname, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46420847120256">guacd-port, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46420847116432">guacd-ssl, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46420845489680">guacd.conf, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46420847370784">guacget, <a class="indexterm" href="using-guacamole.html#guacctl">guacctl / guacget</a></dt></dl></div><div class="indexdiv"><h3>H</h3><dl><dt id="ientry-idm46420845155632">handshake</dt><dd><dl><dt>instructions, <a class="indexterm" href="guacamole-protocol.html#guacamole-protocol-handshake">Handshake phase</a></dt></dl></dd><dt id="ientry-idm46420849713184">history, <a class="indexterm" href="guacamole-architecture.html">Implementation and architecture</a>, <a class="indexterm" href="guacamole-architecture.html#realmint">RealMint</a>, <a class="indexterm" href="administration.html#connection-history">Connection history</a></dt><dt id="ientry-idm46420849422992">HTTP header authentication, <a class="indexterm" href="header-auth.html">HTTP header authentication</a></dt><dd><dl><dt>configuration, <a class="indexterm" href="header-auth.html#guac-header-config">Configuring Guacamole for HTTP header authentication</a></dt></dl></dd><dt id="ientry-idm46420846478800">Hyper-V, <a class="indexterm" href="configuring-guacamole.html#rdp-preconnection-pdu">Preconnection PDU (Hyper-V)</a></dt></dl></div><div class="indexdiv"><h3>I</h3><dl><dt id="ientry-idm46420843264784">identity, <a class="indexterm" href="protocol-reference.html#identity-instruction">identity</a></dt><dt id="ientry-idm46420842844368">image, <a class="indexterm" href="protocol-reference.html#image-handshake-instruction">image</a></dt><dt id="ientry-idm46420842960672">img, <a class="indexterm" href="protocol-reference.html#img-instruction">img</a></dt><dt id="ientry-idm46420849711392">implementation, <a class="indexterm" href="guacamole-architecture.html">Implementation and architecture</a></dt><dt id="ientry-idm46420847750064">input method editors, <a class="indexterm" href="using-guacamole.html#text-input">Typing without a physical keyboard</a></dt><dt id="ientry-idm46420849611936">installing, <a class="indexterm" href="installing-guacamole.html">Installing Guacamole natively</a></dt><dt id="ientry-idm46420843553072">instructions, <a class="indexterm" href="protocol-reference.html">Guacamole protocol reference</a></dt><dd><dl><dt>control, <a class="indexterm" href="protocol-reference.html#client-control-instructions">Client control instructions</a></dt><dt>drawing, <a class="indexterm" href="protocol-reference.html#drawing-instructions">Drawing instructions</a></dt><dt>events, <a class="indexterm" href="protocol-reference.html#client-events">Client events</a></dt></dl></dd><dt id="ientry-idm46420847819824">interacting, <a class="indexterm" href="using-guacamole.html">Using Guacamole</a></dt></dl></div><div class="indexdiv"><h3>K</h3><dl><dt id="ientry-idm46420842728352">key, <a class="indexterm" href="protocol-reference.html#key-instruction">key</a></dt><dt id="ientry-idm46420846663952">keyboard layout, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a></dt><dt id="ientry-idm46420845766288">Kubernetes, <a class="indexterm" href="configuring-guacamole.html#kubernetes">Kubernetes</a></dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#adding-kubernetes">Adding a Kubernetes connection</a></dt><dt>backspace, <a class="indexterm" href="configuring-guacamole.html#kubernetes-terminal-behavior">Controlling terminal behavior</a></dt><dt>color scheme, <a class="indexterm" href="configuring-guacamole.html#kubernetes-display-settings">Display settings</a></dt><dt>container, <a class="indexterm" href="configuring-guacamole.html#kubernetes-network-parameters">Network/Container parameters</a></dt><dt>font, <a class="indexterm" href="configuring-guacamole.html#kubernetes-display-settings">Display settings</a></dt><dt>graphical recording, <a class="indexterm" href="configuring-guacamole.html#kubernetes-recording">Graphical session recording</a></dt><dt>hostname, <a class="indexterm" href="configuring-guacamole.html#kubernetes-network-parameters">Network/Container parameters</a></dt><dt>namespace, <a class="indexterm" href="configuring-guacamole.html#kubernetes-network-parameters">Network/Container parameters</a></dt><dt>pod, <a class="indexterm" href="configuring-guacamole.html#kubernetes-network-parameters">Network/Container parameters</a></dt><dt>port, <a class="indexterm" href="configuring-guacamole.html#kubernetes-network-parameters">Network/Container parameters</a></dt><dt>read-only, <a class="indexterm" href="configuring-guacamole.html#kubernetes-display-settings">Display settings</a></dt><dt>scrollback, <a class="indexterm" href="configuring-guacamole.html#kubernetes-display-settings">Display settings</a></dt><dt>terminal type, <a class="indexterm" href="configuring-guacamole.html#kubernetes-terminal-behavior">Controlling terminal behavior</a></dt><dt>text recording, <a class="indexterm" href="configuring-guacamole.html#kubernetes-typescripts">Text session recording (typescripts)</a></dt><dt>typescripts, <a class="indexterm" href="configuring-guacamole.html#kubernetes-typescripts">Text session recording (typescripts)</a></dt></dl></dd><dt id="ientry-idm46420846764784">KVM, <a class="indexterm" href="configuring-guacamole.html#qemu">QEMU or KVM</a></dt></dl></div><div class="indexdiv"><h3>L</h3><dl><dt id="ientry-idm46420848526848">LDAP, <a class="indexterm" href="ldap-auth.html">LDAP authentication</a></dt><dd><dl><dt>configuration, <a class="indexterm" href="ldap-auth.html#guac-ldap-config">Configuring Guacamole for LDAP</a></dt></dl></dd><dt id="ientry-idm46420843258304">lfill, <a class="indexterm" href="protocol-reference.html#lfill-instruction">lfill</a></dt><dt id="ientry-idm46420849703680">libguac, <a class="indexterm" href="libguac.html">libguac</a></dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt><dt>relationship with guacd, <a class="indexterm" href="guacamole-architecture.html#guacd">guacd</a></dt></dl></dd><dt id="ientry-idm46420849558512">libguac-client-kubernetes</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46420849562928">libguac-client-rdp</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46420849561456">libguac-client-ssh</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46420849559984">libguac-client-telnet</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46420849564400">libguac-client-vnc</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46420843248000">line, <a class="indexterm" href="protocol-reference.html#line-instruction">line</a></dt><dt id="ientry-idm46420846419568">load balancing, <a class="indexterm" href="configuring-guacamole.html#rdp-connection-broker">Load balancing and RDP connection brokers</a>, <a class="indexterm" href="jdbc-auth.html">Database authentication</a></dt><dt id="ientry-idm46420846407312">loadbalanceinfo, <a class="indexterm" href="configuring-guacamole.html#rdp-connection-broker">Load balancing and RDP connection brokers</a></dt><dt id="ientry-idm46420842766736">log, <a class="indexterm" href="protocol-reference.html#log-instruction">log</a></dt><dt id="ientry-idm46420847102048">logging, <a class="indexterm" href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></dt><dd><dl><dt>debug, <a class="indexterm" href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></dt><dt>errors, <a class="indexterm" href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></dt><dt>guacd, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt>info, <a class="indexterm" href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></dt><dt>trace, <a class="indexterm" href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></dt><dt>warnings, <a class="indexterm" href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></dt></dl></dd><dt id="ientry-idm46420845456608">log_level, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46420843237632">lstroke, <a class="indexterm" href="protocol-reference.html#lstroke-instruction">lstroke</a></dt></dl></div><div class="indexdiv"><h3>M</h3><dl><dt id="ientry-idm46420847765920">mouse, <a class="indexterm" href="using-guacamole.html#touch-mouse">Mouse emulation</a>, <a class="indexterm" href="protocol-reference.html#server-mouse-instruction">mouse</a>, <a class="indexterm" href="protocol-reference.html#client-mouse-instruction">mouse</a></dt><dt id="ientry-idm46420843221344">move, <a class="indexterm" href="protocol-reference.html#move-instruction">move</a></dt><dt id="ientry-idm46420848123776">MySQL, <a class="indexterm" href="jdbc-auth.html">Database authentication</a></dt></dl></div><div class="indexdiv"><h3>N</h3><dl><dt id="ientry-idm46420842944464">nest, <a class="indexterm" href="protocol-reference.html#nest-stream-instruction">nest</a></dt><dt id="ientry-idm46420842794032">nop, <a class="indexterm" href="protocol-reference.html#client-nop-instruction">nop</a>, <a class="indexterm" href="protocol-reference.html#server-nop-instruction">nop</a></dt></dl></div><div class="indexdiv"><h3>O</h3><dl><dt id="ientry-idm46420848363456">OpenID Connect Authentication, <a class="indexterm" href="openid-auth.html">OpenID Connect Authentication</a></dt><dt id="ientry-idm46420848219712">OpenID Connect authentication</dt><dd><dl><dt>configuration, <a class="indexterm" href="openid-auth.html#guac-openid-config">Configuring Guacamole for single sign-on with OpenID Connect</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>P</h3><dl><dt id="ientry-idm46420847037968">parameters</dt><dd><dl><dt>guacd.conf, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt>Kubernetes, <a class="indexterm" href="configuring-guacamole.html#kubernetes-network-parameters">Network/Container parameters</a>, <a class="indexterm" href="configuring-guacamole.html#kubernetes-authentication">Authentication and SSL/TLS</a>, <a class="indexterm" href="configuring-guacamole.html#kubernetes-display-settings">Display settings</a>, <a class="indexterm" href="configuring-guacamole.html#kubernetes-terminal-behavior">Controlling terminal behavior</a>, <a class="indexterm" href="configuring-guacamole.html#kubernetes-typescripts">Text session recording (typescripts)</a>, <a class="indexterm" href="configuring-guacamole.html#kubernetes-recording">Graphical session recording</a></dt><dt>RDP, <a class="indexterm" href="configuring-guacamole.html#rdp-network-parameters">Network parameters</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-display-settings">Display settings</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-recording">Session recording</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-preconnection-pdu">Preconnection PDU (Hyper-V)</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-connection-broker">Load balancing and RDP connection brokers</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-sftp">RDP + SFTP</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-remoteapp">RemoteApp</a></dt><dt>SSH, <a class="indexterm" href="configuring-guacamole.html#ssh-network-parameters">Network parameters</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-authentication">Authentication</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-display-settings">Display settings</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-command">Running a command (instead of a shell)</a>, <a class="indexterm" href="configuring-guacamole.html#idm46420846160592">Internationalization/Locale settings</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-terminal-behavior">Controlling terminal behavior</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-typescripts">Text session recording (typescripts)</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-recording">Graphical session recording</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-sftp">SFTP</a></dt><dt>telnet, <a class="indexterm" href="configuring-guacamole.html#telnet-network-parameters">Network parameters</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-authentication">Authentication</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-display-settings">Display settings</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-terminal-behavior">Controlling terminal behavior</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-typescripts">Text session recording (typescripts)</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-recording">Graphical session recording</a></dt><dt>VNC, <a class="indexterm" href="configuring-guacamole.html#vnc-network-parameters">Network parameters</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-authentication">Authentication</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-display-settings">Display settings</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-recording">Session recording</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-sftp">File transfer (via SFTP)</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-repeater">VNC Repeater</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-reverse-connections">Reverse VNC connections</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-audio">Audio support (via PulseAudio)</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-clipboard-encoding">Clipboard encoding</a></dt></dl></dd><dt id="ientry-idm46420845463024">pid_file, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46420842929616">pipe, <a class="indexterm" href="protocol-reference.html#pipe-instruction">pipe</a></dt><dt id="ientry-idm46420843206944">pop, <a class="indexterm" href="protocol-reference.html#pop-instruction">pop</a></dt><dt id="ientry-idm46420848122880">PostgreSQL, <a class="indexterm" href="jdbc-auth.html">Database authentication</a></dt><dt id="ientry-idm46420846451472">preconnection BLOB, <a class="indexterm" href="configuring-guacamole.html#rdp-preconnection-pdu">Preconnection PDU (Hyper-V)</a></dt><dt id="ientry-idm46420846455056">preconnection ID, <a class="indexterm" href="configuring-guacamole.html#rdp-preconnection-pdu">Preconnection PDU (Hyper-V)</a></dt><dt id="ientry-idm46420846479552">preconnection PDU, <a class="indexterm" href="configuring-guacamole.html#rdp-preconnection-pdu">Preconnection PDU (Hyper-V)</a></dt><dt id="ientry-idm46420846514976">printing, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt id="ientry-idm46420849614784">protocol, <a class="indexterm" href="guacamole-architecture.html#guacamole-protocol-architecture">The Guacamole protocol </a></dt><dt id="ientry-idm46420843553840">protocol reference, <a class="indexterm" href="protocol-reference.html">Guacamole protocol reference</a></dt><dt id="ientry-idm46420844708528">protocols</dt><dd><dl><dt>implementing, <a class="indexterm" href="custom-protocols.html">Adding new protocols</a></dt></dl></dd><dt id="ientry-idm46420845290032">proxies, <a class="indexterm" href="troubleshooting.html#idm46420845291632">No graphics appear</a></dt><dt id="ientry-idm46420846875664">proxy</dt><dd><dl><dt>VNC, <a class="indexterm" href="configuring-guacamole.html#vnc-repeater">VNC Repeater</a></dt></dl></dd><dt id="ientry-idm46420843200384">push, <a class="indexterm" href="protocol-reference.html#push-instruction">push</a></dt><dt id="ientry-idm46420842873984">put, <a class="indexterm" href="protocol-reference.html#put-object-instruction">put</a></dt></dl></div><div class="indexdiv"><h3>Q</h3><dl><dt id="ientry-idm46420846765696">QEMU, <a class="indexterm" href="configuring-guacamole.html#qemu">QEMU or KVM</a></dt><dt id="ientry-idm46420847675520">quickconnect, <a class="indexterm" href="adhoc-connections.html">Ad-hoc Connections</a></dt></dl></div><div class="indexdiv"><h3>R</h3><dl><dt id="ientry-idm46420847467376">RADIUS Authentication, <a class="indexterm" href="radius-auth.html">RADIUS Authentication</a></dt><dt id="ientry-idm46420848489184">RADIUS authentication</dt><dd><dl><dt>configuration, <a class="indexterm" href="radius-auth.html#guac-radius-config">Configuring Guacamole for RADIUS authentication</a></dt></dl></dd><dt id="ientry-idm46420846760608">RDP, <a class="indexterm" href="configuring-guacamole.html#rdp">RDP</a></dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#adding-rdp">Adding an RDP connection</a></dt><dt>Aero, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>audio, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt>audio input, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt>bitmap caching, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>ClearType, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>client-name, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a></dt><dt>color depth, <a class="indexterm" href="configuring-guacamole.html#rdp-display-settings">Display settings</a></dt><dt>console, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a></dt><dt>console audio, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt>desktop composition, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>disabling authentication, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>display resolution, <a class="indexterm" href="configuring-guacamole.html#rdp-display-settings">Display settings</a></dt><dt>display size, <a class="indexterm" href="configuring-guacamole.html#rdp-display-settings">Display settings</a></dt><dt>domain, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>file transfer, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-sftp">RDP + SFTP</a></dt><dt>font smoothing, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>full window drag, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>glyph caching, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>graphical recording, <a class="indexterm" href="configuring-guacamole.html#rdp-recording">Session recording</a></dt><dt>hostname, <a class="indexterm" href="configuring-guacamole.html#rdp-network-parameters">Network parameters</a></dt><dt>ignoring certificates, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>initial program, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a></dt><dt>keyboard layout, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a></dt><dt>menu animations, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>NLA, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>offscreen bitmap caching, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>password, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>port, <a class="indexterm" href="configuring-guacamole.html#rdp-network-parameters">Network parameters</a></dt><dt>printing, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt>security, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>theming, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>timezone, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a></dt><dt>TLS, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>username, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>wallpaper, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt></dl></dd><dt id="ientry-idm46420849568432">RDP support</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46420842747248">ready, <a class="indexterm" href="protocol-reference.html#ready-instruction">ready</a></dt><dt id="ientry-idm46420849657312">RealMint, <a class="indexterm" href="preface.html#what-is-guac">What is Guacamole?</a></dt><dt id="ientry-idm46420846779392">RealVNC, <a class="indexterm" href="configuring-guacamole.html#realvnc">RealVNC or TigerVNC</a></dt><dt id="ientry-idm46420843193840">rect, <a class="indexterm" href="protocol-reference.html#rect-instruction">rect</a></dt><dt id="ientry-idm46420846446288">remote desktop gateway, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt><dt id="ientry-idm46420846307264">RemoteApp, <a class="indexterm" href="configuring-guacamole.html#rdp-remoteapp">RemoteApp</a></dt><dt id="ientry-idm46420846876928">repeater</dt><dd><dl><dt>VNC, <a class="indexterm" href="configuring-guacamole.html#vnc-repeater">VNC Repeater</a></dt></dl></dd><dt id="ientry-idm46420843177600">reset, <a class="indexterm" href="protocol-reference.html#reset-instruction">reset</a></dt></dl></div><div class="indexdiv"><h3>S</h3><dl><dt id="ientry-idm46420848052880">schema, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema">Modifying data manually</a>, <a class="indexterm" href="ldap-auth.html#ldap-auth-schema">The LDAP schema</a></dt><dt id="ientry-idm46420842839072">select, <a class="indexterm" href="protocol-reference.html#select-instruction">select</a></dt><dt id="ientry-idm46420843548896">server instructions</dt><dd><dl><dt>control, <a class="indexterm" href="protocol-reference.html#server-control-instructions">Server control instructions</a></dt><dt>drawing, <a class="indexterm" href="protocol-reference.html#drawing-instructions">Drawing instructions</a></dt></dl></dd><dt id="ientry-idm46420845442400">server_certificate, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46420845438112">server_key, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46420845362960">session affinity, <a class="indexterm" href="administration.html#connection-group-management">Connection organization and balancing</a></dt><dt id="ientry-idm46420847271824">session management, <a class="indexterm" href="administration.html#session-management">Managing sessions</a></dt><dt id="ientry-idm46420843171168">set, <a class="indexterm" href="protocol-reference.html#set-instruction">set</a></dt><dt id="ientry-idm46420846915936">SFTP, <a class="indexterm" href="configuring-guacamole.html#vnc-sftp">File transfer (via SFTP)</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-sftp">RDP + SFTP</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-sftp">SFTP</a></dt><dt id="ientry-idm46420843160928">shade, <a class="indexterm" href="protocol-reference.html#shade-instruction">shade</a></dt><dt id="ientry-idm46420843152560">size, <a class="indexterm" href="protocol-reference.html#size-instruction">size</a>, <a class="indexterm" href="protocol-reference.html#size-handshake-instruction">size</a>, <a class="indexterm" href="protocol-reference.html#size-event-instruction">size</a></dt><dt id="ientry-idm46420847110944">skip-if-unavailable, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46420846287056">SSH, <a class="indexterm" href="configuring-guacamole.html#ssh">SSH</a></dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#adding-ssh">Adding an SSH connection</a></dt><dt>backspace, <a class="indexterm" href="configuring-guacamole.html#ssh-terminal-behavior">Controlling terminal behavior</a></dt><dt>color scheme, <a class="indexterm" href="configuring-guacamole.html#ssh-display-settings">Display settings</a></dt><dt>command, <a class="indexterm" href="configuring-guacamole.html#ssh-command">Running a command (instead of a shell)</a></dt><dt>file transfer, <a class="indexterm" href="configuring-guacamole.html#ssh-sftp">SFTP</a></dt><dt>font, <a class="indexterm" href="configuring-guacamole.html#ssh-display-settings">Display settings</a></dt><dt>graphical recording, <a class="indexterm" href="configuring-guacamole.html#ssh-recording">Graphical session recording</a></dt><dt>guacctl, <a class="indexterm" href="using-guacamole.html#guacctl">guacctl / guacget</a></dt><dt>guacget, <a class="indexterm" href="using-guacamole.html#guacctl">guacctl / guacget</a></dt><dt>host-key, <a class="indexterm" href="configuring-guacamole.html#ssh-network-parameters">Network parameters</a></dt><dt>hostname, <a class="indexterm" href="configuring-guacamole.html#ssh-network-parameters">Network parameters</a></dt><dt>locale, <a class="indexterm" href="configuring-guacamole.html#idm46420846160592">Internationalization/Locale settings</a></dt><dt>passphrase, <a class="indexterm" href="configuring-guacamole.html#ssh-authentication">Authentication</a></dt><dt>password, <a class="indexterm" href="configuring-guacamole.html#ssh-authentication">Authentication</a></dt><dt>port, <a class="indexterm" href="configuring-guacamole.html#ssh-network-parameters">Network parameters</a></dt><dt>public key authentication, <a class="indexterm" href="configuring-guacamole.html#ssh-authentication">Authentication</a></dt><dt>server-alive-interval, <a class="indexterm" href="configuring-guacamole.html#ssh-network-parameters">Network parameters</a></dt><dt>terminal type, <a class="indexterm" href="configuring-guacamole.html#ssh-terminal-behavior">Controlling terminal behavior</a></dt><dt>text recording, <a class="indexterm" href="configuring-guacamole.html#ssh-typescripts">Text session recording (typescripts)</a></dt><dt>timezone, <a class="indexterm" href="configuring-guacamole.html#idm46420846160592">Internationalization/Locale settings</a></dt><dt>typescripts, <a class="indexterm" href="configuring-guacamole.html#ssh-typescripts">Text session recording (typescripts)</a></dt><dt>username, <a class="indexterm" href="configuring-guacamole.html#ssh-authentication">Authentication</a></dt></dl></dd><dt id="ientry-idm46420849567088">SSH support</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46420843142288">start, <a class="indexterm" href="protocol-reference.html#start-instruction">start</a></dt><dt id="ientry-idm46420842789728">sync, <a class="indexterm" href="protocol-reference.html#client-sync-instruction">sync</a>, <a class="indexterm" href="protocol-reference.html#server-sync-instruction">sync</a></dt><dt id="ientry-idm46420845338224">syslog, <a class="indexterm" href="troubleshooting.html#syslog">syslog</a></dt></dl></div><div class="indexdiv"><h3>T</h3><dl><dt id="ientry-idm46420845996704">telnet, <a class="indexterm" href="configuring-guacamole.html#telnet">Telnet</a></dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#adding-telnet">Adding a telnet connection</a></dt><dt>backspace, <a class="indexterm" href="configuring-guacamole.html#telnet-terminal-behavior">Controlling terminal behavior</a></dt><dt>color scheme, <a class="indexterm" href="configuring-guacamole.html#telnet-display-settings">Display settings</a></dt><dt>font, <a class="indexterm" href="configuring-guacamole.html#telnet-display-settings">Display settings</a></dt><dt>graphical recording, <a class="indexterm" href="configuring-guacamole.html#telnet-recording">Graphical session recording</a></dt><dt>hostname, <a class="indexterm" href="configuring-guacamole.html#telnet-network-parameters">Network parameters</a></dt><dt>password, <a class="indexterm" href="configuring-guacamole.html#telnet-authentication">Authentication</a></dt><dt>port, <a class="indexterm" href="configuring-guacamole.html#telnet-network-parameters">Network parameters</a></dt><dt>terminal type, <a class="indexterm" href="configuring-guacamole.html#telnet-terminal-behavior">Controlling terminal behavior</a></dt><dt>text recording, <a class="indexterm" href="configuring-guacamole.html#telnet-typescripts">Text session recording (typescripts)</a></dt><dt>typescripts, <a class="indexterm" href="configuring-guacamole.html#telnet-typescripts">Text session recording (typescripts)</a></dt><dt>username, <a class="indexterm" href="configuring-guacamole.html#telnet-authentication">Authentication</a></dt></dl></dd><dt id="ientry-idm46420849565744">telnet support</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46420846778480">TigerVNC, <a class="indexterm" href="configuring-guacamole.html#realvnc">RealVNC or TigerVNC</a></dt><dt id="ientry-idm46420846775440">TightVNC, <a class="indexterm" href="configuring-guacamole.html#tightvnc">TightVNC</a></dt><dt id="ientry-idm46420842819888">timezone, <a class="indexterm" href="protocol-reference.html#timezone-handshake-instruction">timezone</a></dt><dt id="ientry-idm46420845540336">tokens, <a class="indexterm" href="configuring-guacamole.html#parameter-tokens">Parameter tokens</a></dt><dd><dl><dt>cas, <a class="indexterm" href="configuring-guacamole.html#cas-tokens">CAS Extension Tokens</a></dt><dt>extension-specific, <a class="indexterm" href="configuring-guacamole.html#extension-tokens">Extension-specific tokens</a></dt><dt>ldap, <a class="indexterm" href="configuring-guacamole.html#ldap-tokens">LDAP Extension Tokens</a></dt></dl></dd><dt id="ientry-idm46420857820416">TOTP, <a class="indexterm" href="totp-auth.html">TOTP two-factor authentication</a></dt><dd><dl><dt>configuration, <a class="indexterm" href="totp-auth.html#guac-totp-config">Configuring Guacamole for TOTP</a></dt></dl></dd><dt id="ientry-idm46420843131856">transfer, <a class="indexterm" href="protocol-reference.html#transfer-instruction">transfer</a></dt><dt id="ientry-idm46420843105472">transform, <a class="indexterm" href="protocol-reference.html#transform-instruction">transform</a></dt><dt id="ientry-idm46420845296272">troubleshooting, <a class="indexterm" href="troubleshooting.html">Troubleshooting</a></dt><dt id="ientry-idm46420846445536">TS gateway, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt></dl></div><div class="indexdiv"><h3>U</h3><dl><dt id="ientry-idm46420842861520">undefine, <a class="indexterm" href="protocol-reference.html#undefine-object-instruction">undefine</a></dt><dt id="ientry-idm46420845284864">Unicode, <a class="indexterm" href="troubleshooting.html#idm46420845285632">Connections involving Unicode don't work</a></dt><dt id="ientry-idm46420845283072">URIEncoding, <a class="indexterm" href="troubleshooting.html#idm46420845285632">Connections involving Unicode don't work</a></dt><dt id="ientry-idm46420847720688">user group management, <a class="indexterm" href="administration.html#user-group-management">User group management</a></dt><dt id="ientry-idm46420847719792">user groups, <a class="indexterm" href="administration.html#user-group-management">User group management</a></dt><dt id="ientry-idm46420847696272">user management, <a class="indexterm" href="administration.html#user-management">User management</a></dt><dt id="ientry-idm46420847069728">user-mapping.xml, <a class="indexterm" href="configuring-guacamole.html#user-mapping">user-mapping.xml</a></dt><dt id="ientry-idm46420847061936">users</dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#user-setup">Adding users</a></dt></dl></dd><dt id="ientry-idm46420845283968">UTF-8, <a class="indexterm" href="troubleshooting.html#idm46420845285632">Connections involving Unicode don't work</a></dt></dl></div><div class="indexdiv"><h3>V</h3><dl><dt id="ientry-idm46420842919264">video, <a class="indexterm" href="protocol-reference.html#video-stream-instruction">video</a>, <a class="indexterm" href="protocol-reference.html#video-handshake-instruction">video</a></dt><dt id="ientry-idm46420846768944">vino, <a class="indexterm" href="configuring-guacamole.html#vino">vino</a></dt><dt id="ientry-idm46420847043264">VNC, <a class="indexterm" href="configuring-guacamole.html#vnc">VNC</a></dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#adding-vnc">Adding a VNC connection</a></dt><dt>clipboard encoding, <a class="indexterm" href="configuring-guacamole.html#vnc-clipboard-encoding">Clipboard encoding</a></dt><dt>color depth, <a class="indexterm" href="configuring-guacamole.html#vnc-display-settings">Display settings</a></dt><dt>encodings, <a class="indexterm" href="configuring-guacamole.html#vnc-display-settings">Display settings</a></dt><dt>file transfer, <a class="indexterm" href="configuring-guacamole.html#vnc-sftp">File transfer (via SFTP)</a></dt><dt>graphical recording, <a class="indexterm" href="configuring-guacamole.html#vnc-recording">Session recording</a></dt><dt>hostname, <a class="indexterm" href="configuring-guacamole.html#vnc-network-parameters">Network parameters</a></dt><dt>listen timeout, <a class="indexterm" href="configuring-guacamole.html#vnc-reverse-connections">Reverse VNC connections</a></dt><dt>mouse pointer, <a class="indexterm" href="configuring-guacamole.html#vnc-display-settings">Display settings</a></dt><dt>password, <a class="indexterm" href="configuring-guacamole.html#vnc-authentication">Authentication</a></dt><dt>port, <a class="indexterm" href="configuring-guacamole.html#vnc-network-parameters">Network parameters</a></dt><dt>PulseAudio, <a class="indexterm" href="configuring-guacamole.html#vnc-audio">Audio support (via PulseAudio)</a></dt><dt>read-only, <a class="indexterm" href="configuring-guacamole.html#vnc-display-settings">Display settings</a></dt><dt>repeater, <a class="indexterm" href="configuring-guacamole.html#vnc-repeater">VNC Repeater</a></dt><dt>retrying connections, <a class="indexterm" href="configuring-guacamole.html#vnc-network-parameters">Network parameters</a></dt><dt>reverse connection, <a class="indexterm" href="configuring-guacamole.html#vnc-reverse-connections">Reverse VNC connections</a></dt><dt>sound, <a class="indexterm" href="configuring-guacamole.html#vnc-audio">Audio support (via PulseAudio)</a></dt></dl></dd><dt id="ientry-idm46420846782064">VNC servers, <a class="indexterm" href="configuring-guacamole.html#vnc-servers">Which VNC server?</a></dt><dt id="ientry-idm46420849569776">VNC support</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>W</h3><dl><dt id="ientry-idm46420849700240">web application, <a class="indexterm" href="guacamole-architecture.html#web-application">The web application</a></dt><dt id="ientry-idm46420848896944">WebSocket, <a class="indexterm" href="installing-guacamole.html#idm46420848897680">What about WebSocket?</a></dt></dl></div><div class="indexdiv"><h3>X</h3><dl><dt id="ientry-idm46420846772048">x11vnc, <a class="indexterm" href="configuring-guacamole.html#x11vnc">x11vnc</a></dt></dl></div><div class="indexdiv"><h3>Z</h3><dl><dt id="ientry-idm46420847771680">zoom, <a class="indexterm" href="using-guacamole.html#scaling-display">Scaling the display</a></dt></dl></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="protocol-reference.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendices.html">Up</a></td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top">Appendix B. Guacamole protocol reference </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/cas-auth.html b/doc/1.1.0/gug/cas-auth.html
new file mode 100644
index 0000000..0823c4d
--- /dev/null
+++ b/doc/1.1.0/gug/cas-auth.html
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 11. CAS Authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="header-auth.html" title="Chapter 10. HTTP header authentication" /><link rel="next" href="openid-auth.html" title="Chapter 12. OpenID Connect Authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 11. CAS Authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="header-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="openid-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="cas-auth"></a>Chapter 11. CAS Authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="cas-auth.html#cas-downloading">Downloading the CAS authentication extension</a></span></dt><dt><span class="section"><a href="cas-auth.html#installing-cas-auth">Installing CAS authentication</a></span></dt><dd><dl><dt><span class="section"><a href="cas-auth.html#guac-cas-config">Configuring Guacamole for CAS Authentication</a></span></dt><dt><span class="section"><a href="cas-auth.html#completing-cas-install">Completing the installation</a></span></dt><dt><span class="section"><a href="cas-auth.html#cas-clearpass">Using CAS ClearPass</a></span></dt></dl></dd></dl></div><a id="idm46420847951472" class="indexterm"></a><p>CAS is an open-source Single Sign On (SSO) provider that allows multiple applications
+        and services to authenticate against it and brokers those authentication requests to a
+        back-end authentication provider.  This module allows Guacamole to redirect to CAS for
+        authentication and user services.  This module must be layered on top of other authentication
+        extensions that provide connection information, as it only provides user authentication.
+        </p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="cas-downloading"></a>Downloading the CAS authentication extension</h2></div></div></div><p>The CAS authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The CAS authentication extension is packaged as a <code class="filename">.tar.gz</code>
+            file containing only the extension itself,
+                <code class="filename">guacamole-auth-cas-1.1.0.jar</code>, which must
+            ultimately be placed in <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-cas-auth"></a>Installing CAS authentication</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory.
+                <span class="emphasis"><em>If you are unsure where <code class="varname">GUACAMOLE_HOME</code> is located on
+                your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before
+                proceeding.</em></span></p><p>To install the CAS authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-cas-1.1.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use CAS authentication, as described
+                    below.</p></li></ol></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-cas-config"></a>Configuring Guacamole for CAS Authentication</h3></div></div></div><a id="idm46420849431152" class="indexterm"></a><a id="idm46420847159328" class="indexterm"></a><p>The CAS authentication extension provides two configuration properties, both
+                of which are required.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">cas-authorization-endpoint</span></span></dt><dd><p>The URL of the CAS authentication server.  This should be the full
+                            path to the base of the CAS installation.</p></dd><dt><span class="term"><span class="property">cas-redirect-uri</span></span></dt><dd><p>The URI to redirect back to upon successful authentication.  Normally
+                            this will be the full URL of your Guacamole installation.</p></dd><dt><span class="term"><span class="property">cas-clearpass-key</span></span></dt><dd><p>If using CAS ClearPass to pass the SSO password to Guacamole, this
+                            parameter specifies the private key file to use to decrypt the
+                            password.  See the section on ClearPass below.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="completing-cas-install"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before CAS authentication can be used. <span class="emphasis"><em>Doing this will
+                    disconnect all active users, so be sure that it is safe to do so prior to
+                    attempting installation.</em></span> When ready, restart your servlet container
+                and give the new authentication a try.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="cas-clearpass"></a>Using CAS ClearPass</h3></div></div></div><p>CAS has a function called ClearPass that can be used to cache the password
+                used for SSO authentication and make that available to services at a later
+                time.  Configuring the CAS server for ClearPass is beyond the scope of this
+                article - more information can be found on the Apereo CAS wiki at the
+                following URL: <a class="link" href="https://apereo.github.io/cas" target="_top">
+                https://apereo.github.io/cas</a>.</p><p>Once you have CAS configured for credential caching, you need to configure
+                the service with a keypair for passing the credential securely.  The public 
+                key gets installed on the CAS server, while the private key gets configured
+                with the <span class="property">cas-clearpass-key</span> property.  The private key
+                file needs to be in RSA PKCS8 format.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="header-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="openid-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 10. HTTP header authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 12. OpenID Connect Authentication</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/configuring-guacamole.html b/doc/1.1.0/gug/configuring-guacamole.html
new file mode 100644
index 0000000..94ecaba
--- /dev/null
+++ b/doc/1.1.0/gug/configuring-guacamole.html
@@ -0,0 +1,2479 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 5. Configuring Guacamole</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="proxying-guacamole.html" title="Chapter 4. Proxying Guacamole" /><link rel="next" href="jdbc-auth.html" title="Chapter 6. Database authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 5. Configuring Guacamole</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="proxying-guacamole.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="jdbc-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="configuring-guacamole"></a>Chapter 5. Configuring Guacamole</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="configuring-guacamole.html#guacamole-home"><code class="varname">GUACAMOLE_HOME</code> (<code class="filename">/etc/guacamole</code>)</a></span></dt><dd><dl><dt><span class="section"><a href="configuring-guacamole.html#overriding-guacamole-home">Overriding <code class="varname">GUACAMOLE_HOME</code></a></span></dt></dl></dd><dt><span class="section"><a href="configuring-guacamole.html#initial-setup"><code class="filename">guacamole.properties</code></a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#basic-auth">Using the default authentication</a></span></dt><dd><dl><dt><span class="section"><a href="configuring-guacamole.html#user-mapping"><code class="filename">user-mapping.xml</code></a></span></dt></dl></dd><dt><span class="section"><a href="configuring-guacamole.html#connection-configuration">Configuring connections</a></span></dt><dd><dl><dt><span class="section"><a href="configuring-guacamole.html#vnc">VNC</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#rdp">RDP</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#ssh">SSH</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#telnet">Telnet</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#kubernetes">Kubernetes</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#parameter-tokens">Parameter tokens</a></span></dt></dl></dd><dt><span class="section"><a href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></span></dt></dl></div><p>After installing Guacamole, you need to configure users and connections before Guacamole
+        will work. This chapter covers general configuration of Guacamole and the use of its default
+        authentication method.</p><p>Guacamole's default authentication method reads all users and connections from a single
+        file called <code class="filename">user-mapping.xml</code>. This authentication method is intended to
+        be:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Sufficient for small deployments of Guacamole.</p></li><li class="listitem"><p>A relatively-easy means of verifying that Guacamole has been properly set
+                up.</p></li></ol></div><p>Other, more complex authentication methods which use backend databases, LDAP, etc. are
+        discussed in a separate, dedicated chapters.</p><p>Regardless of the authentication method you use, Guacamole's configuration always consists
+        of two main pieces: a directory referred to as <code class="varname">GUACAMOLE_HOME</code>, which is
+        the primary search location for configuration files, and
+            <code class="filename">guacamole.properties</code>, the main configuration file used by Guacamole
+        and its extensions.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-home"></a><code class="varname">GUACAMOLE_HOME</code> (<code class="filename">/etc/guacamole</code>)</h2></div></div></div><a id="idm46420848888464" class="indexterm"></a><p><code class="varname">GUACAMOLE_HOME</code> is the name given to Guacamole's configuration
+            directory, which is located at <code class="filename">/etc/guacamole</code> by default. All
+            configuration files, extensions, etc. reside within this directory. The structure of
+                <code class="varname">GUACAMOLE_HOME</code> is rigorously defined, and consists of the
+            following optional files:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="filename">guacamole.properties</code></span></dt><dd><p>The main Guacamole configuration file. Properties within this file dictate
+                        how Guacamole will connect to <span class="package">guacd</span>, and may configure
+                        the behavior of installed authentication extensions.</p></dd><dt><span class="term"><code class="filename">logback.xml</code></span></dt><dd><p>Guacamole uses a logging system called Logback for all messages. By
+                        default, Guacamole will log to the console only, but you can change this by
+                        providing your own Logback configuration file.</p></dd><dt><span class="term"><code class="filename">extensions/</code></span></dt><dd><p>The install location for all Guacamole extensions. Guacamole will
+                        automatically load all <code class="filename">.jar</code> files within this directory
+                        on startup.</p></dd><dt><span class="term"><code class="filename">lib/</code></span></dt><dd><p>The search directory for libraries required by any Guacamole extensions.
+                        Guacamole will make the <code class="filename">.jar</code> files within this
+                        directory available to all extensions. If your extensions require additional
+                        libraries, such as database drivers, this is the proper place to put
+                        them.</p></dd></dl></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="overriding-guacamole-home"></a>Overriding <code class="varname">GUACAMOLE_HOME</code></h3></div></div></div><p>If you cannot or do not wish to use <code class="filename">/etc/guacamole</code> for
+                    <code class="varname">GUACAMOLE_HOME</code>, the location can be overridden through any of
+                the following methods:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Creating a directory named <code class="filename">.guacamole</code>, within the
+                        home directory of <span class="emphasis"><em>the user running the servlet
+                            container</em></span>. This directory will automatically be used for
+                            <code class="varname">GUACAMOLE_HOME</code> if it exists.</p></li><li class="listitem"><p>Specifying the full path to an alternative directory with the environment
+                        variable <code class="varname">GUACAMOLE_HOME</code>. <span class="emphasis"><em>Be sure to consult the
+                            documentation for your servlet container to determine how to properly
+                            set environment variables.</em></span></p></li><li class="listitem"><p>Specifying the full path to an alternative directory with the system
+                        property <span class="property">guacamole.home</span>.</p></li></ol></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="initial-setup"></a><code class="filename">guacamole.properties</code></h2></div></div></div><a id="idm46420848574208" class="indexterm"></a><a id="idm46420848573040" class="indexterm"></a><p>The Guacamole web application uses one main configuration file called
+                <code class="filename">guacamole.properties</code>. This file is the common location for all
+            configuration properties read by Guacamole or any extension of Guacamole, including
+            authentication providers.</p><p>In previous releases, this file had to be in the classpath of your servlet container.
+            Now, the location of <code class="filename">guacamole.properties</code> can be explicitly defined
+            with environment variables or system properties, and the classpath is only used as a
+            last resort. When searching for <code class="filename">guacamole.properties</code>, Guacamole
+            will check, in order:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Within <code class="varname">GUACAMOLE_HOME</code>, as defined above.</p></li><li class="listitem"><p>The classpath of the servlet container.</p></li></ol></div><p>The <code class="filename">guacamole.properties</code> file is optional and is used to
+            configure Guacamole in situations where the defaults are insufficient, or to provide
+            additional configuration information for extensions. There are several standard
+            properties that are always available for use:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a id="idm46420848564688" class="indexterm"></a><em class="parameter"><code>api-session-timeout</code></em></span></dt><dd><p>The amount of time, in minutes, to allow Guacamole sessions
+                        (authentication tokens) to remain valid despite inactivity. If omitted,
+                        Guacamole sessions will expire after 60 minutes of inactivity.</p></dd><dt><span class="term"><a id="idm46420848561648" class="indexterm"></a><em class="parameter"><code>available-languages</code></em></span></dt><dd><p>A comma-separated whitelist of language keys to allow as display language
+                        choices within the Guacamole interface. For example, to restrict Guacamole
+                        to only English and German, you would specify:</p><div class="informalexample"><pre class="programlisting">available-languages: en, de</pre></div><p>As English is the fallback language, used whenever a translation key is
+                        missing from the chosen language, English should only be omitted from this
+                        list if you are absolutely positive that no strings are missing.</p><p>The corresponding JSON of any built-in languages not listed here will
+                        still be available over HTTP, but the Guacamole interface will not use them,
+                        nor will they be used automatically based on local browser language. If
+                        omitted, all defined languages will be available.</p></dd><dt><span class="term"><a id="idm46420847131312" class="indexterm"></a><em class="parameter"><code>enable-environment-properties</code></em></span></dt><dd><p>If set to "true", Guacamole will first evaluate its environment to obtain
+                        the value for any given configuration property, before using a value specified
+                        in <code class="filename">guacamole.properties</code> or falling back to a default
+                        value. By enabling this option, you can easily override any other configuration
+                        property using an environment variable.</p><div class="informalexample"><pre class="programlisting">enable-environment-properties: true</pre></div><p>When searching for a configuration property in the environment, the name of
+                        the property is first transformed by converting all lower case characters to
+                        their upper case equivalents, and by replacing all hyphen characters (<code class="code">-</code>) with
+                        underscore characters (<code class="code">_</code>). For example, the 
+                        <em class="parameter"><code>guacd-hostname</code></em> property would be transformed to 
+                        <em class="parameter"><code>GUACD_HOSTNAME</code></em> when searching the environment.
+                    </p></dd><dt><span class="term"><a id="idm46420847124080" class="indexterm"></a><em class="parameter"><code>guacd-hostname</code></em></span></dt><dd><p>The host the Guacamole proxy daemon (<span class="package">guacd</span>) is
+                        listening on. If omitted, Guacamole will assume <span class="package">guacd</span> is
+                        listening on localhost.</p></dd><dt><span class="term"><a id="idm46420847120256" class="indexterm"></a><em class="parameter"><code>guacd-port</code></em></span></dt><dd><p>The port the Guacamole proxy daemon (<span class="package">guacd</span>) is
+                        listening on. If omitted, Guacamole will assume <span class="package">guacd</span> is
+                        listening on port 4822.</p></dd><dt><span class="term"><a id="idm46420847116432" class="indexterm"></a><em class="parameter"><code>guacd-ssl</code></em></span></dt><dd><p>If set to "true", Guacamole will require SSL/TLS encryption between the
+                        web application and <span class="package">guacd</span>. By default, communication
+                        between the web application and <span class="package">guacd</span> will be
+                        unencrypted.</p><p>Note that if you enable this option, you must also configure
+                            <span class="package">guacd</span> to use SSL via command line options. These
+                        options are documented in the manpage of <span class="package">guacd</span>. You will
+                        need an SSL certificate and private key.</p></dd><dt><span class="term"><a id="idm46420847110944" class="indexterm"></a><em class="parameter"><code>skip-if-unavailable</code></em></span></dt><dd><p>A comma-separated list of the identifiers of authentication providers that
+                        should be allowed to fail internally without aborting the authentication
+                        process. For example, to request that Guacamole ignore failures due to the
+                        LDAP directory or MySQL server being unexpectedly down, allowing other
+                        authentication providers to continue functioning:</p><div class="informalexample"><pre class="programlisting">skip-if-unavailable: mysql, ldap</pre></div><p>By default, Guacamole takes a conservative approach to internal failures,
+                        aborting the authentication process if an internal error occurs within any
+                        authentication provider. Depending on the nature of the error, this may mean
+                        that no users can log in until the cause of the failure is dealt with. The
+                            <em class="parameter"><code>skip-if-unavailable</code></em> property may be used to
+                        explicitly inform Guacamole that one or more underlying systems are expected
+                        to occasionally experience failures, and that other functioning systems
+                        should be relied upon if they do fail.</p></dd></dl></div><div class="example"><a id="idm46420847105936"></a><p class="title"><strong>Example 5.1. Example <code class="filename">guacamole.properties</code></strong></p><div class="example-contents"><a id="guacamole.properties"></a><pre xml:lang="en" class="programlisting" lang="en"># Hostname and port of guacamole proxy
+guacd-hostname: localhost
+guacd-port:     4822</pre></div></div><br class="example-break" /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="webapp-logging"></a>Logging within the web application</h2></div></div></div><a id="idm46420847102048" class="indexterm"></a><p>By default, Guacamole logs all messages to the console. Servlet containers like Tomcat
+            will automatically redirect these messages to a log file,
+                <code class="filename">catalina.out</code> in the case of Tomcat, which you can read through
+            while Guacamole runs. Messages are logged at four different log levels, depending on
+            message importance and severity:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a id="idm46420847099216" class="indexterm"></a><code class="constant">error</code></span></dt><dd><p>Errors are fatal conditions. An operation, described in the log message,
+                        was attempted but could not proceed, and the failure of this operation is a
+                        serious problem that needs to be addressed.</p></dd><dt><span class="term"><a id="idm46420847095856" class="indexterm"></a><code class="constant">warn</code></span></dt><dd><p>Warnings are generally non-fatal conditions. The operation continued, but
+                        encountered noteworthy problems.</p></dd><dt><span class="term"><a id="idm46420847092608" class="indexterm"></a><code class="constant">info</code></span></dt><dd><p>"Info" messages are purely informational. They may be useful or
+                        interesting to administrators, but are not generally critical to proper
+                        operation of a Guacamole server.</p></dd><dt><span class="term"><a id="idm46420847089264" class="indexterm"></a><code class="constant">debug</code></span></dt><dd><p>Debug messages are highly detailed and oriented toward development. Most
+                        debug messages will contain stack traces and internal information that is
+                        useful when investigating problems within code. It is expected that debug
+                        messages, though verbose, will not affect performance.</p></dd><dt><span class="term"><a id="idm46420847085792" class="indexterm"></a><code class="constant">trace</code></span></dt><dd><p>Trace messages are similar to debug messages in intent and verbosity, but
+                        are so low-level that they may affect performance due to their frequency.
+                        Trace-level logging is rarely necessary, and is mainly useful in providing
+                        highly detailed context around issues being investigated.</p></dd></dl></div><p>Guacamole logs messages using a logging framework called <a class="link" href="http://logback.qos.ch/" target="_top">Logback</a> and, by default, will only log messages at the
+                "<code class="constant">info</code>" level or higher. If you wish to change the log level, or
+            configure how or where Guacamole logs messages, you can do so by providing your own
+                <code class="filename">logback.xml</code> file within <code class="varname">GUACAMOLE_HOME</code>. For
+            example, to log all messages to the console, even "<code class="constant">debug</code>" messages,
+            you might use the following <code class="filename">logback.xml</code>:</p><div class="informalexample"><pre class="programlisting">&lt;configuration&gt;
+
+    &lt;!-- Appender for debugging --&gt;
+    &lt;appender name="GUAC-DEBUG" class="ch.qos.logback.core.ConsoleAppender"&gt;
+        &lt;encoder&gt;
+            &lt;pattern&gt;%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n&lt;/pattern&gt;
+        &lt;/encoder&gt;
+    &lt;/appender&gt;
+
+    &lt;!-- Log at DEBUG level --&gt;
+    &lt;root level="debug"&gt;
+        &lt;appender-ref ref="GUAC-DEBUG"/&gt;
+    &lt;/root&gt;
+
+&lt;/configuration&gt;</pre></div><p>Guacamole and the above example configure only one appender which logs to the console,
+            but Logback is extremely flexible and allows any number of appenders which can each log
+            to separate files, the console, etc. based on a number of criteria, including the log
+            level and the source of the message.</p><p>More thorough <a class="link" href="http://logback.qos.ch/manual/configuration.html" target="_top">documentation on
+                configuring Logback</a> is provided on the Logback project's web site.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="basic-auth"></a>Using the default authentication</h2></div></div></div><a id="idm46420847073952" class="indexterm"></a><p>Guacamole's default authentication module is simple and consists of a mapping of
+            usernames to configurations. This authentication module comes with Guacamole and simply
+            reads usernames and passwords from an XML file. It is always enabled, but will only read
+            from the XML file if it exists, and is always last in priority relative to any other
+            authentication extensions.</p><p>There are other authentication modules available. The Guacamole project provides
+            database-backed authentication modules with the ability to manage connections and users
+            from the web interface, and other authentication modules can be created using the
+            extension API provided along with the Guacamole web application,
+                <span class="package">guacamole-ext</span>.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="user-mapping"></a><code class="filename">user-mapping.xml</code></h3></div></div></div><a id="idm46420847069728" class="indexterm"></a><p>The default authentication provider used by Guacamole reads all username,
+                password, and configuration information from a file called the "user mapping"
+                located at <code class="filename">GUACAMOLE_HOME/user-mapping.xml</code>. An example of a
+                user mapping file is included with Guacamole, and looks something like this:</p><pre class="programlisting">&lt;user-mapping&gt;
+
+    &lt;!-- Per-user authentication and config information --&gt;
+    &lt;authorize username="USERNAME" password="PASSWORD"&gt;
+        &lt;protocol&gt;vnc&lt;/protocol&gt;
+        &lt;param name="hostname"&gt;localhost&lt;/param&gt;
+        &lt;param name="port"&gt;5900&lt;/param&gt;
+        &lt;param name="password"&gt;VNCPASS&lt;/param&gt;
+    &lt;/authorize&gt;
+
+    &lt;!-- Another user, but using md5 to hash the password
+         (example below uses the md5 hash of "PASSWORD") --&gt;
+    &lt;authorize
+            username="USERNAME2"
+            password="319f4d26e3c536b5dd871bb2c52e3178"
+            encoding="md5"&gt;
+
+        &lt;!-- First authorized connection --&gt;
+        &lt;connection name="localhost"&gt;
+            &lt;protocol&gt;vnc&lt;/protocol&gt;
+            &lt;param name="hostname"&gt;localhost&lt;/param&gt;
+            &lt;param name="port"&gt;5901&lt;/param&gt;
+            &lt;param name="password"&gt;VNCPASS&lt;/param&gt;
+        &lt;/connection&gt;
+
+        &lt;!-- Second authorized connection --&gt;
+        &lt;connection name="otherhost"&gt;
+            &lt;protocol&gt;vnc&lt;/protocol&gt;
+            &lt;param name="hostname"&gt;otherhost&lt;/param&gt;
+            &lt;param name="port"&gt;5900&lt;/param&gt;
+            &lt;param name="password"&gt;VNCPASS&lt;/param&gt;
+        &lt;/connection&gt;
+
+    &lt;/authorize&gt;
+
+&lt;/user-mapping&gt;</pre><p>Each user is specified with a corresponding
+                    <code class="code">&lt;authorize&gt;</code> tag. This tag contains all
+                authorized connections for that user, each denoted with a
+                    <code class="code">&lt;connection&gt;</code> tag. Each
+                    <code class="code">&lt;connection&gt;</code> tag contains a corresponding
+                protocol and set of protocol-specific parameters, specified with
+                the <code class="code">&lt;protocol&gt;</code> and <code class="code">&lt;param&gt;</code> tags
+                respectively.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="user-setup"></a>Adding users</h4></div></div></div><a id="idm46420847061936" class="indexterm"></a><p>When using
+                        <code class="classname">BasicFileAuthenticationProvider</code>,
+                    username/password pairs are specified with
+                        <code class="code">&lt;authorize&gt;</code> tags, which each have a
+                        <code class="code">username</code> and <code class="code">password</code>
+                    attribute. Each <code class="code">&lt;authorize&gt;</code> tag authorizes a
+                    specific username/password pair to access all connections
+                    within the tag:</p><pre class="programlisting">&lt;authorize username="<em class="replaceable"><code>USER</code></em>" password="<em class="replaceable"><code>PASS</code></em>"&gt;
+    ...
+&lt;/authorize&gt;</pre><p>In the example above, the password would be listed in
+                    plaintext. If you don't want to do this, you can also
+                    specify your password hashed with MD5:</p><pre class="programlisting">&lt;authorize username="<em class="replaceable"><code>USER</code></em>"
+           password="<em class="replaceable"><code>319f4d26e3c536b5dd871bb2c52e3178</code></em>"
+           encoding="md5"&gt;
+    ...
+&lt;/authorize&gt;</pre><p>After modifying user-mapping.xml, the file will be
+                    automatically reread by Guacamole, and your changes will
+                    take effect immediately. The newly-added user will be able
+                    to log in - no restart of the servlet container is
+                    needed.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="connection-setup"></a>Adding connections to a user</h4></div></div></div><a id="idm46420847052192" class="indexterm"></a><p>To specify a connection within an
+                        <code class="code">&lt;authorize&gt;</code> tag, you can either list a
+                    single protocol and set of parameters (specified with a
+                        <code class="code">&lt;protocol&gt;</code> tag and any number of
+                        <code class="code">&lt;param&gt;</code> tags), in which case that user
+                    will have access to only one connection named "DEFAULT", or
+                    you can specify one or more connections with one or more
+                        <code class="code">&lt;connection&gt;</code> tags, each of which can be
+                    named and contains a <code class="code">&lt;protocol&gt;</code> tag and any
+                    number of <code class="code">&lt;param&gt;</code> tags.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="connection-configuration"></a>Configuring connections</h2></div></div></div><p>Each protocol supported by Guacamole has its own set of configuration parameters.
+            These parameters typically describe the hostname and port of the remote desktop server,
+            the credentials to use when connecting, if any, and the size and color depth of the
+            display. If the protocol supports file transfer, options for enabling that functionality
+            will be provided as well.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="vnc"></a>VNC</h3></div></div></div><a id="idm46420847043264" class="indexterm"></a><p>The VNC protocol is the simplest and first protocol supported by Guacamole.
+                Although generally not as fast as RDP, many VNC servers are adequate, and VNC over
+                Guacamole tends to be faster than VNC by itself due to decreased bandwidth
+                usage.</p><p>VNC support for Guacamole is provided by the <span class="package">libguac-client-vnc</span>
+                library, which will be installed as part of guacamole-server if the required
+                dependencies are present during the build.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-network-parameters"></a>Network parameters</h4></div></div></div><p>With the exception of reverse-mode VNC connections, VNC works by making
+                    outbound network connections to a particular host which runs one or more VNC
+                    servers. Each VNC server is associated with a display number, from which the
+                    appropriate port number is derived.</p><div class="informaltable"><a id="vnc-parameters"></a><a id="idm46420847037968" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>hostname</code></em></td><td>
+                                    <p><a id="idm46420847030304" class="indexterm"></a>The hostname or IP address of the VNC server
+                                        Guacamole should connect to.</p>
+                                </td></tr><tr><td><em class="parameter"><code>port</code></em></td><td>
+                                    <p><a id="idm46420847026912" class="indexterm"></a>The port the VNC server is listening on, usually
+                                        5900 or 5900 + <em class="replaceable"><code>display number</code></em>.
+                                        For example, if your VNC server is serving display number 1
+                                        (sometimes written as <code class="constant">:1</code>), your port
+                                        number here would be 5901.</p>
+                                </td></tr><tr><td><em class="parameter"><code>autoretry</code></em></td><td>
+                                    <p><a id="idm46420847022592" class="indexterm"></a>The number of times to retry connecting before
+                                        giving up and returning an error. In the case of a reverse
+                                        connection, this is the number of times the connection
+                                        process is allowed to time out.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-authentication"></a>Authentication</h4></div></div></div><p>The VNC standard defines only password based authentication. Other
+                    authentication mechanisms exist, but are non-standard or proprietary. Guacamole
+                    supports only the password method.</p><div class="informaltable"><a id="idm46420847017296" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>password</code></em></td><td>
+                                    <p><a id="idm46420847009584" class="indexterm"></a>The password to use when attempting
+                                        authentication, if any. This parameter is optional.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-display-settings"></a>Display settings</h4></div></div></div><p>VNC servers do not allow the client to request particular display sizes, so
+                    you are at the mercy of your VNC server with respect to display width and
+                    height. However, to reduce bandwidth usage, you may request that the VNC server
+                    reduce its color depth. Guacamole will automatically detect 256-color images,
+                    but this can be guaranteed for absolutely all graphics sent over the connection
+                    by forcing the color depth to 8-bit. Color depth is otherwise dictated by the
+                    VNC server.</p><p>If you are noticing problems with your VNC display, such as the lack of a
+                    mouse cursor, the presence of multiple mouse cursors, or strange colors (such as
+                    blue colors appearing more like orange or red), these are typically the result
+                    of bugs or limitations within the VNC server, and additional parameters are
+                    available to work around such issues.</p><div class="informaltable"><a id="idm46420847003760" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>color-depth</code></em></td><td>
+                                    <p><a id="idm46420846996048" class="indexterm"></a>The color depth to request, in bits-per-pixel.
+                                        This parameter is optional. If specified, this must be
+                                        either 8, 16, 24, or 32. Regardless of what value is chosen
+                                        here, if a particular update uses less than 256 colors,
+                                        Guacamole will always send that update as a 256-color
+                                        PNG.</p>
+                                </td></tr><tr><td><em class="parameter"><code>swap-red-blue</code></em></td><td>
+                                    <p>If the colors of your display appear wrong (blues appear
+                                        orange or red, etc.), it may be that your VNC server is
+                                        sending image data incorrectly, and the red and blue
+                                        components of each color are swapped. If this is the case,
+                                        set this parameter to "true" to work around the problem.
+                                        This parameter is optional.</p>
+                                </td></tr><tr><td><em class="parameter"><code>cursor</code></em></td><td>
+                                    <p><a id="idm46420846989776" class="indexterm"></a>If set to "remote", the mouse pointer will be
+                                        rendered remotely, and the local position of the mouse
+                                        pointer will be indicated by a small dot. A remote mouse
+                                        cursor will feel slower than a local cursor, but may be
+                                        necessary if the VNC server does not support sending the
+                                        cursor image to the client.</p>
+                                </td></tr><tr><td><em class="parameter"><code>encodings</code></em></td><td>
+                                    <p><a id="idm46420846986000" class="indexterm"></a>A space-delimited list of VNC encodings to use.
+                                        The format of this parameter is dictated by libvncclient and
+                                        thus doesn't really follow the form of other Guacamole
+                                        parameters. This parameter is optional, and
+                                            <span class="package">libguac-client-vnc</span> will use any
+                                        supported encoding by default.</p>
+                                    <p>Beware that this parameter is intended to be replaced with
+                                        individual, encoding-specific parameters in a future
+                                        release.</p>
+                                </td></tr><tr><td><em class="parameter"><code>read-only</code></em></td><td>
+                                    <p><a id="idm46420846981184" class="indexterm"></a>Whether this connection should be read-only. If
+                                        set to "true", no input will be accepted on the connection
+                                        at all. Users will only see the desktop and whatever other
+                                        users using that same desktop are doing. This parameter is
+                                        optional.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-recording"></a>Session recording</h4></div></div></div><p>VNC sessions can be recorded graphically. These recordings take the form of
+                    Guacamole protocol dumps and are recorded automatically to a specified
+                    directory. Recordings can be subsequently translated to a normal video stream
+                    using the <span class="command"><strong>guacenc</strong></span> utility provided with
+                    guacamole-server.</p><p>For example, to produce a video called "<em class="replaceable"><code>NAME</code></em>.m4v"
+                    from the recording "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guacenc <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong></pre></div><p>The <span class="command"><strong>guacenc</strong></span> utility has additional options for overriding
+                    default behavior, including tweaking the output format, which are documented in
+                    detail within the manpage:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>man guacenc</code></strong></pre></div><p>If recording of key events is explicitly enabled using the
+                        <em class="parameter"><code>recording-include-keys</code></em> parameter, recordings can also
+                    be translated into human-readable interpretations of the keys pressed during the
+                    session using the <span class="command"><strong>guaclog</strong></span> utility. The usage of
+                        <span class="command"><strong>guaclog</strong></span> is analogous to <span class="command"><strong>guacenc</strong></span>, and
+                    results in the creation of a new text file containing the interpreted
+                    events:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guaclog <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong><code class="computeroutput">
+guaclog: INFO: Guacamole input log interpreter (guaclog) version 1.1.0
+guaclog: INFO: 1 input file(s) provided.
+guaclog: INFO: Writing input events from "<em class="replaceable"><code>/path/to/recording/NAME</code></em>" to "<em class="replaceable"><code>/path/to/recording/NAME</code></em>.txt" ...
+guaclog: INFO: All files interpreted successfully.</code>
+<code class="prompt">$</code> </pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46420846961296" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>recording-path</code></em></td><td>
+                                    <p><a id="idm46420846953584" class="indexterm"></a>The directory in which screen recording files
+                                        should be created. <span class="emphasis"><em>If a graphical recording needs
+                                            to be created, then this parameter is
+                                            required.</em></span> Specifying this parameter enables
+                                        graphical screen recording. If this parameter is omitted, no
+                                        graphical recording will be created.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-recording-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will not
+                                        automatically be created, and attempts to create recordings
+                                        within a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-name</code></em></td><td>
+                                    <p>The filename to use for any created recordings.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, the value "recording" will be used instead.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-output</code></em></td><td>
+                                    <p>If set to "true", graphical output and other data normally
+                                        streamed from server to client will be excluded from the
+                                        recording, producing a recording which contains only user
+                                        input events. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, graphical output will
+                                        be included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-mouse</code></em></td><td>
+                                    <p>If set to "true", user mouse events will be excluded from
+                                        the recording, producing a recording which lacks a visible
+                                        mouse cursor. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, mouse events will be
+                                        included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-include-keys</code></em></td><td>
+                                    <p>If set to "true", user key events will be included in the
+                                        recording. The recording can subsequently be passed through
+                                        the <span class="command"><strong>guaclog</strong></span> utility to produce a
+                                        human-readable interpretation of the keys pressed during the
+                                        session. <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, key events will be not included in the
+                                        recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-sftp"></a>File transfer (via SFTP)</h4></div></div></div><p>VNC does not normally support file transfer, but Guacamole can provide file
+                    transfer over SFTP even when the remote desktop is otherwise being accessed
+                    through VNC and not SSH. If SFTP is enabled on a Guacamole VNC connection, users
+                    will be able to upload and download files as described in <a class="xref" href="using-guacamole.html" title="Chapter 15. Using Guacamole">Chapter 15, <em>Using Guacamole</em></a>.</p><div class="informaltable"><a id="idm46420846924928" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>enable-sftp</code></em></td><td>
+                                    <p><a id="idm46420846917216" class="indexterm"></a><a id="idm46420846915936" class="indexterm"></a>Whether file transfer should be enabled. If set
+                                        to "true", the user will be allowed to upload or download
+                                        files from the specified server using SFTP. If omitted, SFTP
+                                        will be disabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-hostname</code></em></td><td>
+                                    <p>The hostname or IP address of the server hosting SFTP.
+                                        This parameter is optional. If omitted, the hostname of the
+                                        VNC server specified with the
+                                            <em class="parameter"><code>hostname</code></em> parameter will be
+                                        used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-port</code></em></td><td>
+                                    <p>The port the SSH server providing SFTP is listening on,
+                                        usually 22. This parameter is optional. If omitted, the
+                                        standard port of 22 will be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-host-key</code></em></td><td>
+                                    <p>The known hosts entry for the SFTP server.  This
+                                        parameter is optional, and, if not provided, no verification
+                                        of SFTP host identity will be done.  If the parameter is
+                                        provided the identity of the server will be checked
+                                        against the data.</p>
+                                    <p>The format of this parameter should be that of a single
+                                        entry from an OpenSSH <code class="filename">known_hosts</code>
+                                        file.</p>
+                                    <p>For more information, please see <a class="xref" href="configuring-guacamole.html#ssh-host-verification" title="SSH Host Verification">the section called “SSH Host Verification”</a>.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-username</code></em></td><td>
+                                    <p>The username to authenticate as when connecting to the
+                                        specified SSH server for SFTP. This parameter is
+                                        required.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-password</code></em></td><td>
+                                    <p>The password to use when authenticating with the specified
+                                        SSH server for SFTP.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-private-key</code></em></td><td>
+                                    <p>The entire contents of the private key to use for public
+                                        key authentication. If this parameter is not specified,
+                                        public key authentication will not be used. The private key
+                                        must be in OpenSSH format, as would be generated by the
+                                        OpenSSH <span class="command"><strong>ssh-keygen</strong></span> utility.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-passphrase</code></em></td><td>
+                                    <p>The passphrase to use to decrypt the private key for use
+                                        in public key authentication. This parameter is not needed
+                                        if the private key does not require a passphrase.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-directory</code></em></td><td>
+                                    <p>The directory to upload files to if they are simply
+                                        dragged and dropped, and thus otherwise lack a specific
+                                        upload location. This parameter is optional. If omitted, the
+                                        default upload location of the SSH server providing SFTP
+                                        will be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-root-directory</code></em></td><td>
+                                    <p>The directory to expose to connected users via Guacamole's
+                                            <a class="link" href="using-guacamole.html#file-browser" title="Using the file browser">file browser</a>. If omitted,
+                                        the root directory will be used by default.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-server-alive-interval</code></em></td><td>
+                                    <p>The interval in seconds at which to send keepalive
+                                    packets to the SSH server for the SFTP connection.  This
+                                    parameter is optional.  If omitted, the default of 0 will be
+                                    used, disabling sending keepalive packets.  The minimum
+                                    value is 2.
+                                    </p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-repeater"></a>VNC Repeater</h4></div></div></div><p>There exist VNC repeaters, such as UltraVNC Repeater, which act as
+                    intermediaries or proxies, providing a single logical VNC connection which is
+                    then routed to another VNC server elsewhere. Additional parameters are required
+                    to select which VNC host behind the repeater will receive the connection.</p><div class="informaltable"><a id="idm46420846884336" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>dest-host</code></em></td><td><a id="idm46420846876928" class="indexterm"></a><a id="idm46420846875664" class="indexterm"></a><a id="idm46420846874400" class="indexterm"></a>The destination host to request when connecting to a
+                                    VNC proxy such as UltraVNC Repeater. This is only necessary if
+                                    the VNC proxy in use requires the connecting user to specify
+                                    which VNC server to connect to. If the VNC proxy automatically
+                                    connects to a specific server, this parameter is not
+                                    necessary.</td></tr><tr><td><em class="parameter"><code>dest-port</code></em></td><td><a id="idm46420846871136" class="indexterm"></a><a id="idm46420846869872" class="indexterm"></a>The destination port to request when connecting to a
+                                    VNC proxy such as UltraVNC Repeater. This is only necessary if
+                                    the VNC proxy in use requires the connecting user to specify
+                                    which VNC server to connect to. If the VNC proxy automatically
+                                    connects to a specific server, this parameter is not
+                                    necessary.</td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-reverse-connections"></a>Reverse VNC connections</h4></div></div></div><p>Guacamole supports "reverse" VNC connections, where the VNC client listens for
+                    an incoming connection from the VNC server. When reverse VNC connections are
+                    used, the VNC client and server switch network roles, but otherwise function as
+                    they normally would. The VNC server still provides the remote display, and the
+                    VNC client still provides all keyboard and mouse input.</p><div class="informaltable"><a id="idm46420846864448" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>reverse-connect</code></em></td><td>
+                                    <p><a id="idm46420846856736" class="indexterm"></a>Whether reverse connection should be used. If
+                                        set to "true", instead of connecting to a server at a given
+                                        hostname and port, guacd will listen on the given port for
+                                        inbound connections from a VNC server.</p>
+                                </td></tr><tr><td><em class="parameter"><code>listen-timeout</code></em></td><td>
+                                    <p><a id="idm46420846853136" class="indexterm"></a>If reverse connection is in use, the maximum
+                                        amount of time to wait for an inbound connection from a VNC
+                                        server, in milliseconds. If blank, the default value is 5000
+                                        (five seconds).</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-audio"></a>Audio support (via PulseAudio)</h4></div></div></div><p>VNC does not provide its own support for audio, but Guacamole's VNC support
+                    can obtain audio through a secondary network connection to a PulseAudio server
+                    running on the same machine as the VNC server.</p><p>Most Linux systems provide audio through a service called PulseAudio. This
+                    service is capable of communicating over the network, and if PulseAudio is
+                    configured to allow TCP connections, Guacamole can connect to your PulseAudio
+                    server and combine its audio with the graphics coming over VNC.</p><p>Configuring PulseAudio for network connections requires an additional line
+                    within the PulseAudio configuration file, usually
+                        <code class="filename">/etc/pulse/default.pa</code>:</p><div class="informalexample"><pre class="programlisting">load-module module-native-protocol-tcp auth-ip-acl=<em class="replaceable"><code>192.168.1.0/24</code></em> auth-anonymous=1</pre></div><p>This loads the TCP module for PulseAudio, configuring it to accept connections
+                    without authentication and <span class="emphasis"><em>only</em></span> from the
+                        <em class="replaceable"><code>192.168.1.0/24</code></em> subnet. You will want to replace
+                    this value with the subnet or IP address from which guacd will be connecting. It
+                    is possible to allow connections from absolutely anywhere, but beware that you
+                    should only do so if the nature of your network prevents unauthorized
+                    access:</p><div class="informalexample"><pre class="programlisting">load-module module-native-protocol-tcp auth-anonymous=1</pre></div><p>In either case, the <code class="code">auth-anonymous=1</code> parameter is strictly
+                    required. Guacamole does not currently support the cookie-based authentication
+                    used by PulseAudio for non-anonymous connections. If this parameter is omitted,
+                    Guacamole will not be able to connect to PulseAudio.</p><p>Once the PulseAudio configuration file has been modified appropriately,
+                    restart the PulseAudio service. PulseAudio should then begin listening on port
+                    4713 (the default PulseAudio port) for incoming TCP connections. You can verify
+                    this using a utility like <span class="command"><strong>netstat</strong></span>:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>netstat -ln | grep 4713</code></strong>
+<code class="computeroutput">tcp        0      0 0.0.0.0:4713            0.0.0.0:*               LISTEN
+tcp6       0      0 :::4713                 :::*                    LISTEN</code>
+<code class="prompt">$</code></pre></div><p>The following parameters are available for configuring the audio support for
+                    VNC:</p><div class="informaltable"><a id="idm46420846836544" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>enable-audio</code></em></td><td>
+                                    <p><a id="idm46420846828832" class="indexterm"></a><a id="idm46420846827552" class="indexterm"></a>If set to "true", audio support will be enabled,
+                                        and a second connection for PulseAudio will be made in
+                                        addition to the VNC connection. By default, audio support
+                                        within VNC is disabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>audio-servername</code></em></td><td>
+                                    <p>The name of the PulseAudio server to connect to. This will
+                                        be the hostname of the computer providing audio for your
+                                        connection via PulseAudio, most likely the same as the value
+                                        given for the <em class="parameter"><code>hostname</code></em>
+                                        parameter.</p>
+                                    <p>If this parameter is omitted, the default PulseAudio
+                                        device will be used, which will be the PulseAudio server
+                                        running on the same machine as guacd.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-clipboard-encoding"></a>Clipboard encoding</h4></div></div></div><p>While Guacamole will always use UTF-8 for its own clipboard data, the VNC
+                    standard requires that clipboard data be encoded in ISO 8859-1. As most VNC
+                    servers will not accept data in any other format, Guacamole will translate
+                    between UTF-8 and ISO 8859-1 when exchanging clipboard data with the VNC server,
+                    but this behavior can be overridden with the
+                        <em class="parameter"><code>clipboard-encoding</code></em> parameter.</p><div class="important"><h3 class="title">Important</h3><p><span class="emphasis"><em>The only clipboard encoding guaranteed to be supported by VNC
+                            servers is ISO 8859-1.</em></span> You should only override the clipboard
+                        encoding using the <em class="parameter"><code>clipboard-encoding</code></em> parameter of
+                        you are absolutely positive your VNC server supports other encodings.</p></div><div class="informaltable"><a id="idm46420846816320" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>clipboard-encoding</code></em></td><td>
+                                    <p><a id="idm46420846808608" class="indexterm"></a><a id="idm46420846807808" class="indexterm"></a>The encoding to assume for the VNC clipboard.
+                                        This parameter is optionl. By default, the standard encoding
+                                        ISO 8859-1 will be used. <span class="emphasis"><em>Only use this parameter
+                                            if you are sure your VNC server supports other encodings
+                                            beyond the standard ISO 8859-1.</em></span></p>
+                                    <p>Possible values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">ISO8859-1</code></span></dt><dd><p>ISO 8859-1 is the clipboard encoding mandated
+                                                  by the VNC standard, and supports only basic Latin
+                                                  characters.  Unless your VNC server specifies
+                                                  otherwise, this encoding is the only encoding
+                                                  guaranteed to work.</p></dd><dt><span class="term"><code class="constant">UTF-8</code></span></dt><dd><p>UTF-8 - the most common encoding used for
+                                                  Unicode. Using this encoding for the VNC clipboard
+                                                  violates the VNC specification, but some servers
+                                                  do support this. This parameter value should only
+                                                  be used if you know your VNC server supports this
+                                                  encoding.</p></dd><dt><span class="term"><code class="constant">UTF-16</code></span></dt><dd><p>UTF-16 - a 16-bit encoding for Unicode which
+                                                  is not as common as UTF-8, but still widely used.
+                                                  Using this encoding for the VNC clipboard violates
+                                                  the VNC specification. This parameter value should
+                                                  only be used if you know your VNC server supports
+                                                  this encoding.</p></dd><dt><span class="term"><code class="constant">CP1252</code></span></dt><dd><p>Code page 1252 - a Windows-specific encoding
+                                                  for Latin characters which is mostly a superset of
+                                                  ISO 8859-1, mapping some additional displayable
+                                                  characters onto what would otherwise be control
+                                                  characters. Using this encoding for the VNC
+                                                  clipboard violates the VNC specification. This
+                                                  parameter value should only be used if you know
+                                                  your VNC server supports this encoding.</p></dd></dl></div>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="adding-vnc"></a>Adding a VNC connection</h4></div></div></div><a id="idm46420846792624" class="indexterm"></a><p>If you are using the default authentication built into Guacamole, and you wish
+                    to grant access to a VNC connection to a particular user, you need to locate the
+                        <code class="code">&lt;authorize&gt;</code> section for that user within your
+                        <code class="filename">user-mapping.xml</code>, and add a section like the following
+                    within it:</p><pre class="programlisting">&lt;connection name="<em class="replaceable"><code>Unique Name</code></em>"&gt;
+    &lt;protocol&gt;vnc&lt;/protocol&gt;
+    &lt;param name="hostname"&gt;<em class="replaceable"><code>localhost</code></em>&lt;/param&gt;
+    &lt;param name="port"&gt;<em class="replaceable"><code>5901</code></em>&lt;/param&gt;
+&lt;/connection&gt;</pre><p>If added exactly as above, a new connection named "<em class="replaceable"><code>Unique
+                        Name</code></em>" will be available to the user associated with the
+                        <code class="code">&lt;authorize&gt;</code> section containing it. The connection will use
+                    VNC to connect to <em class="replaceable"><code>localhost</code></em> at port
+                        <em class="replaceable"><code>5901</code></em>. Naturally, you will want to change some or
+                    all of these values.</p><p>If your VNC server requires a password, or you wish to specify other
+                    configuration parameters (to reduce the color depth, for example), you will need
+                    to add additional <code class="code">&lt;param&gt;</code> tags accordingly.</p><p>Other authentication methods will provide documentation describing how to
+                    configure new connections. If the authentication method in use fully implements
+                    the features of Guacamole's authentication API, you will be able to add a new
+                    VNC connection easily and intuitively using the administration interface built
+                    into Guacamole. You will not need to edit configuration files.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-servers"></a>Which VNC server?</h4></div></div></div><a id="idm46420846782064" class="indexterm"></a><p>The choice of VNC server can make a big difference when it comes to
+                    performance, especially over slower networks. While many systems provide VNC
+                    access by default, using this is often not the fastest method.</p><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="realvnc"></a>RealVNC or TigerVNC</h5></div></div></div><a id="idm46420846779392" class="indexterm"></a><a id="idm46420846778480" class="indexterm"></a><p>RealVNC, and its derivative TigerVNC, perform quite well. In our testing,
+                        they perform the best with Guacamole. If you are okay with having a desktop
+                        that can only be accessed via VNC, one of these is likely your best choice.
+                        Both optimize window movement and (depending on the application) scrolling,
+                        giving a very responsive user experience.</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="tightvnc"></a>TightVNC</h5></div></div></div><a id="idm46420846775440" class="indexterm"></a><p>TightVNC is widely-available and performs generally as well as RealVNC or
+                        TigerVNC. If you wish to use TightVNC with Guacamole, performance should be
+                        just fine, but we highly recommend disabling its JPEG encoding. This is
+                        because images transmitted to Guacamole are always encoded losslessly as PNG
+                        images. When this operation is performed on a JPEG image, the artifacts
+                        present from JPEG's lossy compression reduce the compressibility of the
+                        image for PNG, thus leading to a slower experience overall than if JPEG was
+                        simply not used to begin with.</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="x11vnc"></a>x11vnc</h5></div></div></div><a id="idm46420846772048" class="indexterm"></a><p>The main benefit of using x11vnc is that it allows you to continue using
+                        your desktop normally, while simultaneously exposing control of your desktop
+                        via VNC. Performance of x11vnc is comparable to RealVNC, TigerVNC, and
+                        TightVNC. If you need to use your desktop locally as well as via VNC, you
+                        will likely be quite happy with x11vnc.</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="vino"></a>vino</h5></div></div></div><a id="idm46420846768944" class="indexterm"></a><p>vino is the VNC server that comes with the Gnome desktop environment, and
+                        is enabled if you enable "desktop sharing" via the system preferences
+                        available within Gnome. If you need to share your local desktop, we
+                        recommend using x11vnc rather vino, as it has proven more performant and
+                        feature-complete in our testing. If you don't need to share a local desktop
+                        but simply need an environment you can access remotely, using a VNC server
+                        like RealVNC, TigerVNC, or TightVNC is a better choice.</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="qemu"></a>QEMU or KVM</h5></div></div></div><a id="idm46420846765696" class="indexterm"></a><a id="idm46420846764784" class="indexterm"></a><p>QEMU (and thus KVM) expose the displays of virtual machines using VNC. If
+                        you need to see the virtual monitor of your virtual machine, using this VNC
+                        connection is really your only choice. As the VNC server built into QEMU
+                        cannot be aware of higher-level operations like window movement, resizing,
+                        or scrolling, those operations will tend to be sent suboptimally, and will
+                        not be as fast as a VNC server running within the virtual machine.</p><p>If you wish to use a virtual machine for desktop access, we recommend
+                        installing a native VNC server inside the virtual machine after the virtual
+                        machine is set up. This will give a more responsive desktop.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="rdp"></a>RDP</h3></div></div></div><a id="idm46420846760608" class="indexterm"></a><p>The RDP protocol is more complicated than VNC and was the second protocol
+                officially supported by Guacamole. RDP tends to be faster than VNC due to the use of
+                caching, which Guacamole does take advantage of.</p><p>RDP support for Guacamole is provided by the <span class="package">libguac-client-rdp</span>
+                library, which will be installed as part of guacamole-server if the required
+                dependencies are present during the build.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-network-parameters"></a>Network parameters</h4></div></div></div><p>RDP connections require a hostname or IP address defining the destination
+                    machine. The RDP port is defined to be 3389, and will be this value in most
+                    cases. You only need to specify the RDP port if you are not using port
+                    3389.</p><div class="informaltable"><a id="idm46420846755584" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>hostname</code></em></td><td>
+                                    <p><a id="idm46420846747872" class="indexterm"></a>The hostname or IP address of the RDP server
+                                        Guacamole should connect to.</p>
+                                </td></tr><tr><td><em class="parameter"><code>port</code></em></td><td>
+                                    <p><a id="idm46420846744480" class="indexterm"></a>The port the RDP server is listening on, usually
+                                        3389. This parameter is optional. If this is not specified,
+                                        the default of 3389 will be used.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-authentication"></a>Authentication and security</h4></div></div></div><p>RDP provides authentication through the use of a username, password, and
+                    optional domain. All RDP connections are encrypted.</p><p>Most RDP servers will provide a graphical login if the username, password, and
+                    domain parameters are omitted. One notable exception to this is Network Level
+                    Authentication, or NLA, which performs all authentication outside of a desktop
+                    session, and thus in the absence of a graphical interface.</p><div class="important"><h3 class="title">Important</h3><p>If your server requires NLA, you <span class="emphasis"><em>must</em></span> provide a
+                        username and password. Leveraging Guacamole's <a class="link" href="configuring-guacamole.html#parameter-tokens" title="Parameter tokens">parameter tokens</a> and <a class="link" href="ldap-auth.html" title="Chapter 7. LDAP authentication">LDAP
+                            support</a> to integrate with Active Directory and automatically pass
+                        through credentials is a common configuration.</p></div><div class="informaltable"><a id="idm46420846735328" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>username</code></em></td><td>
+                                    <p><a id="idm46420846727616" class="indexterm"></a>The username to use to authenticate, if any.
+                                        This parameter is optional.</p>
+                                </td></tr><tr><td><em class="parameter"><code>password</code></em></td><td>
+                                    <p><a id="idm46420846724224" class="indexterm"></a>The password to use when attempting
+                                        authentication, if any. This parameter is optional.</p>
+                                </td></tr><tr><td><em class="parameter"><code>domain</code></em></td><td>
+                                    <p><a id="idm46420846720816" class="indexterm"></a>The domain to use when attempting
+                                        authentication, if any. This parameter is optional.</p>
+                                </td></tr><tr><td><em class="parameter"><code>security</code></em></td><td>
+                                    <p><a id="idm46420846717408" class="indexterm"></a><a id="idm46420846716128" class="indexterm"></a><a id="idm46420846714848" class="indexterm"></a>The security mode to use for the RDP connection.
+                                        This mode dictates how data will be encrypted and what type
+                                        of authentication will be performed, if any. By default, a
+                                        security mode is selected based on a negotiation process
+                                        which determines what both the client and the server
+                                        support.</p>
+                                    <p>Possible values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">any</code></span></dt><dd><p>Automatically select the security mode based
+                                                  on the security protocols supported by both the
+                                                  client and the server. <span class="emphasis"><em>This is the
+                                                  default</em></span>.</p></dd><dt><span class="term"><code class="constant">nla</code></span></dt><dd><p>Network Level Authentication, sometimes also
+                                                  referred to as "hybrid" or CredSSP (the protocol
+                                                  that drives NLA). This mode uses TLS encryption
+                                                  and requires the username and password to be given
+                                                  in advance. Unlike RDP mode, the authentication
+                                                  step is performed before the remote desktop
+                                                  session actually starts, avoiding the need for the
+                                                  Windows server to allocate significant resources
+                                                  for users that may not be authorized.</p></dd><dt><span class="term"><code class="constant">nla-ext</code></span></dt><dd><p>Extended Network Level Authentication. This
+                                                  mode is identical to NLA except that an additional
+                                                  "<a class="link" href="https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/d0e560a3-25cb-4563-8bdc-6c4cc625bbfc" target="_top">Early User Authorization Result</a>" is
+                                                  required to be sent from the server to the client
+                                                  immediately after the NLA handshake is
+                                                  completed.</p></dd><dt><span class="term"><code class="constant">tls</code></span></dt><dd><p>RDP authentication and encryption implemented
+                                                  via TLS (Transport Layer Security). Also referred
+                                                  to as RDSTLS, the TLS security mode is primarily
+                                                  used in load balanced configurations where the
+                                                  initial RDP server may redirect the connection to
+                                                  a different RDP server.</p></dd><dt><span class="term"><code class="constant">rdp</code></span></dt><dd><p>Standard RDP encryption. This mode is
+                                                  generally only used for older Windows servers or
+                                                  in cases where a standard Windows login screen is
+                                                  desired. Newer versions of Windows have this mode
+                                                  disabled by default and will only accept NLA
+                                                  unless explicitly configured otherwise.</p></dd></dl></div>
+                                </td></tr><tr><td><em class="parameter"><code>ignore-cert</code></em></td><td>
+                                    <p><a id="idm46420846696512" class="indexterm"></a>If set to "true", the certificate returned by
+                                        the server will be ignored, even if that certificate cannot
+                                        be validated. This is useful if you universally trust the
+                                        server and your connection to the server, and you know that
+                                        the server's certificate cannot be validated (for example,
+                                        if it is self-signed).</p>
+                                </td></tr><tr><td><em class="parameter"><code>disable-auth</code></em></td><td>
+                                    <p><a id="idm46420846692720" class="indexterm"></a>If set to "true", authentication will be
+                                        disabled. Note that this refers to authentication that takes
+                                        place while connecting. Any authentication enforced by the
+                                        server over the remote desktop session (such as a login
+                                        dialog) will still take place. By default, authentication is
+                                        enabled and only used when requested by the server.</p>
+                                    <p>If you are using NLA, authentication must be enabled by
+                                        definition.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-session-settings"></a>Session settings</h4></div></div></div><p>RDP sessions will typically involve the full desktop environment of a normal
+                    user. Alternatively, you can manually specify a program to use instead of the
+                    RDP server's default shell, or connect to the administrative console.</p><p>Although Guacamole is independent of keyboard layout, RDP is not. This is
+                    because Guacamole represents keys based on what they <span class="emphasis"><em>do</em></span>
+                    ("press the <span class="keycap"><strong>Enter</strong></span> key"), while RDP uses identifiers based on
+                    the key's location  ("press the rightmost key in the second row"). To translate
+                    between a Guacamole key event  and an RDP key event, Guacamole must know ahead
+                    of time the keyboard layout of the RDP server.</p><p>By default, the US English qwerty keyboard will be used. If this does not
+                    match the keyboard layout of your RDP server, keys will not be properly
+                    translated, and you will need to explicitly choose a different layout in your
+                    connection settings. If your keyboard layout is not supported, please notify the
+                    Guacamole team by <a class="link" href="https://issues.apache.org/jira/browse/GUACAMOLE" target="_top">opening an issue in
+                    JIRA</a>.</p><div class="informaltable"><a id="idm46420846683120" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>client-name</code></em></td><td>
+                                    <p><a id="idm46420846675408" class="indexterm"></a>When connecting to the RDP server, Guacamole
+                                        will normally provide its own hostname as the name of the
+                                        client. If this parameter is specified, Guacamole will use
+                                        its value instead.</p>
+                                    <p>On Windows RDP servers, this value is exposed within the
+                                        session as the <code class="envar">CLIENTNAME</code> environment
+                                        variable.</p>
+                                </td></tr><tr><td><em class="parameter"><code>console</code></em></td><td>
+                                    <p><a id="idm46420846670768" class="indexterm"></a>If set to "true", you will be connected to the
+                                        console (admin) session of the RDP server.</p>
+                                </td></tr><tr><td><em class="parameter"><code>initial-program</code></em></td><td>
+                                    <p><a id="idm46420846667360" class="indexterm"></a>The full path to the program to run immediately
+                                        upon connecting. This parameter is optional.</p>
+                                </td></tr><tr><td><em class="parameter"><code>server-layout</code></em></td><td>
+                                    <p><a id="idm46420846663952" class="indexterm"></a><a id="idm46420846663152" class="indexterm"></a>The server-side keyboard layout. This is the
+                                        layout of the RDP server and has nothing to do with the
+                                        keyboard layout in use on the client. <span class="emphasis"><em>The
+                                            Guacamole client is independent of keyboard
+                                            layout.</em></span> The RDP protocol, however, is
+                                            <span class="emphasis"><em>not</em></span> independent of keyboard layout,
+                                        and Guacamole needs to know the keyboard layout of the
+                                        server in order to send the proper keys when a user is
+                                        typing.</p>
+                                    <p>Possible values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">en-us-qwerty</code></span></dt><dd><p>English (US) keyboard</p></dd><dt><span class="term"><code class="constant">en-gb-qwerty</code></span></dt><dd><p>English (UK) keyboard</p></dd><dt><span class="term"><code class="constant">de-ch-qwertz</code></span></dt><dd><p>Swiss German keyboard (qwertz)</p></dd><dt><span class="term"><code class="constant">de-de-qwertz</code></span></dt><dd><p>German keyboard (qwertz)</p></dd><dt><span class="term"><code class="constant">fr-fr-azerty</code></span></dt><dd><p>French keyboard (azerty)</p></dd><dt><span class="term"><code class="constant">fr-ch-qwertz</code></span></dt><dd><p>Swiss French keyboard (qwertz)</p></dd><dt><span class="term"><code class="constant">it-it-qwerty</code></span></dt><dd><p>Italian keyboard</p></dd><dt><span class="term"><code class="constant">ja-jp-qwerty</code></span></dt><dd><p>Japanese keyboard</p></dd><dt><span class="term"><code class="constant">pt-br-qwerty</code></span></dt><dd><p>Portuguese Brazilian keyboard</p></dd><dt><span class="term"><code class="constant">es-es-qwerty</code></span></dt><dd><p>Spanish keyboard</p></dd><dt><span class="term"><code class="constant">sv-se-qwerty</code></span></dt><dd><p>Swedish keyboard</p></dd><dt><span class="term"><code class="constant">tr-tr-qwerty</code></span></dt><dd><p>Turkish-Q keyboard</p></dd><dt><span class="term"><code class="constant">failsafe</code></span></dt><dd><p>Unknown keyboard - this option sends only
+                                                  Unicode events and should work for any keyboard,
+                                                  though not necessarily all RDP servers or
+                                                  applications.</p><p>If your server's keyboard layout is not yet
+                                                  supported, this option should work in the
+                                                  meantime.</p></dd></dl></div>
+                                </td></tr><tr><td><em class="parameter"><code>timezone</code></em></td><td>
+                                    <p><a id="idm46420846628880" class="indexterm"></a>The timezone that the client
+                                    should send to the server for configuring the
+                                    local time display of that server.  The
+                                    format of the timezone is in the standard
+                                    IANA key zone format, which is the format
+                                    used in UNIX/Linux.  This will be converted
+                                    by RDP into the correct format for Windows.
+                                    </p>
+                                    <p>The timezone is detected and will be
+                                    passed to the server during the handshake
+                                    phase of the connection, and may used by
+                                    protocols, like RDP, that support it.  This
+                                    parameter can be used to override the value
+                                    detected and passed during the handshake, or
+                                    can be used in situations where guacd does
+                                    not support passing the timezone parameter
+                                    during the handshake phase (guacd versions
+                                    prior to 1.1.0).</p>
+                                    <p>Support for forwarding the client
+                                    timezone varies by RDP server implementation.
+                                    For example, with Windows, support for
+                                    forwarding timezones is only present in
+                                    Windows Server with Remote Desktop Services
+                                    (RDS, formerly known as Terminal Services)
+                                    installed.  Windows Server installations in
+                                    admin mode, along with Windows workstation
+                                    versions, do not allow the timezone to be
+                                    forwarded.  Other server implementations,
+                                    for example, xrdp, may not implement this
+                                    feature at all.  Consult the documentation
+                                    for the RDP server to determine whether or
+                                    not this feature is supported.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-display-settings"></a>Display settings</h4></div></div></div><p>Guacamole will automatically choose an appropriate display size for RDP
+                    connections based on the size of the browser window and the DPI of the device.
+                    The size of the display can be forced by specifying explicit width or height
+                    values.</p><p>To reduce bandwidth usage, you may also request that the server reduce its
+                    color depth. Guacamole will automatically detect 256-color images, but this can
+                    be guaranteed for absolutely all graphics sent over the connection by forcing
+                    the color depth to 8-bit. Color depth is otherwise dictated by the RDP
+                    server.</p><div class="informaltable"><a id="idm46420846619824" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>color-depth</code></em></td><td>
+                                    <p><a id="idm46420846612112" class="indexterm"></a>The color depth to request, in bits-per-pixel.
+                                        This parameter is optional. If specified, this must be
+                                        either 8, 16, or 24. Regardless of what value is chosen
+                                        here, if a particular update uses less than 256 colors,
+                                        Guacamole will always send that update as a 256-color
+                                        PNG.</p>
+                                </td></tr><tr><td><em class="parameter"><code>width</code></em></td><td>
+                                    <p><a id="idm46420846608352" class="indexterm"></a>The width of the display to request, in pixels.
+                                        This parameter is optional. If this value is not specified,
+                                        the width of the connecting client display will be used
+                                        instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>height</code></em></td><td>
+                                    <p>The height of the display to request, in pixels. This
+                                        parameter is optional. If this value is not specified, the
+                                        height of the connecting client display will be used
+                                        instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>dpi</code></em></td><td>
+                                    <p><a id="idm46420846602496" class="indexterm"></a>The desired effective resolution of the client
+                                        display, in DPI. This parameter is optional. If this value
+                                        is not specified, the resolution and size of the client
+                                        display will be used together to determine, heuristically,
+                                        an appropriate resolution for the RDP session.</p>
+                                </td></tr><tr><td><em class="parameter"><code>resize-method</code></em></td><td>
+                                    <p><a id="idm46420846598784" class="indexterm"></a>The method to use to update the RDP server when
+                                        the width or height of the client display changes. This
+                                        parameter is optional. If this value is not specified, no
+                                        action will be taken when the client display changes
+                                        size.</p>
+                                    <p>Normally, the display size of an RDP session is constant
+                                        and can only be changed when initially connecting. As of RDP
+                                        8.1, the "Display Update" channel can be used to request
+                                        that the server change the display size. For older RDP
+                                        servers, the only option is to disconnect and reconnect with
+                                        the new size.</p>
+                                    <p>Possible values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">display-update</code></span></dt><dd><p>Uses the "Display Update" channel added with
+                                                  RDP 8.1 to signal the server when the client
+                                                  display size has changed.</p></dd><dt><span class="term"><code class="constant">reconnect</code></span></dt><dd><p>Automatically disconnects the RDP session when
+                                                  the client display size has changed, and
+                                                  reconnects with the new size.</p></dd></dl></div>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-recording"></a>Session recording</h4></div></div></div><p>RDP sessions can be recorded graphically. These recordings take the form of
+                    Guacamole protocol dumps and are recorded automatically to a specified
+                    directory. Recordings can be subsequently translated to a normal video stream
+                    using the <span class="command"><strong>guacenc</strong></span> utility provided with
+                    guacamole-server.</p><p>For example, to produce a video called "<em class="replaceable"><code>NAME</code></em>.m4v"
+                    from the recording "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guacenc <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong></pre></div><p>The <span class="command"><strong>guacenc</strong></span> utility has additional options for overriding
+                    default behavior, including tweaking the output format, which are documented in
+                    detail within the manpage:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>man guacenc</code></strong></pre></div><p>If recording of key events is explicitly enabled using the
+                        <em class="parameter"><code>recording-include-keys</code></em> parameter, recordings can also
+                    be translated into human-readable interpretations of the keys pressed during the
+                    session using the <span class="command"><strong>guaclog</strong></span> utility. The usage of
+                        <span class="command"><strong>guaclog</strong></span> is analogous to <span class="command"><strong>guacenc</strong></span>, and
+                    results in the creation of a new text file containing the interpreted
+                    events:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guaclog <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong><code class="computeroutput">
+guaclog: INFO: Guacamole input log interpreter (guaclog) version 1.1.0
+guaclog: INFO: 1 input file(s) provided.
+guaclog: INFO: Writing input events from "<em class="replaceable"><code>/path/to/recording/NAME</code></em>" to "<em class="replaceable"><code>/path/to/recording/NAME</code></em>.txt" ...
+guaclog: INFO: All files interpreted successfully.</code>
+<code class="prompt">$</code> </pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46420846572320" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>recording-path</code></em></td><td>
+                                    <p><a id="idm46420846564608" class="indexterm"></a>The directory in which screen recording files
+                                        should be created. <span class="emphasis"><em>If a graphical recording needs
+                                            to be created, then this parameter is
+                                            required.</em></span> Specifying this parameter enables
+                                        graphical screen recording. If this parameter is omitted, no
+                                        graphical recording will be created.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-recording-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will not
+                                        automatically be created, and attempts to create recordings
+                                        within a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-name</code></em></td><td>
+                                    <p>The filename to use for any created recordings.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, the value "recording" will be used instead.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-output</code></em></td><td>
+                                    <p>If set to "true", graphical output and other data normally
+                                        streamed from server to client will be excluded from the
+                                        recording, producing a recording which contains only user
+                                        input events. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, graphical output will
+                                        be included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-mouse</code></em></td><td>
+                                    <p>If set to "true", user mouse events will be excluded from
+                                        the recording, producing a recording which lacks a visible
+                                        mouse cursor. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, mouse events will be
+                                        included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-include-keys</code></em></td><td>
+                                    <p>If set to "true", user key events will be included in the
+                                        recording. The recording can subsequently be passed through
+                                        the <span class="command"><strong>guaclog</strong></span> utility to produce a
+                                        human-readable interpretation of the keys pressed during the
+                                        session. <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, key events will be not included in the
+                                        recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-device-redirection"></a>Device redirection</h4></div></div></div><p>Device redirection refers to the use of non-display devices over RDP.
+                    Guacamole's RDP support currently allows redirection of audio, printing, and
+                    disk access, some of which require additional configuration in order to function
+                    properly.</p><p>Audio redirection will be enabled by default. If Guacamole was correctly
+                    installed, and audio redirection is supported by your RDP server, sound should
+                    play within remote connections without manual intervention.</p><p>Printing requires <span class="application">GhostScript</span> to be installed on
+                    the Guacamole server, and allows users to print arbitrary documents directly to
+                    PDF. When documents are printed to the redirected printer, the user will receive
+                    a PDF of that document within their web browser.</p><p>Guacamole provides support for file transfer over RDP by emulating a virtual
+                    disk drive. This drive will persist on the Guacamole server, confined within the
+                    drive path specified. If drive redirection is enabled on a Guacamole SSH
+                    connection, users will be able to upload and download files as described in
+                        <a class="xref" href="using-guacamole.html" title="Chapter 15. Using Guacamole">Chapter 15, <em>Using Guacamole</em></a>.</p><div class="informaltable"><a id="idm46420846533344" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>disable-audio</code></em></td><td><a id="idm46420846525936" class="indexterm"></a><a id="idm46420846525152" class="indexterm"></a><a id="idm46420846524368" class="indexterm"></a>Audio is enabled by default in both the client and
+                                    in libguac-client-rdp. If you are concerned about bandwidth
+                                    usage, or sound is causing problems, you can explicitly disable
+                                    sound by setting this parameter to "true".</td></tr><tr><td><em class="parameter"><code>enable-audio-input</code></em></td><td>
+                                    <p><a id="idm46420846520960" class="indexterm"></a><a id="idm46420846520160" class="indexterm"></a><a id="idm46420846519360" class="indexterm"></a>If set to "true", audio input support
+                                        (microphone) will be enabled, leveraging the standard
+                                        "AUDIO_INPUT" channel of RDP. By default, audio input
+                                        support within RDP is disabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-printing</code></em></td><td>
+                                    <p><a id="idm46420846515776" class="indexterm"></a><a id="idm46420846514976" class="indexterm"></a><a id="idm46420846514176" class="indexterm"></a>Printing is disabled by default, but with
+                                        printing enabled, RDP users can print to a virtual printer
+                                        that sends a PDF containing the document printed to the
+                                        Guacamole client. Enable printing by setting this parameter
+                                        to "true".</p>
+                                    <p><span class="emphasis"><em>Printing support requires
+                                                <span class="application">GhostScript</span> to be
+                                            installed.</em></span> If
+                                            <span class="application">guacd</span> cannot find the
+                                            <code class="filename">gs</code> executable when printing, the
+                                        print attempt will fail.</p>
+                                </td></tr><tr><td><em class="parameter"><code>printer-name</code></em></td><td>
+                                    <p>The name of the redirected printer device that is passed
+                                        through to the RDP session.  This is the name that the user
+                                        will see in, for example, the Devices and Printers control
+                                        panel.</p>
+                                    <p>If printer redirection is not enabled, this option has no
+                                        effect.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-drive</code></em></td><td>
+                                    <p><a id="idm46420846505280" class="indexterm"></a><a id="idm46420846504480" class="indexterm"></a><a id="idm46420846503680" class="indexterm"></a>File transfer is disabled by default, but with
+                                        file transfer enabled, RDP users can transfer files to and
+                                        from a virtual drive which persists on the Guacamole server.
+                                        Enable file transfer support by setting this parameter to
+                                        "true".</p>
+                                    <p>Files will be stored in the directory specified by the
+                                            "<em class="parameter"><code>drive-path</code></em>" parameter, which is
+                                        required if file transfer is enabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>drive-name</code></em></td><td>
+                                    <p>The name of the filesystem used when passed through to
+                                        the RDP session.  This is the name that users will see in their
+                                        Computer/My Computer area along with client name (for example,
+                                        "Guacamole on Guacamole RDP"), and is also the name of the share
+                                        when accessing the special <code class="filename">\\tsclient</code>
+                                        network location.</p>
+                                    <p>If file transfer is not enabled, this parameter is
+                                        ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>drive-path</code></em></td><td>
+                                    <p>The directory on the Guacamole server in which transferred
+                                        files should be stored. This directory must be accessible by
+                                        guacd and both readable and writable by the user that runs
+                                        guacd. <span class="emphasis"><em>This parameter does not refer to a
+                                            directory on the RDP server.</em></span></p>
+                                    <p>If file transfer is not enabled, this parameter is
+                                        ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-drive-path</code></em></td><td>
+                                    <p>If set to "true", and file transfer is enabled, the
+                                        directory specified by the <em class="parameter"><code>drive-path</code></em>
+                                        parameter will automatically be created if it does not yet
+                                        exist. Only the final directory in the path will be created
+                                        - if other directories earlier in the path do not exist,
+                                        automatic creation will fail, and an error will be
+                                        logged.</p>
+                                    <p>By default, the directory specified by the
+                                            <em class="parameter"><code>drive-path</code></em> parameter will not
+                                        automatically be created, and attempts to transfer files to
+                                        a non-existent directory will be logged as errors.</p>
+                                    <p>If file transfer is not enabled, this parameter is
+                                        ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>console-audio</code></em></td><td>
+                                    <p><a id="idm46420846487536" class="indexterm"></a>If set to "true", audio will be explicitly
+                                        enabled in the console (admin) session of the RDP server.
+                                        Setting this option to "true" only makes sense if the
+                                            <em class="parameter"><code>console</code></em> parameter is also set to
+                                        "true".</p>
+                                </td></tr><tr><td><em class="parameter"><code>static-channels</code></em></td><td>
+                                    <p>A comma-separated list of static channel names to open and
+                                        expose as pipes. If you wish to communicate between an
+                                        application running on the remote desktop and JavaScript,
+                                        this is the best way to do it. Guacamole will open an
+                                        outbound pipe with the name of the static channel. If
+                                        JavaScript needs to communicate back in the other direction,
+                                        it should respond by opening another pipe with the same
+                                        name.</p>
+                                    <p>Guacamole allows any number of static channels to be
+                                        opened, but protocol restrictions of RDP limit the size of
+                                        each channel name to 7 characters.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-preconnection-pdu"></a>Preconnection PDU (Hyper-V)</h4></div></div></div><p><a id="idm46420846479552" class="indexterm"></a><a id="idm46420846478800" class="indexterm"></a>Some RDP servers host multiple logical RDP connections behind a
+                    single server listening on a single TCP port. To select between these logical
+                    connections, an RDP client must send the "preconnection PDU" - a message which
+                    contains values that uniquely identify the destination, referred to as the "RDP
+                    source". This mechanism is defined by the <a class="link" href="https://msdn.microsoft.com/en-us/library/cc242359.aspx" target="_top">"Session
+                        Selection Extension"</a> for the RDP protocol, and is implemented by
+                    Microsoft's Hyper-V hypervisor.</p><p>If you are using Hyper-V, you will need to specify the ID of the destination
+                    virtual machine within the <em class="parameter"><code>preconnection-blob</code></em> parameter.
+                    This value can be determined using PowerShell:</p><div class="informalexample"><pre class="screen"><code class="computeroutput"><code class="prompt">PS C:\&gt; </code></code><strong class="userinput"><code>Get-VM <em class="replaceable"><code>VirtualMachineName</code></em> | Select-Object Id
+</code></strong><code class="computeroutput">
+Id
+--
+ed272546-87bd-4db9-acba-e36e1a9ca20a
+
+
+<code class="prompt">PS C:\&gt; </code></code></pre></div><p>The preconnection PDU is intentionally generic. While its primary use is as a
+                    means for selecting virtual machines behind Hyper-V, other RDP servers may use
+                    it as well. It is up to the RDP server itself to determine whether the
+                    preconnection ID, BLOB, or both will be used, and what their values mean.</p><p>If you do intend to use Hyper-V, beware that its built-in RDP server uses
+                    slightly different parameters for both authentication and the port number, and
+                    Guacamole's defaults will not work. In most cases, you will need to do the
+                    following when connecting to Hyper-V:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Set "<em class="parameter"><code>port</code></em>" to "<code class="constant">2179</code>", as
+                            this is the default port used by Hyper-V. The standard RDP port is 3389,
+                            and Guacamole will use port 3389 unless a different value is
+                            specified.</p></li><li class="listitem"><p>Specify both "<em class="parameter"><code>username</code></em>" and
+                                "<em class="parameter"><code>password</code></em>" appropriately, and set
+                                "<em class="parameter"><code>security</code></em>" to "<code class="constant">nla</code>" or
+                                "<code class="constant">any</code>". Hyper-V requires Network Level
+                            Authentication from connecting clients. Guacamole's default is to use
+                            standard RDP encryption without Network Level Authentication, which
+                            Hyper-V does not support.</p></li><li class="listitem"><p>If necessary, set "<em class="parameter"><code>ignore-cert</code></em>" to
+                                "<code class="constant">true</code>". Hyper-V may use a self-signed
+                            certificate.</p></li></ol></div><div class="informaltable"><a id="idm46420846462768" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>preconnection-id</code></em></td><td>
+                                    <p><a id="idm46420846455056" class="indexterm"></a>The numeric ID of the RDP source. This is a
+                                        non-negative integer value dictating which of potentially
+                                        several logical RDP connections should be used. This
+                                        parameter is optional, and is only required if the RDP
+                                        server is documented as requiring it. <span class="emphasis"><em>If using
+                                            Hyper-V, this should be left blank.</em></span></p>
+                                </td></tr><tr><td><em class="parameter"><code>preconnection-blob</code></em></td><td>
+                                    <p><a id="idm46420846451472" class="indexterm"></a><a id="idm46420846450672" class="indexterm"></a>An arbitrary string which identifies the RDP
+                                        source - one of potentially several logical RDP connections
+                                        hosted by the same RDP server. This parameter is optional,
+                                        and is only required if the RDP server is documented as
+                                        requiring it, such as Hyper-V. In all cases, the meaning of
+                                        this parameter is opaque to the RDP protocol itself and is
+                                        dictated by the RDP server. <span class="emphasis"><em>For Hyper-V, this will
+                                            be the ID of the destination virtual
+                                        machine.</em></span></p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-gateway"></a>Remote desktop gateway</h4></div></div></div><p><a id="idm46420846446288" class="indexterm"></a><a id="idm46420846445536" class="indexterm"></a>Microsoft's remote desktop server provides an additional gateway
+                    service which allows external connections to be forwarded to internal RDP
+                    servers which are otherwise not accessible. If you will be using Guacamole to
+                    connect through such a gateway, you will need to provide additional parameters
+                    describing the connection to that gateway, as well as any required
+                    credentials.</p><div class="informaltable"><a id="idm46420846443440" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>gateway-hostname</code></em></td><td>
+                                    <p><a id="idm46420846435728" class="indexterm"></a>The hostname of the remote desktop gateway that
+                                        should be used as an intermediary for the remote desktop
+                                        connection. <span class="emphasis"><em>If omitted, a gateway will not be
+                                            used.</em></span></p>
+                                </td></tr><tr><td><em class="parameter"><code>gateway-port</code></em></td><td>
+                                    <p><a id="idm46420846432384" class="indexterm"></a>The port of the remote desktop gateway that
+                                        should be used as an intermediary for the remote desktop
+                                        connection. By default, this will be "443".</p>
+                                </td></tr><tr><td><em class="parameter"><code>gateway-username</code></em></td><td>
+                                    <p><a id="idm46420846429360" class="indexterm"></a>The username of the user authenticating with the
+                                        remote desktop gateway, if a gateway is being used. This is
+                                        not necessarily the same as the user actually using the
+                                        remote desktop connection.</p>
+                                </td></tr><tr><td><em class="parameter"><code>gateway-password</code></em></td><td>
+                                    <p><a id="idm46420846426256" class="indexterm"></a>The password to provide when authenticating with
+                                        the remote desktop gateway, if a gateway is being
+                                        used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>gateway-domain</code></em></td><td>
+                                    <p><a id="idm46420846423264" class="indexterm"></a>The domain of the user authenticating with the
+                                        remote desktop gateway, if a gateway is being used. This is
+                                        not necessarily the same domain as the user actually using
+                                        the remote desktop connection.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-connection-broker"></a>Load balancing and RDP connection brokers</h4></div></div></div><p><a id="idm46420846419568" class="indexterm"></a><a id="idm46420846418816" class="indexterm"></a>If your remote desktop servers are behind a load balancer, sometimes
+                    referred to as a "connection broker" or "TS session broker", that balancer may
+                    require additional information during the connection process to determine how
+                    the incoming connection should be routed. RDP does not dictate the format of
+                    this information; it is specific to the balancer in use.</p><p>If you are using a load balancer and are unsure whether such information is
+                    required, <span class="emphasis"><em>you will need to check the documentation for your
+                        balancer</em></span>. If your balancer provides <code class="filename">.rdp</code>
+                    files for convenience, look through the contents of those files for a string
+                    field called "loadbalanceinfo", as that field is where the required
+                    information/cookie would be specified.</p><div class="informaltable"><a id="idm46420846415024" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>load-balance-info</code></em></td><td>
+                                    <p><a id="idm46420846407312" class="indexterm"></a>The load balancing information or cookie which
+                                        should be provided to the connection broker. <span class="emphasis"><em>If no
+                                            connection broker is being used, this should be left
+                                            blank.</em></span></p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-sftp"></a>RDP + SFTP</h4></div></div></div><p>Guacamole can provide file transfer over SFTP even when the remote desktop is
+                    otherwise being accessed through RDP and not SSH. If SFTP is enabled on a
+                    Guacamole RDP connection, users will be able to upload and download files as
+                    described in <a class="xref" href="using-guacamole.html" title="Chapter 15. Using Guacamole">Chapter 15, <em>Using Guacamole</em></a>.</p><p>This support is independent of the file transfer implemented through RDP's own
+                    "drive redirection" (RDPDR), and is particularly useful for RDP servers which do
+                    not support RDPDR.</p><div class="informaltable"><a id="idm46420846401024" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>enable-sftp</code></em></td><td>
+                                    <p><a id="idm46420846393312" class="indexterm"></a><a id="idm46420846392032" class="indexterm"></a>Whether file transfer should be enabled. If set
+                                        to "true", the user will be allowed to upload or download
+                                        files from the specified server using SFTP. If omitted, SFTP
+                                        will be disabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-hostname</code></em></td><td>
+                                    <p>The hostname or IP address of the server hosting SFTP.
+                                        This parameter is optional. If omitted, the hostname of the
+                                        RDP server specified with the
+                                            <em class="parameter"><code>hostname</code></em> parameter will be
+                                        used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-port</code></em></td><td>
+                                    <p>The port the SSH server providing SFTP is listening on,
+                                        usually 22. This parameter is optional. If omitted, the
+                                        standard port of 22 will be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-host-key</code></em></td><td>
+                                    <p>The known hosts entry for the SFTP server.  This
+                                        parameter is optional, and, if not provided, no verification
+                                        of SFTP host identity will be done.  If the parameter is
+                                        provided the identity of the server will be checked
+                                        against the data.</p>
+                                    <p>The format of this parameter is that of a single entry
+                                        from an OpenSSH <code class="filename">known_hosts</code> file.</p>
+                                    <p>For more information, please see <a class="xref" href="configuring-guacamole.html#ssh-host-verification" title="SSH Host Verification">the section called “SSH Host Verification”</a>.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-username</code></em></td><td>
+                                    <p>The username to authenticate as when connecting to the
+                                        specified SSH server for SFTP. This parameter is optional if
+                                        a username is specified for the RDP connection. If omitted,
+                                        the value provided for the <em class="parameter"><code>username</code></em>
+                                        parameter will be use.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-password</code></em></td><td>
+                                    <p>The password to use when authenticating with the specified
+                                        SSH server for SFTP.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-private-key</code></em></td><td>
+                                    <p>The entire contents of the private key to use for public
+                                        key authentication. If this parameter is not specified,
+                                        public key authentication will not be used. The private key
+                                        must be in OpenSSH format, as would be generated by the
+                                        OpenSSH <span class="command"><strong>ssh-keygen</strong></span> utility.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-passphrase</code></em></td><td>
+                                    <p>The passphrase to use to decrypt the private key for use
+                                        in public key authentication. This parameter is not needed
+                                        if the private key does not require a passphrase.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-directory</code></em></td><td>
+                                    <p>The directory to upload files to if they are simply
+                                        dragged and dropped, and thus otherwise lack a specific
+                                        upload location. This parameter is optional. If omitted, the
+                                        default upload location of the SSH server providing SFTP
+                                        will be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-root-directory</code></em></td><td>
+                                    <p>The directory to expose to connected users via Guacamole's
+                                            <a class="link" href="using-guacamole.html#file-browser" title="Using the file browser">file browser</a>. If omitted,
+                                        the root directory will be used by default.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-server-alive-interval</code></em></td><td>
+                                    <p>The interval in seconds at which to send keepalive
+                                    packets to the SSH server for the SFTP connection.  This
+                                    parameter is optional.  If omitted, the default of 0 will be
+                                    used, disabling sending keepalive packets.  The minimum
+                                    value is 2.
+                                    </p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-perf-flags"></a>Performance flags</h4></div></div></div><p>RDP provides several flags which control the availability of features that
+                    decrease performance and increase bandwidth for the sake of aesthetics, such as
+                    wallpaper, window theming, menu effects, and smooth fonts. These features are
+                    all disabled by default within Guacamole such that bandwidth usage is minimized,
+                    but you can manually re-enable them on a per-connection basis if desired.</p><div class="informaltable"><a id="idm46420846359728" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>enable-wallpaper</code></em></td><td>
+                                    <p><a id="idm46420846352016" class="indexterm"></a>If set to "true", enables rendering of the
+                                        desktop wallpaper. By default, wallpaper will be disabled,
+                                        such that unnecessary bandwidth need not be spent redrawing
+                                        the desktop.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-theming</code></em></td><td>
+                                    <p><a id="idm46420846348448" class="indexterm"></a>If set to "true", enables use of theming of
+                                        windows and controls. By default, theming within RDP
+                                        sessions is disabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-font-smoothing</code></em></td><td>
+                                    <p><a id="idm46420846344976" class="indexterm"></a><a id="idm46420846343696" class="indexterm"></a>If set to "true", text will be rendered with
+                                        smooth edges. Text over RDP is rendered with rough edges by
+                                        default, as this reduces the number of colors used by text,
+                                        and thus reduces the bandwidth required for the
+                                        connection.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-full-window-drag</code></em></td><td>
+                                    <p><a id="idm46420846340032" class="indexterm"></a>If set to "true", the contents of windows will
+                                        be displayed as windows are moved. By default, the RDP
+                                        server will only draw the window border while windows are
+                                        being dragged.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-desktop-composition</code></em></td><td>
+                                    <p><a id="idm46420846336448" class="indexterm"></a><a id="idm46420846335168" class="indexterm"></a>If set to "true", graphical effects such as
+                                        transparent windows and shadows will be allowed. By default,
+                                        such effects, if available, are disabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-menu-animations</code></em></td><td>
+                                    <p><a id="idm46420846331664" class="indexterm"></a>If set to "true", menu open and close animations
+                                        will be allowed. Menu animations are disabled by
+                                        default.</p>
+                                </td></tr><tr><td><em class="parameter"><code>disable-bitmap-caching</code></em></td><td>
+                                    <p><a id="idm46420846328192" class="indexterm"></a>In certain situations, particularly with RDP server
+                                        implementations with known bugs, it is necessary to disable
+                                        RDP's built-in bitmap caching functionality.  This parameter
+                                        allows that to be controlled in a Guacamole session.  If set to
+                                        "true" the RDP bitmap cache will not be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>disable-offscreen-caching</code></em></td><td>
+                                    <p><a id="idm46420846324448" class="indexterm"></a>RDP normally maintains caches of regions of the screen
+                                        that are current not visible in the client in order to accelerate
+                                        retrieval of those regions when they come into view.  This parameter,
+                                        when set to "true," will disable caching of those regions.  This is
+                                        usually only useful when dealing with known bugs in RDP server
+                                        implementations and should remain enabled in most circumstances.</p>
+                                </td></tr><tr><td><em class="parameter"><code>disable-glyph-caching</code></em></td><td>
+                                    <p><a id="idm46420846320560" class="indexterm"></a>In addition to screen regions, RDP maintains caches of
+                                        frequently used symbols or fonts, collectively known as "glyphs."  As
+                                        with bitmap and offscreen caching, certain known bugs in RDP implementations
+                                        can cause performance issues with this enabled, and setting this parameter
+                                        to "true" will disable that glyph caching in the RDP session.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-remoteapp"></a>RemoteApp</h4></div></div></div><p>Recent versions of Windows provide a feature called RemoteApp which allows
+                    individual applications to be used over RDP, without providing access to the
+                    full desktop environment. If your RDP server has this feature enabled and
+                    configured, you can configure Guacamole connections to use those individual
+                    applications.</p><div class="informaltable"><a id="idm46420846314976" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>remote-app</code></em></td><td>
+                                    <p><a id="idm46420846307264" class="indexterm"></a>Specifies the RemoteApp to start on the remote
+                                        desktop. If supported by your remote desktop server, this
+                                        application, and only this application, will be visible to
+                                        the user.</p>
+                                    <p>Windows requires a special notation for the names of
+                                        remote applications. The names of remote applications must
+                                        be prefixed with two vertical bars. For example, if you have
+                                        created a remote application on your server for
+                                            <code class="filename">notepad.exe</code> and have assigned it
+                                        the name "notepad", you would set this parameter to:
+                                        "||notepad".</p>
+                                </td></tr><tr><td><em class="parameter"><code>remote-app-dir</code></em></td><td>
+                                    <p>The working directory, if any, for the remote application.
+                                        This parameter has no effect if RemoteApp is not in
+                                        use.</p>
+                                </td></tr><tr><td><em class="parameter"><code>remote-app-args</code></em></td><td>
+                                    <p>The command-line arguments, if any, for the remote
+                                        application. This parameter has no effect if RemoteApp is
+                                        not in use.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="adding-rdp"></a>Adding an RDP connection</h4></div></div></div><a id="idm46420846297856" class="indexterm"></a><p>If you are using the default authentication built into Guacamole, and you wish
+                    to grant access to a RDP connection to a particular user, you need to locate the
+                        <code class="code">&lt;authorize&gt;</code> section for that user within your
+                        <code class="filename">user-mapping.xml</code>, and add a section like the following
+                    within it:</p><pre class="programlisting">&lt;connection name="<em class="replaceable"><code>Unique Name</code></em>"&gt;
+    &lt;protocol&gt;rdp&lt;/protocol&gt;
+    &lt;param name="hostname"&gt;<em class="replaceable"><code>localhost</code></em>&lt;/param&gt;
+    &lt;param name="port"&gt;<em class="replaceable"><code>3389</code></em>&lt;/param&gt;
+&lt;/connection&gt;</pre><p>If added exactly as above, a new connection named "<em class="replaceable"><code>Unique
+                        Name</code></em>" will be available to the user associated with the
+                        <code class="code">&lt;authorize&gt;</code> section containing it. The connection will use
+                    RDP to connect to <em class="replaceable"><code>localhost</code></em> at port
+                        <em class="replaceable"><code>3389</code></em>. Naturally, you will want to change some or
+                    all of these values.</p><p>If you want to login automatically rather than receive a login prompt upon
+                    connecting, you can specify a username and password with additional
+                        <code class="code">&lt;param&gt;</code> tags. Other options are available for controlling
+                    the color depth, size of the screen, etc.</p><p>Other authentication methods will provide documentation describing how to
+                    configure new connections. If the authentication method in use fully implements
+                    the features of Guacamole's authentication API, you will be able to add a new
+                    RDP connection easily and intuitively using the administration interface built
+                    into Guacamole. You will not need to edit configuration files.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="ssh"></a>SSH</h3></div></div></div><a id="idm46420846287056" class="indexterm"></a><p>Unlike VNC or RDP, SSH is a text protocol. Its implementation in Guacamole is
+                actually a combination of a terminal emulator and SSH client, because the SSH
+                protocol isn't inherently graphical. Guacamole's SSH support emulates a terminal on
+                the server side, and draws the screen of this terminal remotely on the
+                client.</p><p>SSH support for Guacamole is provided by the <span class="package">libguac-client-ssh</span>
+                library, which will be installed as part of guacamole-server if the required
+                dependencies are present during the build.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-host-verification"></a>SSH Host Verification</h4></div></div></div><p>By default, Guacamole does not do any verification of host identity before
+                    establishing SSH connections.  While this may be safe for private and trusted
+                    networks, it is not ideal for large networks with unknown/untrusted systems,
+                    or for SSH connections that traverse the Internet.  The potential exists for
+                    Man-in-the-Middle (MitM) attacks when connecting to these hosts.</p><p>Guacamole includes two methods for verifying SSH (and SFTP) server identity
+                    that can be used to make sure that the host you are connecting to is a host
+                    that you know and trust.  The first method is by reading a file in
+                    <code class="varname">GUACAMOLE_HOME</code> called <code class="filename">ssh_known_hosts</code>.
+                    This file should be in the format of a standard OpenSSH known_hosts file.
+                    If the file is not present, no verification is done.  If the file is present,
+                    it is read in at connection time and remote host identities are verified
+                    against the keys present in the file.</p><p>The second method for verifying host identity is by passing a connection
+                    parameter that contains an OpenSSH known hosts entry for that specific host.
+                    The <em class="parameter"><code>host-key</code></em> parameter is used for SSH connections, 
+                    while the SFTP connections associated with RDP and VNC use the
+                    <em class="parameter"><code>sftp-host-key</code></em> parameter.  If these parameters are
+                    not present on their respective connections no host identity verification
+                    is performed.  If the parameter is present then the identity of the remote
+                    host is verified against the identity provided in the parameter before a
+                    connection is established.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-network-parameters"></a>Network parameters</h4></div></div></div><p>SSH connections require a hostname or IP address defining the destination
+                    machine. SSH is standardized to use port 22 and this will be the proper value in
+                    most cases. You only need to specify the SSH port if you are not using the
+                    standard port.</p><div class="informaltable"><a id="idm46420846275728" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>hostname</code></em></td><td>
+                                    <p><a id="idm46420846268016" class="indexterm"></a>The hostname or IP address of the SSH server
+                                        Guacamole should connect to.</p>
+                                </td></tr><tr><td><em class="parameter"><code>port</code></em></td><td>
+                                    <p><a id="idm46420846264624" class="indexterm"></a>The port the SSH server is listening on, usually
+                                        22. This parameter is optional. If this is not specified,
+                                        the default of 22 will be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>host-key</code></em></td><td>
+                                    <p><a id="idm46420846261120" class="indexterm"></a>The known hosts entry for the SSH server.  This
+                                            parameter is optional, and, if not provided, no verification
+                                            of host identity will be done.  If the parameter is
+                                            provided the identity of the server will be checked
+                                            against the data.</p>
+                                    <p>The format of this parameter is that of a single entry from
+                                        an OpenSSH <code class="filename">known_hosts</code> file.</p>
+                                    <p>For more information, please see <a class="xref" href="configuring-guacamole.html#ssh-host-verification" title="SSH Host Verification">the section called “SSH Host Verification”</a>.</p>
+                                </td></tr><tr><td><em class="parameter"><code>server-alive-interval</code></em></td><td>
+                                    <p>
+                                        <a id="idm46420846255200" class="indexterm"></a>
+                                        By default the SSH client does not send keepalive requests
+                                        to the server.  This parameter allows you to configure the
+                                        the interval in seconds at which the client connection
+                                        sends keepalive packets to the server.  The default is 0,
+                                        which disables sending the packets.  The minimum value
+                                        is 2.
+                                    </p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-authentication"></a>Authentication</h4></div></div></div><p>SSH provides authentication through passwords and public key
+                    authentication, and also supports the NONE method.</p><p>SSH NONE authentication is seen occasionally in appliances
+                    and items like network or SAN fabric switches.  Generally
+                    for this authentication method you need only provide a
+                    username.</p><p>For Guacamole to use public key authentication, it must have access to your
+                    private key and, if applicable, its passphrase. If the private key requires a
+                    passphrase, but no passphrase is provided, you will be prompted for the
+                    passphrase upon connecting.</p><p>If no private key is provided, Guacamole will attempt to authenticate using a
+                    password, reading that password from the connection parameters, if provided, or
+                    by prompting the user directly.</p><div class="informaltable"><a id="idm46420846248256" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>username</code></em></td><td>
+                                    <p><a id="idm46420846240544" class="indexterm"></a>The username to use to authenticate, if any.
+                                        This parameter is optional. If not specified, you will be
+                                        prompted for the username upon connecting.</p>
+                                </td></tr><tr><td><em class="parameter"><code>password</code></em></td><td>
+                                    <p><a id="idm46420846237040" class="indexterm"></a>The password to use when attempting
+                                        authentication, if any. This parameter is optional. If not
+                                        specified, you will be prompted for your password upon
+                                        connecting.</p>
+                                </td></tr><tr><td><em class="parameter"><code>private-key</code></em></td><td>
+                                    <p><a id="idm46420846233472" class="indexterm"></a>The entire contents of the private key to use
+                                        for public key authentication. If this parameter is not
+                                        specified, public key authentication will not be used. The
+                                        private key must be in OpenSSH format, as would be generated
+                                        by the OpenSSH <span class="command"><strong>ssh-keygen</strong></span> utility.</p>
+                                </td></tr><tr><td><em class="parameter"><code>passphrase</code></em></td><td>
+                                    <p><a id="idm46420846229328" class="indexterm"></a>The passphrase to use to decrypt the private key
+                                        for use in public key authentication. This parameter is not
+                                        needed if the private key does not require a passphrase. If
+                                        the private key requires a passphrase, but this parameter is
+                                        not provided, the user will be prompted for the passphrase
+                                        upon connecting.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-display-settings"></a>Display settings</h4></div></div></div><p>Guacamole's SSH support provides a display, but not in the same sense as a
+                    remote desktop protocol like VNC or RDP. The display is a terminal emulator, and
+                    thus provides options for configuring the font used and its size. In this case,
+                        <span class="emphasis"><em>the chosen font must be installed on the server</em></span>, as it
+                    is the server that will handle rendering of characters to the terminal display,
+                    not the client.</p><div class="informaltable"><a id="idm46420846223216" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>color-scheme</code></em></td><td>
+                                    <p><a id="idm46420846215504" class="indexterm"></a>The color scheme to use for the terminal
+                                        emulator used by SSH connections. It consists of a
+                                        semicolon-separated series of name-value pairs. Each
+                                        name-value pair is separated by a colon and assigns a
+                                        value to a color in the terminal emulator palette. For
+                                        example, to use blue text on white background by default,
+                                        and change the red color to a purple shade, you would
+                                        specify:</p>
+                                    <div class="informalexample"><pre class="programlisting">foreground: rgb:00/00/ff;
+background: rgb:ff/ff/ff;
+color9: rgb:80/00/80</pre></div>
+                                    <p>This format is similar to the color configuration format
+                                        used by Xterm, so Xterm color configurations can be easily
+                                        adapted for Guacamole. This parameter is optional. If not
+                                        specified, Guacamole will render text as gray over a black
+                                        background.</p>
+                                    <p>Possible color names are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">foreground</code></span></dt><dd><p>Set the default foreground color.</p></dd><dt><span class="term"><code class="constant">background</code></span></dt><dd><p>Set the default background color.</p></dd><dt><span class="term"><code class="constant">color&lt;n&gt;</code></span></dt><dd><p>Set the color at index <code class="code">&lt;n&gt;</code>
+                                                    on the Xterm 256-color palette. For example,
+                                                    <code class="code">color9</code> refers to the red color.
+                                                    </p></dd></dl></div>
+                                    <p>Possible color values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">rgb:RR/GG/BB</code></span></dt><dd><p>Use the specified color in RGB format, with
+                                                    each component in hexadecimal. For example,
+                                                    <code class="code">rgb:ff/00/00</code> specifies the color
+                                                    red. Note that each hexadecimal component can be
+                                                    one to four digits, but the effective values are
+                                                    always zero-extended or truncated to two digits;
+                                                    for example, <code class="code">rgb:f/8/0</code>,
+                                                    <code class="code">rgb:f0/80/00</code>, and
+                                                    <code class="code">rgb:f0f/808/00f</code> all refer to the
+                                                    same effective color.</p></dd><dt><span class="term"><code class="constant">color&lt;n&gt;</code></span></dt><dd><p>Use the color currently assigned to index
+                                                    <code class="code">&lt;n&gt;</code> on the Xterm 256-color
+                                                    palette. For example, <code class="code">color9</code>
+                                                    specifies the current red color. Note that the
+                                                    color value is used rather than the color
+                                                    reference, so if <code class="code">color9</code> is changed
+                                                    later in the color scheme configuration, that
+                                                    new color will not be reflected in this
+                                                    assignment.</p></dd></dl></div>
+                                    <p>For backward compatibility, Guacamole will also accept
+                                        four special values as the color scheme parameter:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">black-white</code></span></dt><dd><p>Black text over a white background.</p></dd><dt><span class="term"><code class="constant">gray-black</code></span></dt><dd><p>Gray text over a black background. This is the
+                                                  default color scheme.</p></dd><dt><span class="term"><code class="constant">green-black</code></span></dt><dd><p>Green text over a black background.</p></dd><dt><span class="term"><code class="constant">white-black</code></span></dt><dd><p>White text over a black background.</p></dd></dl></div>
+                                </td></tr><tr><td><em class="parameter"><code>font-name</code></em></td><td>
+                                    <p><a id="idm46420846181936" class="indexterm"></a>The name of the font to use. This parameter is
+                                        optional. If not specified, the default of "monospace" will
+                                        be used instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>font-size</code></em></td><td>
+                                    <p>The size of the font to use, in points. This parameter is
+                                        optional. If not specified, the default of 12 will be used
+                                        instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>scrollback</code></em></td><td>
+                                    <p>The maximum number of rows to allow within the terminal
+                                        scrollback buffer. This parameter is optional. If not
+                                        specified, the scrollback buffer will be limited to a
+                                        maximum of 1000 rows.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-command"></a>Running a command (instead of a shell)</h4></div></div></div><p>By default, SSH sessions will start an interactive shell. The shell which will
+                    be used is determined by the SSH server, normally by reading the user's default
+                    shell previously set with <span class="command"><strong>chsh</strong></span> or within
+                        <code class="filename">/etc/passwd</code>. If you wish to override this and instead
+                    run a specific command, you can do so by specifying that command in the
+                    configuration of the Guacamole SSH connection.</p><div class="informaltable"><a id="idm46420846171120" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>command</code></em></td><td>
+                                    <p><a id="idm46420846163408" class="indexterm"></a>The command to execute over the SSH session, if
+                                        any. This parameter is optional. If not specified, the SSH
+                                        session will use the user's default shell.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420846160592"></a>Internationalization/Locale settings</h4></div></div></div><p>The language of the session is normally set by the SSH server. If the SSH
+                    server allows the relevant environment variable to be set, the language can be
+                    overridden on a per-connection basis.</p><div class="informaltable"><a id="idm46420846158624" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>locale</code></em></td><td>
+                                    <p><a id="idm46420846150912" class="indexterm"></a>The specific locale to request for the SSH
+                                        session. This parameter is optional and may be any value
+                                        accepted by the <code class="envar">LANG</code> environment variable of
+                                        the SSH server. If not specified, the SSH server's default
+                                        locale will be used.</p>
+                                    <p>As this parameter is sent to the SSH server using the
+                                            <code class="envar">LANG</code> environment variable, the parameter
+                                        will only have an effect if the SSH server allows the
+                                            <code class="envar">LANG</code> environment variable to be set by
+                                        SSH clients.</p>
+                                </td></tr><tr><td><em class="parameter"><code>timezone</code></em></td><td>
+                                    <p>
+                                        <a id="idm46420846144960" class="indexterm"></a>This parameter allows you
+                                        to control the timezone that is sent
+                                        to the server over the SSH connection,
+                                        which will change the way local time is
+                                        displayed on the server.</p>
+                                    <p>
+                                        The mechanism used to do this over SSH
+                                        connections is by setting the
+                                        <code class="envar">TZ</code> variable on the SSH
+                                        connection to the timezone specified by
+                                        this parameter.  This means that the SSH
+                                        server must allow the <code class="envar">TZ</code>
+                                        variable to be set/overriden - many SSH
+                                        server implementations have this disabled
+                                        by default.  To get this to work, you may
+                                        need to modify the configuration of the
+                                        SSH server and explicitly allow for
+                                        <code class="envar">TZ</code> to be set/overriden.
+                                    </p>
+                                    <p>
+                                        The available values of this parameter are
+                                        standard IANA key zone format timezones,
+                                        and the value will be sent directly to
+                                        the server in this format.
+                                    </p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-terminal-behavior"></a>Controlling terminal behavior</h4></div></div></div><p>In most cases, the default behavior for a terminal works without modification.
+                    However, when connecting to certain systems, particularly operating systems other
+                    than Linux, the terminal behavior may need to be tweaked to allow it to operate
+                    properly.  The settings in this section control that behavior.</p><div class="informaltable"><a id="idm46420846136080" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>backspace</code></em></td><td>
+                                    <p><a id="idm46420846128368" class="indexterm"></a>This parameter controls the ASCII code that
+                                        the backspace key sends to the remote system.  Under most
+                                        circumstances this should not need to be adjusted; however,
+                                        if, when pressing the backspace key, you see control characters
+                                        (often either ^? or ^H) instead of seeing the text erased,
+                                        you may need to adjust this parameter.  By default the terminal
+                                        sends ASCII code 127 (Delete) if this option is not set.</p>
+                                </td></tr><tr><td><em class="parameter"><code>terminal-type</code></em></td><td>
+                                    <p><a id="idm46420846124448" class="indexterm"></a>This parameter sets the terminal emulator type
+                                        string that is passed to the SSH server. This parameter is
+                                        optional. If not specified, "<code class="code">linux</code>"
+                                        is used as the terminal emulator type by default.</p>
+                                </td></tr></tbody></table></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="ssh-stdin-pipe"></a>Providing input directly from JavaScript</h5></div></div></div><p>If Guacamole is being used in part to automate an SSH session, it can be
+                        useful to provide input directly from JavaScript as a raw stream of data,
+                        rather than attempting to translate data into keystrokes. This can be done
+                        through opening a pipe stream named "STDIN" within the SSH connection using
+                        the <a class="link" href="../guacamole-common-js/Guacamole.Client.html#createPipeStream" target="_top"><code class="function">createPipeStream()</code></a> function of <a class="link" href="../guacamole-common-js/Guacamole.Client.html" target="_top"><code class="classname">Guacamole.Client</code></a>:</p><div class="informalexample"><pre class="programlisting">var outputStream = client.createPipeStream('text/plain', 'STDIN');</pre></div><p>The resulting <a class="link" href="../guacamole-common-js/Guacamole.OutputStream.html" target="_top"><code class="classname">Guacamole.OutputStream</code></a> can then be
+                        used to stream data directly to the input of the SSH session, as if typed by
+                        the user:</p><div class="informalexample"><pre class="programlisting">// Wrap output stream in writer
+var writer = new Guacamole.StringWriter(outputStream);
+
+// Send text
+writer.sendText("hello");
+
+// Send more text
+writer.sendText("world");
+
+// Close writer and stream
+writer.sendEnd();</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-typescripts"></a>Text session recording (typescripts)</h4></div></div></div><p>The full, raw text content of SSH sessions, including timing information, can
+                    be recorded automatically to a specified directory. This recording, also known
+                    as a "typescript", will be written to two files within the directory specified
+                    by <em class="parameter"><code>typescript-path</code></em>:
+                            <code class="filename"><em class="replaceable"><code>NAME</code></em></code>, which contains the
+                    raw text data, and <code class="filename"><em class="replaceable"><code>NAME</code></em>.timing</code>,
+                    which contains timing information, where <em class="replaceable"><code>NAME</code></em> is the
+                    value provided for the <em class="parameter"><code>typescript-name</code></em> parameter.</p><p>This format is compatible with the format used by the standard UNIX
+                        <span class="command"><strong>script</strong></span> command, and can be replayed using
+                        <span class="command"><strong>scriptreplay</strong></span> (if installed). For example, to replay a
+                    typescript called "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>scriptreplay <em class="replaceable"><code>NAME</code></em>.timing <em class="replaceable"><code>NAME</code></em></code></strong></pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46420846102160" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>typescript-path</code></em></td><td>
+                                    <p><a id="idm46420846094448" class="indexterm"></a><a id="idm46420846093168" class="indexterm"></a>The directory in which typescript files should
+                                        be created. <span class="emphasis"><em>If a typescript needs to be recorded,
+                                            this parameter is required.</em></span> Specifying this
+                                        parameter enables typescript recording. If this parameter is
+                                        omitted, no typescript will be recorded.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-typescript-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>typescript-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>typescript-path</code></em> parameter will
+                                        not automatically be created, and attempts to record
+                                        typescripts in a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if typescript recording
+                                        is enabled. If the <em class="parameter"><code>typescript-path</code></em> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>typescript-name</code></em></td><td>
+                                    <p>The base filename to use when determining the names for
+                                        the data and timing files of the typescript. <span class="emphasis"><em>This
+                                            parameter is optional.</em></span> If omitted, the value
+                                        "typescript" will be used instead.</p>
+                                    <p>Each typescript consists of two files which are created
+                                        within the directory specified by
+                                            <em class="parameter"><code>typescript-path</code></em>:
+                                                <code class="filename"><em class="replaceable"><code>NAME</code></em></code>,
+                                        which contains the raw text data, and
+                                                <code class="filename"><em class="replaceable"><code>NAME</code></em>.timing</code>,
+                                        which contains timing information, where
+                                            <em class="replaceable"><code>NAME</code></em> is the value provided
+                                        for the <em class="parameter"><code>typescript-name</code></em>
+                                        parameter.</p>
+                                    <p>This parameter only has an effect if typescript recording
+                                        is enabled. If the <em class="parameter"><code>typescript-path</code></em> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-recording"></a>Graphical session recording</h4></div></div></div><p>In addition to text-based recordings, SSH sessions can be recorded
+                    graphically. These recordings take the form of Guacamole protocol dumps and are
+                    recorded automatically to a specified directory. Recordings can be subsequently
+                    translated to a normal video stream using the <span class="command"><strong>guacenc</strong></span> utility
+                    provided with guacamole-server.</p><p>For example, to produce a video called "<em class="replaceable"><code>NAME</code></em>.m4v"
+                    from the recording "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guacenc <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong></pre></div><p>The <span class="command"><strong>guacenc</strong></span> utility has additional options for overriding
+                    default behavior, including tweaking the output format, which are documented in
+                    detail within the manpage:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>man guacenc</code></strong></pre></div><p>If recording of key events is explicitly enabled using the
+                        <em class="parameter"><code>recording-include-keys</code></em> parameter, recordings can also
+                    be translated into human-readable interpretations of the keys pressed during the
+                    session using the <span class="command"><strong>guaclog</strong></span> utility. The usage of
+                        <span class="command"><strong>guaclog</strong></span> is analogous to <span class="command"><strong>guacenc</strong></span>, and
+                    results in the creation of a new text file containing the interpreted
+                    events:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guaclog <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong><code class="computeroutput">
+guaclog: INFO: Guacamole input log interpreter (guaclog) version 1.1.0
+guaclog: INFO: 1 input file(s) provided.
+guaclog: INFO: Writing input events from "<em class="replaceable"><code>/path/to/recording/NAME</code></em>" to "<em class="replaceable"><code>/path/to/recording/NAME</code></em>.txt" ...
+guaclog: INFO: All files interpreted successfully.</code>
+<code class="prompt">$</code> </pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46420846059632" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>recording-path</code></em></td><td>
+                                    <p><a id="idm46420846051920" class="indexterm"></a>The directory in which screen recording files
+                                        should be created. <span class="emphasis"><em>If a graphical recording needs
+                                            to be created, then this parameter is
+                                            required.</em></span> Specifying this parameter enables
+                                        graphical screen recording. If this parameter is omitted, no
+                                        graphical recording will be created.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-recording-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will not
+                                        automatically be created, and attempts to create recordings
+                                        within a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-name</code></em></td><td>
+                                    <p>The filename to use for any created recordings.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, the value "recording" will be used instead.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-output</code></em></td><td>
+                                    <p>If set to "true", graphical output and other data normally
+                                        streamed from server to client will be excluded from the
+                                        recording, producing a recording which contains only user
+                                        input events. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, graphical output will
+                                        be included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-mouse</code></em></td><td>
+                                    <p>If set to "true", user mouse events will be excluded from
+                                        the recording, producing a recording which lacks a visible
+                                        mouse cursor. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, mouse events will be
+                                        included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-include-keys</code></em></td><td>
+                                    <p>If set to "true", user key events will be included in the
+                                        recording. The recording can subsequently be passed through
+                                        the <span class="command"><strong>guaclog</strong></span> utility to produce a
+                                        human-readable interpretation of the keys pressed during the
+                                        session. <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, key events will be not included in the
+                                        recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-sftp"></a>SFTP</h4></div></div></div><p>Guacamole provides support for file transfer over SSH using SFTP, the file
+                    transfer protocol built into most SSH servers. If SFTP is enabled on a Guacamole
+                    SSH connection, users will be able to upload and download files as described in
+                        <a class="xref" href="using-guacamole.html" title="Chapter 15. Using Guacamole">Chapter 15, <em>Using Guacamole</em></a>.</p><div class="informaltable"><a id="idm46420846023328" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>enable-sftp</code></em></td><td>
+                                    <p><a id="idm46420846015616" class="indexterm"></a><a id="idm46420846014336" class="indexterm"></a>Whether file transfer should be enabled. If set
+                                        to "true", the user will be allowed to upload or download
+                                        files from the SSH server using SFTP. Guacamole includes the
+                                            <span class="command"><strong>guacctl</strong></span> utility which controls file
+                                        downloads and uploads when run on the SSH server by the user
+                                        over the SSH connection.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-root-directory</code></em></td><td>
+                                    <p>The directory to expose to connected users via Guacamole's
+                                            <a class="link" href="using-guacamole.html#file-browser" title="Using the file browser">file browser</a>. If omitted,
+                                        the root directory will be used by default.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="adding-ssh"></a>Adding an SSH connection</h4></div></div></div><a id="idm46420846007152" class="indexterm"></a><p>If you are using the default authentication built into Guacamole, and you wish
+                    to grant access to a SSH connection to a particular user, you need to locate the
+                        <code class="code">&lt;authorize&gt;</code> section for that user within your
+                        <code class="filename">user-mapping.xml</code>, and add a section like the following
+                    within it:</p><pre class="programlisting">&lt;connection name="<em class="replaceable"><code>Unique Name</code></em>"&gt;
+    &lt;protocol&gt;ssh&lt;/protocol&gt;
+    &lt;param name="hostname"&gt;<em class="replaceable"><code>localhost</code></em>&lt;/param&gt;
+    &lt;param name="port"&gt;<em class="replaceable"><code>22</code></em>&lt;/param&gt;
+&lt;/connection&gt;</pre><p>If added exactly as above, a new connection named "<em class="replaceable"><code>Unique
+                        Name</code></em>" will be available to the user associated with the
+                        <code class="code">&lt;authorize&gt;</code> section containing it. The connection will use
+                    SSH to connect to <em class="replaceable"><code>localhost</code></em> at port
+                        <em class="replaceable"><code>22</code></em>. Naturally, you will want to change some or
+                    all of these values.</p><p>If you want to login automatically rather than receive a login prompt upon
+                    connecting, you can specify a username and password with additional
+                        <code class="code">&lt;param&gt;</code> tags. Other options are available for controlling
+                    the font.</p><p>Other authentication methods will provide documentation describing how to
+                    configure new connections.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="telnet"></a>Telnet</h3></div></div></div><a id="idm46420845996704" class="indexterm"></a><p>Telnet is a text protocol and provides similar functionality to SSH. By nature, it
+                is not encrypted, and does not provide support for file transfer. As far as graphics
+                are concerned, Guacamole's telnet support works in the same manner as SSH: it
+                emulates a terminal on the server side which renders to the Guacamole client's
+                display.</p><p>Telnet support for Guacamole is provided by the
+                    <span class="package">libguac-client-telnet</span> library, which will be installed as
+                part of guacamole-server if the required dependencies are present during the
+                build.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="telnet-network-parameters"></a>Network parameters</h4></div></div></div><p>Telnet connections require a hostname or IP address defining the destination
+                    machine. Telnet is standardized to use port 23 and this will be the proper value
+                    in most cases. You only need to specify the telnet port if you are not using the
+                    standard port.</p><div class="informaltable"><a id="idm46420845991392" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>hostname</code></em></td><td>
+                                    <p><a id="idm46420845983728" class="indexterm"></a>The hostname or IP address of the telnet server
+                                        Guacamole should connect to.</p>
+                                </td></tr><tr><td><em class="parameter"><code>port</code></em></td><td>
+                                    <p><a id="idm46420845980336" class="indexterm"></a>The port the telnet server is listening on,
+                                        usually 23. This parameter is optional. If this is not
+                                        specified, the default of 23 will be used.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="telnet-authentication"></a>Authentication</h4></div></div></div><p>Telnet does not actually provide any standard means of authentication.
+                    Authentication over telnet depends entirely on the login process running on the
+                    server and is interactive. To cope with this, Guacamole provides non-standard
+                    mechanisms for automatically passing the username and entering password. Whether
+                    these mechanisms work depends on specific login process used by your telnet
+                    server.</p><p>The de-facto method for passing the username automatically via telnet is to
+                    submit it via the <code class="envar">USER</code> environment variable, sent using the
+                        <code class="methodname">NEW-ENVIRON</code> option. This is the mechanism used by
+                    most telnet clients, typically via the <code class="option">-l</code> command-line
+                    option.</p><p>Passwords cannot typically be sent automatically - at least not as reliably as
+                    the username. There is no <code class="envar">PASSWORD</code> environment variable (this
+                    would actually be a horrible idea) nor any similar mechanism for passing the
+                    password to the telnet login process, and most telnet clients provide no
+                    built-in support for automatically entering the password. The best that can be
+                    done is to heuristically detect the password prompt, and type the password on
+                    behalf of the user when the prompt appears. The prescribed method for doing this
+                    with a traditional command-line telnet is to use a utility like
+                        <span class="command"><strong>expect</strong></span>. Guacamole provides similar functionality by
+                    searching for the password prompt with a regular expression.</p><p>If Guacamole receives a line of text which matches the regular expression, the
+                    password is automatically sent. If no such line is ever received, the password
+                    is not sent, and the user must type the password manually. Pressing any key
+                    during this process cancels the heuristic password prompt detection.</p><p>If the password prompt is not being detected properly, you can try using your
+                    own regular expression by specifying it within the
+                        <em class="parameter"><code>password-regex</code></em> parameter. The regular expression must
+                    be written in the POSIX ERE dialect (the dialect typically used by
+                        <span class="command"><strong>egrep</strong></span>).</p><div class="informaltable"><a id="idm46420845968912" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>username</code></em></td><td>
+                                    <p><a id="idm46420845961200" class="indexterm"></a>The username to use to authenticate, if any.
+                                        This parameter is optional. If not specified, or not
+                                        supported by the telnet server, the login process on the
+                                        telnet server will prompt you for your credentials. For this
+                                        to work, your telnet server must support the
+                                            <code class="methodname">NEW-ENVIRON</code> option, and the
+                                        telnet login process must pay attention to the
+                                            <code class="envar">USER</code> environment variable. Most telnet
+                                        servers satisfy this criteria.</p>
+                                </td></tr><tr><td><em class="parameter"><code>password</code></em></td><td>
+                                    <p><a id="idm46420845956336" class="indexterm"></a>The password to use when attempting
+                                        authentication, if any. This parameter is optional. If
+                                        specified, your password will be typed on your behalf when
+                                        the password prompt is detected.</p>
+                                </td></tr><tr><td><em class="parameter"><code>username-regex</code></em></td><td>
+                                    <p>The regular expression to use when waiting for the
+                                        username prompt. This parameter is optional. If not
+                                        specified, a reasonable default built into Guacamole will be
+                                        used. The regular expression must be written in the POSIX
+                                        ERE dialect (the dialect typically used by
+                                            <span class="command"><strong>egrep</strong></span>).</p>
+                                </td></tr><tr><td><em class="parameter"><code>password-regex</code></em></td><td>
+                                    <p>The regular expression to use when waiting for the
+                                        password prompt. This parameter is optional. If not
+                                        specified, a reasonable default built into Guacamole will be
+                                        used. The regular expression must be written in the POSIX
+                                        ERE dialect (the dialect typically used by
+                                            <span class="command"><strong>egrep</strong></span>).</p>
+                                </td></tr><tr><td><em class="parameter"><code>login-success-regex</code></em></td><td>
+                                    <p>The regular expression to use when detecting that the
+                                        login attempt has succeeded. This parameter is optional. If
+                                        specified, the terminal display will not be shown to the
+                                        user until text matching this regular expression has been
+                                        received from the telnet server. The regular expression must
+                                        be written in the POSIX ERE dialect (the dialect typically
+                                        used by <span class="command"><strong>egrep</strong></span>).</p>
+                                </td></tr><tr><td><em class="parameter"><code>login-failure-regex</code></em></td><td>
+                                    <p>The regular expression to use when detecting that the
+                                        login attempt has failed. This parameter is optional. If
+                                        specified, the connection will be closed with an explicit
+                                        login failure error if text matching this regular expression
+                                        has been received from the telnet server. The regular
+                                        expression must be written in the POSIX ERE dialect (the
+                                        dialect typically used by <span class="command"><strong>egrep</strong></span>).</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="telnet-display-settings"></a>Display settings</h4></div></div></div><p>Guacamole's telnet support provides a display, but not in the same sense as a
+                    remote desktop protocol like VNC or RDP. The display is a terminal emulator, and
+                    thus provides options for configuring the font used and its size. In this case,
+                        <span class="emphasis"><em>the chosen font must be installed on the server</em></span>, as it
+                    is the server that will handle rendering of characters to the terminal display,
+                    not the client.</p><div class="informaltable"><a id="idm46420845938512" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>color-scheme</code></em></td><td>
+                                    <p><a id="idm46420845930800" class="indexterm"></a>The color scheme to use for the terminal
+                                        emulator used by telnet connections. It consists of a
+                                        semicolon-separated series of name-value pairs. Each
+                                        name-value pair is separated by a colon and assigns a
+                                        value to a color in the terminal emulator palette. For
+                                        example, to use blue text on white background by default,
+                                        and change the red color to a purple shade, you would
+                                        specify:</p>
+                                    <div class="informalexample"><pre class="programlisting">foreground: rgb:00/00/ff;
+background: rgb:ff/ff/ff;
+color9: rgb:80/00/80</pre></div>
+                                    <p>This format is similar to the color configuration format
+                                        used by Xterm, so Xterm color configurations can be easily
+                                        adapted for Guacamole. This parameter is optional. If not
+                                        specified, Guacamole will render text as gray over a black
+                                        background.</p>
+                                    <p>Possible color names are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">foreground</code></span></dt><dd><p>Set the default foreground color.</p></dd><dt><span class="term"><code class="constant">background</code></span></dt><dd><p>Set the default background color.</p></dd><dt><span class="term"><code class="constant">color&lt;n&gt;</code></span></dt><dd><p>Set the color at index <code class="code">&lt;n&gt;</code>
+                                                    on the Xterm 256-color palette. For example,
+                                                    <code class="code">color9</code> refers to the red color.
+                                                    </p></dd></dl></div>
+                                    <p>Possible color values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">rgb:RR/GG/BB</code></span></dt><dd><p>Use the specified color in RGB format, with
+                                                    each component in hexadecimal. For example,
+                                                    <code class="code">rgb:ff/00/00</code> specifies the color
+                                                    red. Note that each hexadecimal component can be
+                                                    one to four digits, but the effective values are
+                                                    always zero-extended or truncated to two digits;
+                                                    for example, <code class="code">rgb:f/8/0</code>,
+                                                    <code class="code">rgb:f0/80/00</code>, and
+                                                    <code class="code">rgb:f0f/808/00f</code> all refer to the
+                                                    same effective color.</p></dd><dt><span class="term"><code class="constant">color&lt;n&gt;</code></span></dt><dd><p>Use the color currently assigned to index
+                                                    <code class="code">&lt;n&gt;</code> on the Xterm 256-color
+                                                    palette. For example, <code class="code">color9</code>
+                                                    specifies the current red color. Note that the
+                                                    color value is used rather than the color
+                                                    reference, so if <code class="code">color9</code> is changed
+                                                    later in the color scheme configuration, that
+                                                    new color will not be reflected in this
+                                                    assignment.</p></dd></dl></div>
+                                    <p>For backward compatibility, Guacamole will also accept
+                                        four special values as the color scheme parameter:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">black-white</code></span></dt><dd><p>Black text over a white background.</p></dd><dt><span class="term"><code class="constant">gray-black</code></span></dt><dd><p>Gray text over a black background. This is the
+                                                  default color scheme.</p></dd><dt><span class="term"><code class="constant">green-black</code></span></dt><dd><p>Green text over a black background.</p></dd><dt><span class="term"><code class="constant">white-black</code></span></dt><dd><p>White text over a black background.</p></dd></dl></div>
+                                </td></tr><tr><td><em class="parameter"><code>font-name</code></em></td><td>
+                                    <p><a id="idm46420845897232" class="indexterm"></a>The name of the font to use. This parameter is
+                                        optional. If not specified, the default of "monospace" will
+                                        be used instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>font-size</code></em></td><td>
+                                    <p>The size of the font to use, in points. This parameter is
+                                        optional. If not specified, the default of 12 will be used
+                                        instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>scrollback</code></em></td><td>
+                                    <p>The maximum number of rows to allow within the terminal
+                                        scrollback buffer. This parameter is optional. If not
+                                        specified, the scrollback buffer will be limited to a
+                                        maximum of 1000 rows.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="telnet-terminal-behavior"></a>Controlling terminal behavior</h4></div></div></div><p>In most cases, the default behavior for a terminal works without modification.
+                    However, when connecting to certain systems, particularly operating systems other
+                    than Linux, the terminal behavior may need to be tweaked to allow it to operate
+                    properly.  The settings in this section control that behavior.</p><div class="informaltable"><a id="idm46420845887408" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>backspace</code></em></td><td>
+                                    <p><a id="idm46420845879696" class="indexterm"></a>This parameter controls the ASCII code that
+                                        the backspace key sends to the remote system.  Under most
+                                        circumstances this should not need to be adjusted; however,
+                                        if, when pressing the backspace key, you see control characters
+                                        (often either ^? or ^H) instead of seeing the text erased,
+                                        you may need to adjust this parameter.  By default the terminal
+                                        sends ASCII code 127 (Delete) if this option is not set.</p>
+                                </td></tr><tr><td><em class="parameter"><code>terminal-type</code></em></td><td>
+                                    <p><a id="idm46420845875776" class="indexterm"></a>This parameter sets the terminal emulator type
+                                        string that is passed to the telnet server. This parameter
+                                        is optional. If not specified,
+                                        "<code class="code">linux</code>" is used as the terminal
+                                        emulator type by default.</p>
+                                </td></tr></tbody></table></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="telnet-stdin-pipe"></a>Providing input directly from JavaScript</h5></div></div></div><p>If Guacamole is being used in part to automate a telnet session, it can be
+                        useful to provide input directly from JavaScript as a raw stream of data,
+                        rather than attempting to translate data into keystrokes. This can be done
+                        through opening a pipe stream named "STDIN" within the telnet connection
+                        using the <a class="link" href="../guacamole-common-js/Guacamole.Client.html#createPipeStream" target="_top"><code class="function">createPipeStream()</code></a> function of <a class="link" href="../guacamole-common-js/Guacamole.Client.html" target="_top"><code class="classname">Guacamole.Client</code></a>:</p><div class="informalexample"><pre class="programlisting">var outputStream = client.createPipeStream('text/plain', 'STDIN');</pre></div><p>The resulting <a class="link" href="../guacamole-common-js/Guacamole.OutputStream.html" target="_top"><code class="classname">Guacamole.OutputStream</code></a> can then be
+                        used to stream data directly to the input of the telnet session, as if typed
+                        by the user:</p><div class="informalexample"><pre class="programlisting">// Wrap output stream in writer
+var writer = new Guacamole.StringWriter(outputStream);
+
+// Send text
+writer.sendText("hello");
+
+// Send more text
+writer.sendText("world");
+
+// Close writer and stream
+writer.sendEnd();</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="telnet-typescripts"></a>Text session recording (typescripts)</h4></div></div></div><p>The full, raw text content of telnet sessions, including timing information,
+                    can be recorded automatically to a specified directory. This recording, also
+                    known as a "typescript", will be written to two files within the directory
+                    specified by <em class="parameter"><code>typescript-path</code></em>:
+                            <code class="filename"><em class="replaceable"><code>NAME</code></em></code>, which contains the
+                    raw text data, and <code class="filename"><em class="replaceable"><code>NAME</code></em>.timing</code>,
+                    which contains timing information, where <em class="replaceable"><code>NAME</code></em> is the
+                    value provided for the <em class="parameter"><code>typescript-name</code></em> parameter.</p><p>This format is compatible with the format used by the standard UNIX
+                        <span class="command"><strong>script</strong></span> command, and can be replayed using
+                        <span class="command"><strong>scriptreplay</strong></span> (if installed). For example, to replay a
+                    typescript called "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>scriptreplay <em class="replaceable"><code>NAME</code></em>.timing <em class="replaceable"><code>NAME</code></em></code></strong></pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46420845853376" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>typescript-path</code></em></td><td>
+                                    <p><a id="idm46420845845664" class="indexterm"></a><a id="idm46420845844384" class="indexterm"></a>The directory in which typescript files should
+                                        be created. <span class="emphasis"><em>If a typescript needs to be recorded,
+                                            this parameter is required.</em></span> Specifying this
+                                        parameter enables typescript recording. If this parameter is
+                                        omitted, no typescript will be recorded.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-typescript-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>typescript-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>typescript-path</code></em> parameter will
+                                        not automatically be created, and attempts to record
+                                        typescripts in a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if typescript recording
+                                        is enabled. If the <em class="parameter"><code>typescript-path</code></em> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>typescript-name</code></em></td><td>
+                                    <p>The base filename to use when determining the names for
+                                        the data and timing files of the typescript. <span class="emphasis"><em>This
+                                            parameter is optional.</em></span> If omitted, the value
+                                        "typescript" will be used instead.</p>
+                                    <p>Each typescript consists of two files which are created
+                                        within the directory specified by
+                                            <em class="parameter"><code>typescript-path</code></em>:
+                                                <code class="filename"><em class="replaceable"><code>NAME</code></em></code>,
+                                        which contains the raw text data, and
+                                                <code class="filename"><em class="replaceable"><code>NAME</code></em>.timing</code>,
+                                        which contains timing information, where
+                                            <em class="replaceable"><code>NAME</code></em> is the value provided
+                                        for the <em class="parameter"><code>typescript-name</code></em>
+                                        parameter.</p>
+                                    <p>This parameter only has an effect if typescript recording
+                                        is enabled. If the <em class="parameter"><code>typescript-path</code></em> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="telnet-recording"></a>Graphical session recording</h4></div></div></div><p>In addition to text-based recordings, telnet sessions can be recorded
+                    graphically. These recordings take the form of Guacamole protocol dumps and are
+                    recorded automatically to a specified directory. Recordings can be subsequently
+                    translated to a normal video stream using the <span class="command"><strong>guacenc</strong></span> utility
+                    provided with guacamole-server.</p><p>For example, to produce a video called "<em class="replaceable"><code>NAME</code></em>.m4v"
+                    from the recording "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guacenc <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong></pre></div><p>The <span class="command"><strong>guacenc</strong></span> utility has additional options for overriding
+                    default behavior, including tweaking the output format, which are documented in
+                    detail within the manpage:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>man guacenc</code></strong></pre></div><p>If recording of key events is explicitly enabled using the
+                        <em class="parameter"><code>recording-include-keys</code></em> parameter, recordings can also
+                    be translated into human-readable interpretations of the keys pressed during the
+                    session using the <span class="command"><strong>guaclog</strong></span> utility. The usage of
+                        <span class="command"><strong>guaclog</strong></span> is analogous to <span class="command"><strong>guacenc</strong></span>, and
+                    results in the creation of a new text file containing the interpreted
+                    events:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guaclog <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong><code class="computeroutput">
+guaclog: INFO: Guacamole input log interpreter (guaclog) version 1.1.0
+guaclog: INFO: 1 input file(s) provided.
+guaclog: INFO: Writing input events from "<em class="replaceable"><code>/path/to/recording/NAME</code></em>" to "<em class="replaceable"><code>/path/to/recording/NAME</code></em>.txt" ...
+guaclog: INFO: All files interpreted successfully.</code>
+<code class="prompt">$</code> </pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46420845810848" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>recording-path</code></em></td><td>
+                                    <p><a id="idm46420845803136" class="indexterm"></a>The directory in which screen recording files
+                                        should be created. <span class="emphasis"><em>If a graphical recording needs
+                                            to be created, then this parameter is
+                                            required.</em></span> Specifying this parameter enables
+                                        graphical screen recording. If this parameter is omitted, no
+                                        graphical recording will be created.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-recording-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will not
+                                        automatically be created, and attempts to create recordings
+                                        within a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-name</code></em></td><td>
+                                    <p>The filename to use for any created recordings.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, the value "recording" will be used instead.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-output</code></em></td><td>
+                                    <p>If set to "true", graphical output and other data normally
+                                        streamed from server to client will be excluded from the
+                                        recording, producing a recording which contains only user
+                                        input events. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, graphical output will
+                                        be included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-mouse</code></em></td><td>
+                                    <p>If set to "true", user mouse events will be excluded from
+                                        the recording, producing a recording which lacks a visible
+                                        mouse cursor. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, mouse events will be
+                                        included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-include-keys</code></em></td><td>
+                                    <p>If set to "true", user key events will be included in the
+                                        recording. The recording can subsequently be passed through
+                                        the <span class="command"><strong>guaclog</strong></span> utility to produce a
+                                        human-readable interpretation of the keys pressed during the
+                                        session. <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, key events will be not included in the
+                                        recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="adding-telnet"></a>Adding a telnet connection</h4></div></div></div><a id="idm46420845776384" class="indexterm"></a><p>If you are using the default authentication built into Guacamole, and you wish
+                    to grant access to a telnet connection to a particular user, you need to locate
+                    the <code class="code">&lt;authorize&gt;</code> section for that user within your
+                        <code class="filename">user-mapping.xml</code>, and add a section like the following
+                    within it:</p><pre class="programlisting">&lt;connection name="<em class="replaceable"><code>Unique Name</code></em>"&gt;
+    &lt;protocol&gt;telnet&lt;/protocol&gt;
+    &lt;param name="hostname"&gt;<em class="replaceable"><code>localhost</code></em>&lt;/param&gt;
+    &lt;param name="port"&gt;<em class="replaceable"><code>23</code></em>&lt;/param&gt;
+&lt;/connection&gt;</pre><p>If added exactly as above, a new connection named "<em class="replaceable"><code>Unique
+                        Name</code></em>" will be available to the user associated with the
+                        <code class="code">&lt;authorize&gt;</code> section containing it. The connection will use
+                    telnet to connect to <em class="replaceable"><code>localhost</code></em> at port
+                        <em class="replaceable"><code>23</code></em>. Naturally, you will want to change some or
+                    all of these values.</p><p>As telnet is inherently insecure compared to SSH, you should use SSH instead
+                    wherever possible. If Guacamole is set up to use HTTPS then communication with
+                    the Guacamole <span class="emphasis"><em>client</em></span> will be encrypted, but communication
+                    between guacd and the telnet server will still be unencrypted. You should not
+                    use telnet unless the network between guacd and the telnet server is
+                    trusted.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="kubernetes"></a>Kubernetes</h3></div></div></div><a id="idm46420845766288" class="indexterm"></a><p>Kubernetes provides an API for attaching to the console of a container over the
+                network. As with SSH and telnet, Guacamole's Kubernetes support emulates a terminal
+                on the server side which renders to the Guacamole client's display.</p><p>Kubernetes support for Guacamole is provided by the
+                    <span class="package">libguac-client-kubernetes</span> library, which will be installed as
+                part of guacamole-server if the required dependencies are present during the
+                build.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="kubernetes-network-parameters"></a>Network/Container parameters</h4></div></div></div><p>Attaching to a Kubernetes container requires the hostname or IP address of the
+                    Kubernetes server and the name of the pod containing the container in question.
+                    By default, Guacamole will attach to the first container in the pod. If there
+                    are multiple containers in the pod, you may wish to also specify the container
+                    name.</p><div class="informaltable"><a id="idm46420845761040" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>hostname</code></em></td><td>
+                                    <p><a id="idm46420845753328" class="indexterm"></a>The hostname or IP address of the Kubernetes
+                                        server that Guacamole should connect to.</p>
+                                </td></tr><tr><td><em class="parameter"><code>port</code></em></td><td>
+                                    <p><a id="idm46420845749920" class="indexterm"></a>The port the Kubernetes server is listening on
+                                        for API connections. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, port 8080 will be used
+                                        by default.</p>
+                                </td></tr><tr><td><em class="parameter"><code>namespace</code></em></td><td>
+                                    <p><a id="idm46420845745968" class="indexterm"></a>The name of the Kubernetes namespace of the pod
+                                        containing the container being attached to. <span class="emphasis"><em>This
+                                            parameter is optional.</em></span> If omitted, the
+                                        namespace "default" will be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>pod</code></em></td><td>
+                                    <p><a id="idm46420845741984" class="indexterm"></a>The name of the Kubernetes pod containing with
+                                        the container being attached to.</p>
+                                </td></tr><tr><td><em class="parameter"><code>container</code></em></td><td>
+                                    <p><a id="idm46420845738592" class="indexterm"></a>The name of the container to attach to.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, the first container in the pod will be used.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="kubernetes-authentication"></a>Authentication and SSL/TLS</h4></div></div></div><p>If enabled, Kubernetes uses SSL/TLS for both encryption and authentication.
+                    Standard SSL/TLS client authentication requires both a client certificate and
+                    client key, which Guacamole will use to identify itself to the Kubernetes
+                    server. If the certificate used by Kubernetes is self-signed or signed by a
+                    non-standard certificate authority, the certificate for the certificate
+                    authority will also be needed.</p><div class="informaltable"><a id="idm46420845732720" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>use-ssl</code></em></td><td>
+                                    <p>If set to "true", SSL/TLS will be used to connect to the
+                                        Kubernetes server. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> By default, SSL/TLS will not be
+                                        used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>client-cert</code></em></td><td>
+                                    <p>The certificate to use if performing SSL/TLS client
+                                        authentication to authenticate with the Kubernetes server,
+                                        in PEM format. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, SSL client
+                                        authentication will not be performed.</p>
+                                </td></tr><tr><td><em class="parameter"><code>client-key</code></em></td><td>
+                                    <p>The key to use if performing SSL/TLS client authentication
+                                        to authenticate with the Kubernetes server, in PEM format.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, SSL client authentication will not be
+                                        performed</p>
+                                </td></tr><tr><td><em class="parameter"><code>ca-cert</code></em></td><td>
+                                    <p>The certificate of the certificate authority that signed
+                                        the certificate of the Kubernetes server, in PEM format.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, verification of the Kubernetes server certificate
+                                        will use only system-wide certificate authorities. </p>
+                                </td></tr><tr><td><em class="parameter"><code>ignore-cert</code></em></td><td>
+                                    <p>If set to "true", the validity of the SSL/TLS certificate
+                                        used by the Kubernetes server will be ignored if it cannot
+                                        be validated. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> By default, SSL/TLS certificates
+                                        are validated.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="kubernetes-display-settings"></a>Display settings</h4></div></div></div><p>Guacamole's Kubernetes support provides a display, but not in the same sense
+                    as a remote desktop protocol like VNC or RDP. The display is a terminal
+                    emulator, and thus provides options for configuring the font used and its size.
+                    In this case, <span class="emphasis"><em>the chosen font must be installed on the
+                        server</em></span>, as it is the server that will handle rendering of
+                    characters to the terminal display, not the client.</p><div class="informaltable"><a id="idm46420845708736" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>color-scheme</code></em></td><td>
+                                    <p><a id="idm46420845701072" class="indexterm"></a>The color scheme to use for the terminal
+                                        emulator used by Kubernetes connections. It consists of a
+                                        semicolon-separated series of name-value pairs. Each
+                                        name-value pair is separated by a colon and assigns a value
+                                        to a color in the terminal emulator palette. For example, to
+                                        use blue text on white background by default, and change the
+                                        red color to a purple shade, you would specify:</p>
+                                    <div class="informalexample"><pre class="programlisting">foreground: rgb:00/00/ff;
+background: rgb:ff/ff/ff;
+color9: rgb:80/00/80</pre></div>
+                                    <p>This format is similar to the color configuration format
+                                        used by Xterm, so Xterm color configurations can be easily
+                                        adapted for Guacamole. This parameter is optional. If not
+                                        specified, Guacamole will render text as gray over a black
+                                        background.</p>
+                                    <p>Possible color names are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">foreground</code></span></dt><dd><p>Set the default foreground color.</p></dd><dt><span class="term"><code class="constant">background</code></span></dt><dd><p>Set the default background color.</p></dd><dt><span class="term"><code class="constant">color&lt;n&gt;</code></span></dt><dd><p>Set the color at index <code class="code">&lt;n&gt;</code>
+                                                  on the Xterm 256-color palette. For example,
+                                                  <code class="code">color9</code> refers to the red color.
+                                                </p></dd></dl></div>
+                                    <p>Possible color values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">rgb:RR/GG/BB</code></span></dt><dd><p>Use the specified color in RGB format, with
+                                                  each component in hexadecimal. For example,
+                                                  <code class="code">rgb:ff/00/00</code> specifies the color red.
+                                                  Note that each hexadecimal component can be one to
+                                                  four digits, but the effective values are always
+                                                  zero-extended or truncated to two digits; for
+                                                  example, <code class="code">rgb:f/8/0</code>,
+                                                  <code class="code">rgb:f0/80/00</code>, and
+                                                  <code class="code">rgb:f0f/808/00f</code> all refer to the same
+                                                  effective color.</p></dd><dt><span class="term"><code class="constant">color&lt;n&gt;</code></span></dt><dd><p>Use the color currently assigned to index
+                                                  <code class="code">&lt;n&gt;</code> on the Xterm 256-color
+                                                  palette. For example, <code class="code">color9</code>
+                                                  specifies the current red color. Note that the
+                                                  color value is used rather than the color
+                                                  reference, so if <code class="code">color9</code> is changed
+                                                  later in the color scheme configuration, that new
+                                                  color will not be reflected in this
+                                                  assignment.</p></dd></dl></div>
+                                    <p>For backward compatibility, Guacamole will also accept
+                                        four special values as the color scheme parameter:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">black-white</code></span></dt><dd><p>Black text over a white background.</p></dd><dt><span class="term"><code class="constant">gray-black</code></span></dt><dd><p>Gray text over a black background. This is the
+                                                  default color scheme.</p></dd><dt><span class="term"><code class="constant">green-black</code></span></dt><dd><p>Green text over a black background.</p></dd><dt><span class="term"><code class="constant">white-black</code></span></dt><dd><p>White text over a black background.</p></dd></dl></div>
+                                </td></tr><tr><td><em class="parameter"><code>font-name</code></em></td><td>
+                                    <p><a id="idm46420845667552" class="indexterm"></a>The name of the font to use. This parameter is
+                                        optional. If not specified, the default of "monospace" will
+                                        be used instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>font-size</code></em></td><td>
+                                    <p>The size of the font to use, in points. This parameter is
+                                        optional. If not specified, the default of 12 will be used
+                                        instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>read-only</code></em></td><td>
+                                    <p><a id="idm46420845661856" class="indexterm"></a>Whether this connection should be read-only. If
+                                        set to "true", no input will be accepted on the connection
+                                        at all. Users will only see the console of the Kubernetes
+                                        container. <span class="emphasis"><em>This parameter is optional.</em></span>
+                                        If omitted, the connection will not be read-only.</p>
+                                </td></tr><tr><td><em class="parameter"><code>scrollback</code></em></td><td>
+                                    <p><a id="idm46420845657728" class="indexterm"></a>The maximum number of rows to allow within the
+                                        terminal scrollback buffer. This parameter is optional. If
+                                        not specified, the scrollback buffer will be limited to a
+                                        maximum of 1000 rows.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="kubernetes-terminal-behavior"></a>Controlling terminal behavior</h4></div></div></div><p>In most cases, the default behavior for a terminal works without modification.
+                    However, when connecting to certain systems, particularly operating systems
+                    other than Linux, the terminal behavior may need to be tweaked to allow it to
+                    operate properly. The settings in this section control that behavior.</p><div class="informaltable"><a id="idm46420845652256" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>backspace</code></em></td><td>
+                                    <p><a id="idm46420845644544" class="indexterm"></a>This parameter controls the ASCII code that the
+                                        backspace key sends to the remote system. Under most
+                                        circumstances this should not need to be adjusted; however,
+                                        if, when pressing the backspace key, you see control
+                                        characters (often either ^? or ^H) instead of seeing the
+                                        text erased, you may need to adjust this parameter. By
+                                        default the terminal sends ASCII code 127 (Delete) if this
+                                        option is not set.</p>
+                                </td></tr><tr><td><em class="parameter"><code>terminal-type</code></em></td><td>
+                                    <p><a id="idm46420845640576" class="indexterm"></a>This parameter sets the terminal emulator type
+                                        string that is passed to the Kubernetes server. This
+                                        parameter is optional. If not specified,
+                                            "<code class="code">linux</code>" is used as the terminal
+                                        emulator type by default.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="kubernetes-typescripts"></a>Text session recording (typescripts)</h4></div></div></div><p>The full, raw text content of Kubernetes sessions, including timing
+                    information, can be recorded automatically to a specified directory. This
+                    recording, also known as a "typescript", will be written to two files within the
+                    directory specified by <em class="parameter"><code>typescript-path</code></em>:
+                            <code class="filename"><em class="replaceable"><code>NAME</code></em></code>, which contains the
+                    raw text data, and <code class="filename"><em class="replaceable"><code>NAME</code></em>.timing</code>,
+                    which contains timing information, where <em class="replaceable"><code>NAME</code></em> is the
+                    value provided for the <em class="parameter"><code>typescript-name</code></em> parameter.</p><p>This format is compatible with the format used by the standard UNIX
+                        <span class="command"><strong>script</strong></span> command, and can be replayed using
+                        <span class="command"><strong>scriptreplay</strong></span> (if installed). For example, to replay a
+                    typescript called "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>scriptreplay <em class="replaceable"><code>NAME</code></em>.timing <em class="replaceable"><code>NAME</code></em></code></strong></pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46420845626096" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>typescript-path</code></em></td><td>
+                                    <p><a id="idm46420845618384" class="indexterm"></a><a id="idm46420845617104" class="indexterm"></a>The directory in which typescript files should
+                                        be created. <span class="emphasis"><em>If a typescript needs to be recorded,
+                                            this parameter is required.</em></span> Specifying this
+                                        parameter enables typescript recording. If this parameter is
+                                        omitted, no typescript will be recorded.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-typescript-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>typescript-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>typescript-path</code></em> parameter will
+                                        not automatically be created, and attempts to record
+                                        typescripts in a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if typescript recording
+                                        is enabled. If the <em class="parameter"><code>typescript-path</code></em> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>typescript-name</code></em></td><td>
+                                    <p>The base filename to use when determining the names for
+                                        the data and timing files of the typescript. <span class="emphasis"><em>This
+                                            parameter is optional.</em></span> If omitted, the value
+                                        "typescript" will be used instead.</p>
+                                    <p>Each typescript consists of two files which are created
+                                        within the directory specified by
+                                            <em class="parameter"><code>typescript-path</code></em>:
+                                                <code class="filename"><em class="replaceable"><code>NAME</code></em></code>,
+                                        which contains the raw text data, and
+                                                <code class="filename"><em class="replaceable"><code>NAME</code></em>.timing</code>,
+                                        which contains timing information, where
+                                            <em class="replaceable"><code>NAME</code></em> is the value provided
+                                        for the <em class="parameter"><code>typescript-name</code></em>
+                                        parameter.</p>
+                                    <p>This parameter only has an effect if typescript recording
+                                        is enabled. If the <em class="parameter"><code>typescript-path</code></em> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="kubernetes-recording"></a>Graphical session recording</h4></div></div></div><p>In addition to text-based recordings, Kubernetes sessions can be recorded
+                    graphically. These recordings take the form of Guacamole protocol dumps and are
+                    recorded automatically to a specified directory. Recordings can be subsequently
+                    translated to a normal video stream using the <span class="command"><strong>guacenc</strong></span> utility
+                    provided with guacamole-server.</p><p>For example, to produce a video called "<em class="replaceable"><code>NAME</code></em>.m4v"
+                    from the recording "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guacenc <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong></pre></div><p>The <span class="command"><strong>guacenc</strong></span> utility has additional options for overriding
+                    default behavior, including tweaking the output format, which are documented in
+                    detail within the manpage:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>man guacenc</code></strong></pre></div><p>If recording of key events is explicitly enabled using the
+                        <em class="parameter"><code>recording-include-keys</code></em> parameter, recordings can also
+                    be translated into human-readable interpretations of the keys pressed during the
+                    session using the <span class="command"><strong>guaclog</strong></span> utility. The usage of
+                        <span class="command"><strong>guaclog</strong></span> is analogous to <span class="command"><strong>guacenc</strong></span>, and
+                    results in the creation of a new text file containing the interpreted
+                    events:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guaclog <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong><code class="computeroutput">
+guaclog: INFO: Guacamole input log interpreter (guaclog) version 1.1.0
+guaclog: INFO: 1 input file(s) provided.
+guaclog: INFO: Writing input events from "<em class="replaceable"><code>/path/to/recording/NAME</code></em>" to "<em class="replaceable"><code>/path/to/recording/NAME</code></em>.txt" ...
+guaclog: INFO: All files interpreted successfully.</code>
+<code class="prompt">$</code> </pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46420845583504" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>recording-path</code></em></td><td>
+                                    <p><a id="idm46420845575792" class="indexterm"></a>The directory in which screen recording files
+                                        should be created. <span class="emphasis"><em>If a graphical recording needs
+                                            to be created, then this parameter is
+                                            required.</em></span> Specifying this parameter enables
+                                        graphical screen recording. If this parameter is omitted, no
+                                        graphical recording will be created.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-recording-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will not
+                                        automatically be created, and attempts to create recordings
+                                        within a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-name</code></em></td><td>
+                                    <p>The filename to use for any created recordings.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, the value "recording" will be used instead.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-output</code></em></td><td>
+                                    <p>If set to "true", graphical output and other data normally
+                                        streamed from server to client will be excluded from the
+                                        recording, producing a recording which contains only user
+                                        input events. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, graphical output will
+                                        be included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-mouse</code></em></td><td>
+                                    <p>If set to "true", user mouse events will be excluded from
+                                        the recording, producing a recording which lacks a visible
+                                        mouse cursor. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, mouse events will be
+                                        included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-include-keys</code></em></td><td>
+                                    <p>If set to "true", user key events will be included in the
+                                        recording. The recording can subsequently be passed through
+                                        the <span class="command"><strong>guaclog</strong></span> utility to produce a
+                                        human-readable interpretation of the keys pressed during the
+                                        session. <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, key events will be not included in the
+                                        recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="adding-kubernetes"></a>Adding a Kubernetes connection</h4></div></div></div><a id="idm46420845549104" class="indexterm"></a><p>If you are using the default authentication built into Guacamole, and you wish
+                    to grant access to a Kubernetes connection to a particular user, you need to
+                    locate the <code class="code">&lt;authorize&gt;</code> section for that user within your
+                        <code class="filename">user-mapping.xml</code>, and add a section like the following
+                    within it:</p><pre class="programlisting">&lt;connection name="<em class="replaceable"><code>Unique Name</code></em>"&gt;
+    &lt;protocol&gt;kubernetes&lt;/protocol&gt;
+    &lt;param name="hostname"&gt;<em class="replaceable"><code>localhost</code></em>&lt;/param&gt;
+    &lt;param name="pod"&gt;<em class="replaceable"><code>mypod</code></em>&lt;/param&gt;
+&lt;/connection&gt;</pre><p>If added exactly as above, a new connection named "<em class="replaceable"><code>Unique
+                        Name</code></em>" will be available to the user associated with the
+                        <code class="code">&lt;authorize&gt;</code> section containing it. The connection will
+                    connect to the Kubernetes server running on <em class="replaceable"><code>localhost</code></em>
+                    and attach to the first container of the pod
+                    <em class="replaceable"><code>mypod</code></em>.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="parameter-tokens"></a>Parameter tokens</h3></div></div></div><a id="idm46420845540336" class="indexterm"></a><p>The values of connection parameters can contain "tokens" which will be replaced by
+                Guacamole when used. These tokens allow the values of connection parameters to vary
+                dynamically by the user using the connection, and provide a simple means of
+                forwarding authentication information without storing that information in the
+                connection configuration itself, so long as the remote desktop connection uses the
+                same credentials as Guacamole.</p><p>Each token is of the form
+                    <code class="varname">${<em class="replaceable"><code>TOKEN_NAME</code></em>}</code>, where
+                    <em class="replaceable"><code>TOKEN_NAME</code></em> is some descriptive name for the value the
+                token represents. Tokens with no corresponding value will never be replaced, but
+                should you need such text within your connection parameters, and wish to guarantee
+                that this text will not be replaced with a token value, you can escape the token by
+                adding an additional leading "$", as in "$${TOKEN_NAME}".</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="varname">${GUAC_USERNAME}</code></span></dt><dd><p>The username of the current Guacamole user. When a user accesses a
+                            connection, this token will be dynamically replaced with the username
+                            they provided when logging in to Guacamole.</p></dd><dt><span class="term"><code class="varname">${GUAC_PASSWORD}</code></span></dt><dd><p>The password of the current Guacamole user. When a user accesses a
+                            connection, this token will be dynamically replaced with the password
+                            they used when logging in to Guacamole.</p></dd><dt><span class="term"><code class="varname">${GUAC_CLIENT_ADDRESS}</code></span></dt><dd><p>The IPv4 or IPv6 address of the current Guacamole user. This will be
+                            the address of the client side of the HTTP connection to the Guacamole
+                            server at the time the current user logged in.</p></dd><dt><span class="term"><code class="varname">${GUAC_CLIENT_HOSTNAME}</code></span></dt><dd><p>The hostname of the current Guacamole user. This will be the hostname
+                            of the client side of the HTTP connection to the Guacamole server at the
+                            time the current user logged in. If no such hostname can be determined,
+                            the IPv4 or IPv6 address will be used instead, and this token will be
+                            equivalent to <code class="varname">${GUAC_CLIENT_ADDRESS}</code>.</p></dd><dt><span class="term"><code class="varname">${GUAC_DATE}</code></span></dt><dd><p>The current date in the local time zone of the Guacamole server. This
+                            will be written in "YYYYMMDD" format, where "YYYY" is the year, "MM" is
+                            the month number, and "DD" is the day of the month, all zero-padded.
+                            When a user accesses a connection, this token will be dynamically
+                            replaced with the date that the connection began.</p></dd><dt><span class="term"><code class="varname">${GUAC_TIME}</code></span></dt><dd><p>The current time in the local time zone of the Guacamole server. This
+                            will be written in "HHMMSS" format, where "HH" is hours in 24-hour time,
+                            "MM" is minutes, and "SS" is seconds, all zero-padded. When a user
+                            accesses a connection, this token will be dynamically replaced with the
+                            time that the connection began.</p></dd></dl></div><p>Note that these tokens are replaced dynamically each time a connection is used. If
+                two different users access the same connection at the same time, both users will be
+                connected independently of each other using different sets of connection
+                parameters.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="extension-tokens"></a>Extension-specific tokens</h4></div></div></div><a id="idm46420845519984" class="indexterm"></a><p>Each extension can also implement its own arbitrary tokens that can dynamically
+                    fill in values provided by the extension.  Within these extensions, attribute
+                    names are canonicalized into a standard format that consists of all capital
+                    letters separated by underscores.</p><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="cas-tokens"></a>CAS Extension Tokens</h5></div></div></div><a id="idm46420845516720" class="indexterm"></a><p>The CAS extension will read attributes provided by the CAS server when
+                        a user is authenticated and will make those attributes available as
+                        tokens.  The CAS server must be specifically configured to release certain
+                        attributes to the client (Guacamole), and configuration of that is outside
+                        the scope of this document.  Any attribute that the CAS server is
+                        configured to release should be available to Guacamole as a token for
+                        use within a connection.  The token name will be prepended with the
+                        <code class="constant">CAS_</code> prefix.  A CAS server configured to release
+                        attributes <code class="varname">firstname</code>, <code class="varname">lastname</code>,
+                        <code class="varname">email</code>, and <code class="varname">mobile</code> would produce the
+                        following tokens:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
+                                <code class="varname">${CAS_FIRSTNAME}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${CAS_LASTNAME}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${CAS_EMAIL}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${CAS_MOBILE}</code>
+                            </p></li></ul></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="ldap-tokens"></a>LDAP Extension Tokens</h5></div></div></div><a id="idm46420845504416" class="indexterm"></a><p>The LDAP extension will read user attributes provided by the LDAP
+                        server and specified in the <code class="filename">guacamole.properties</code>
+                        file.  The attributes retrieved for a user are configured using the
+                        <em class="parameter"><code>ldap-user-attributes</code></em> parameter.  The user must
+                        be able to read the attribute values from their own LDAP object.
+                        The token name will be prepended with the <code class="constant">LDAP_</code>
+                        prefix.  As an example, configuring the following line in
+                        <code class="filename">guacamole.properties</code>:</p><div class="informalexample"><pre class="programlisting">ldap-user-attributes: cn, givenName, sn, mobile, mail
+                        </pre></div><p>will produce the below tokens that can be used in connection
+                            parameters:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
+                                <code class="varname">${LDAP_CN}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${LDAP_GIVENNAME}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${LDAP_SN}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${LDAP_MOBILE}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${LDAP_MAIL}</code>
+                            </p></li></ul></div></div></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacd.conf"></a>Configuring guacd</h2></div></div></div><p><a id="idm46420845489680" class="indexterm"></a>guacd is configured with a configuration file called
+                <code class="filename">guacd.conf</code>, by default located in
+                <code class="filename">/etc/guacamole</code>. This file follows a simple, INI-like
+            format:</p><div class="informalexample"><pre class="programlisting">#
+# guacd configuration file
+#
+
+[daemon]
+
+pid_file = /var/run/guacd.pid
+log_level = info
+
+[server]
+
+bind_host = localhost
+bind_port = 4822
+
+#
+# The following parameters are valid only if
+# guacd was built with SSL support.
+#
+
+[ssl]
+
+server_certificate = /etc/ssl/certs/guacd.crt
+server_key = /etc/ssl/private/guacd.key</pre></div><p>Configuration options are given as parameter/value pairs, where the name of the
+            parameter is specified on the left side of an "<code class="code">=</code>", and the value is
+            specified on the right. Each parameter must occur within a proper section, indicated by
+            a section name within brackets. The names of these sections are important; it is the
+            pairing of a section name with a parameter that constitutes the fully-qualified
+            parameter being set.</p><p>For the sake of documentation and readability, comments can be added anywhere within
+            guacd.conf using "<code class="code">#</code>" symbols. All text following a "<code class="code">#</code>" until
+            end-of-line will be ignored.</p><p>If you need to include special characters within the value of a parameter, such as
+            whitespace or any of the above symbols, you can do so by placing the parameter within
+            double quotes:</p><div class="informalexample"><pre class="programlisting">[ssl]
+
+# Whitespace is legal within double quotes ...
+server_certificate = "/etc/ssl/my certs/guacd.crt"
+
+# ... as are other special symbols
+server_key = "/etc/ssl/#private/guacd.key"</pre></div><p>Note that even within double quotes, some characters still have special meaning, such
+            as the double quote itself or newline characters. If you need to include these, they
+            must be "escaped" with a backslash:</p><div class="informalexample"><pre class="programlisting"># Parameter value containing a double quote
+parameter = "some\"value"
+
+# Parameter value containing newline characters
+parameter2 = "line1\
+line2\
+line3"
+
+# Parameter value containing backslashes
+parameter3 = "c:\\windows\\path\\to\\file.txt"</pre></div><p>Don't worry too much about the more complex formatting examples - they are only rarely
+            necessary, and guacd will complain with parsing errors if the configuration file is
+            somehow invalid. To ensure parameter values are entered correctly, just follow the
+            following guidelines:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>If the value contains no special characters, just include it as-is.</p></li><li class="listitem"><p>If the value contains any special characters (whitespace, newlines,
+                        <code class="code">#</code>, <code class="code">\</code>, or <code class="code">"</code>), enclose the entire value
+                    within double quotes.</p></li><li class="listitem"><p>If the value is enclosed within double quotes, escape newlines,
+                    <code class="code">\</code>, and <code class="code">"</code> with a backslash.</p></li></ol></div><div class="table"><a id="idm46420845473744"></a><p class="title"><strong>Table 5.1. guacd.conf parameters</strong></p><div class="table-contents"><a id="idm46420845472736" class="indexterm"></a><table class="table" summary="guacd.conf parameters" border="1"><colgroup><col class="c1" /><col class="c2" /><col class="c3" /></colgroup><thead><tr><th>Section</th><th>Name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>daemon</code></em></td><td><em class="parameter"><code>pid_file</code></em></td><td>
+                            <p><a id="idm46420845463024" class="indexterm"></a>The name of the file in which the PID of the main guacd
+                                process should be written. This is mainly needed for startup
+                                scripts, which need to monitor the state of guacd, killing it if
+                                necessary. If this parameter is specified, the user running guacd
+                                must have sufficient permissions to create or modify the specified
+                                file, or startup will fail.</p>
+                        </td></tr><tr><td><em class="parameter"><code>daemon</code></em></td><td><em class="parameter"><code>log_level</code></em></td><td>
+                            <p><a id="idm46420845459072" class="indexterm"></a><a id="idm46420845457840" class="indexterm"></a><a id="idm46420845456608" class="indexterm"></a>The maximum level at which guacd will log messages to
+                                syslog and, if running in the foreground, the console. If omitted,
+                                the default level of <code class="constant">info</code> will be used.</p>
+                            <p>Legal values are <code class="constant">trace</code>,
+                                    <code class="constant">debug</code>, <code class="constant">info</code>,
+                                    <code class="constant">warning</code>, and
+                                <code class="constant">error</code>.</p>
+                        </td></tr><tr><td><em class="parameter"><code>server</code></em></td><td><em class="parameter"><code>bind_host</code></em></td><td>
+                            <p><a id="idm46420845449744" class="indexterm"></a>The host that guacd should bind to when listening for
+                                connections. If unspecified, guacd will bind to localhost, and only
+                                connections from within the server hosting guacd will
+                                succeed.</p>
+                        </td></tr><tr><td><em class="parameter"><code>server</code></em></td><td><em class="parameter"><code>bind_port</code></em></td><td>
+                            <p><a id="idm46420845446000" class="indexterm"></a>The port that guacd should bind to when listening for
+                                connections. If unspecified, port 4822 will be used.</p>
+                        </td></tr><tr><td><em class="parameter"><code>ssl</code></em></td><td><em class="parameter"><code>server_certificate</code></em></td><td>
+                            <p><a id="idm46420845442400" class="indexterm"></a>The filename of the certificate to use for SSL
+                                encryption of the Guacamole protocol. If this option is specified,
+                                SSL encryption will be enabled, and the Guacamole web application
+                                will need to be configured within
+                                    <code class="filename">guacamole.properties</code> to use SSL as
+                                well.</p>
+                        </td></tr><tr><td><em class="parameter"><code>ssl</code></em></td><td><em class="parameter"><code>server_key</code></em></td><td>
+                            <p><a id="idm46420845438112" class="indexterm"></a>The filename of the private key to use for SSL
+                                encryption of the Guacamole protocol. If this option is specified,
+                                SSL encryption will be enabled, and the Guacamole web application
+                                will need to be configured within
+                                    <code class="filename">guacamole.properties</code> to use SSL as
+                                well.</p>
+                        </td></tr></tbody></table></div></div><br class="table-break" /><p>You can also affect the configuration of guacd with command-line options. If given,
+            these options take precendence over the system-wide configuration file:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="option">-b <em class="replaceable"><code>HOST</code></em></code></span></dt><dd><p>Changes the host or address that guacd listens on.</p><p>This corresponds to the <em class="parameter"><code>bind_host</code></em> parameter within
+                        the <em class="parameter"><code>server</code></em> section of
+                        <code class="filename">guacd.conf</code>.</p></dd><dt><span class="term"><code class="option">-l <em class="replaceable"><code>PORT</code></em></code></span></dt><dd><p>Changes the port that guacd listens on (the default is port 4822).</p><p>This corresponds to the <em class="parameter"><code>bind_port</code></em> parameter within
+                        the <em class="parameter"><code>server</code></em> section of
+                        <code class="filename">guacd.conf</code>.</p></dd><dt><span class="term"><code class="option">-p <em class="replaceable"><code>PIDFILE</code></em></code></span></dt><dd><p>Causes guacd to write the PID of the daemon process to the specified file.
+                        This is useful for init scripts and is used by the provided init
+                        script.</p><p>This corresponds to the <em class="parameter"><code>pid_file</code></em> parameter within
+                        the <em class="parameter"><code>daemon</code></em> section of
+                        <code class="filename">guacd.conf</code>.</p></dd><dt><span class="term"><code class="option">-L <em class="replaceable"><code>LEVEL</code></em></code></span></dt><dd><p>Sets the maximum level at which guacd will log messages to syslog and, if
+                        running in the foreground, the console. Legal values are
+                            <code class="constant">trace</code>, <code class="constant">debug</code>,
+                            <code class="constant">info</code>, <code class="constant">warning</code>, and
+                            <code class="constant">error</code>. The default value is
+                            <code class="constant">info</code>.</p><p>This corresponds to the <em class="parameter"><code>log_level</code></em> parameter within
+                        the <em class="parameter"><code>daemon</code></em> section of
+                        <code class="filename">guacd.conf</code>.</p></dd><dt><span class="term"><code class="option">-f</code></span></dt><dd><p>Causes guacd to run in the foreground, rather than automatically forking
+                        into the background.</p></dd></dl></div><p>If guacd was built with support for SSL, data sent via the Guacamole protocol can be
+            encrypted with SSL if an SSL certificate and private key are given with the following
+            options:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="option">-C <em class="replaceable"><code>CERTIFICATE</code></em></code></span></dt><dd><p>The filename of the certificate to use for SSL encryption of the Guacamole
+                        protocol. If this option is specified, SSL encryption will be enabled, and
+                        the Guacamole web application will need to be configured within
+                            <code class="filename">guacamole.properties</code> to use SSL as well.</p><p>This corresponds to the <em class="parameter"><code>server_certificate</code></em>
+                        parameter within the <em class="parameter"><code>ssl</code></em> section of
+                            <code class="filename">guacd.conf</code>.</p></dd><dt><span class="term"><code class="option">-K <em class="replaceable"><code>KEY</code></em></code></span></dt><dd><p>The filename of the private key to use for SSL encryption of the Guacamole
+                        protocol. If this option is specified, SSL encryption will be enabled, and
+                        the Guacamole web application will need to be configured within
+                            <code class="filename">guacamole.properties</code> to use SSL as well.</p><p>This corresponds to the <em class="parameter"><code>server_key</code></em> parameter within
+                        the <em class="parameter"><code>ssl</code></em> section of
+                        <code class="filename">guacd.conf</code>.</p></dd></dl></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="proxying-guacamole.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="jdbc-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 4. Proxying Guacamole </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 6. Database authentication</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/custom-auth.html b/doc/1.1.0/gug/custom-auth.html
new file mode 100644
index 0000000..93dfb65
--- /dev/null
+++ b/doc/1.1.0/gug/custom-auth.html
@@ -0,0 +1,373 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 24. Custom authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="custom-protocols.html" title="Chapter 23. Adding new protocols" /><link rel="next" href="event-listeners.html" title="Chapter 25. Event listeners" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 24. Custom authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="custom-protocols.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="event-listeners.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="custom-auth"></a>Chapter 24. Custom authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="custom-auth.html#custom-auth-model">Guacamole's authentication model</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-skeleton">A Guacamole extension skeleton</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-building">Building the extension</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-config">Configuration and authentication</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-more-config">Parsing the configuration</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-installing">Installing the extension</a></span></dt></dl></div><a id="idm46420844868960" class="indexterm"></a><p>Guacamole's authentication layer is designed to be extendable such that users can
+        integrate Guacamole into existing authentication systems without having to resort to writing
+        their own web application around the Guacamole API.</p><p>The web application comes with a default authentication mechanism which uses an XML file
+        to associate users with connections. Extensions for Guacamole that provide LDAP-based
+        authentication or database-based authentication have also been developed.</p><p>To demonstrate the principles involved, we will implement a very simple authentication
+        extension which associates a single user/password pair with a single connection, with all
+        this information saved in properties inside the <code class="filename">guacamole.properties</code>
+        file.</p><p>In general, all other authentication extensions for Guacamole will use the principles
+        demonstrated here. This tutorial demonstrates the simplest way to create an authentication
+        extension for Guacamole - an authentication extension that does not support management of
+        users and connections via the web interface.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-auth-model"></a>Guacamole's authentication model</h2></div></div></div><p>When you view any page in Guacamole, whether that be the login screen or the client
+            interface, the page makes an authentication attempt with the web application, sending
+            all available credentials. After entering your username and password, the exact same
+            process occurs, except the web application receives the username and password as
+            well.</p><p>The web application handles this authentication attempt by collecting all credentials
+            available and passing them to designated classes called "authentication providers".
+            Given the set of credentials, authentication providers return a context object that
+            provides restricted access to other users and connections, if any.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-auth-skeleton"></a>A Guacamole extension skeleton</h2></div></div></div><p>For simplicity's sake, and because this is how things are done upstream in the
+            Guacamole project, we will use Maven to build our extension.</p><p>The bare minimum required for a Guacamole authentication extension is a
+                <code class="filename">pom.xml</code> file listing guacamole-ext as a dependency, a single
+            .java file implementing our stub of an authentication provider, and a
+                <code class="filename">guac-manifest.json</code> file describing the extension and pointing
+            to our authentication provider class.</p><p>In our stub, we won't actually do any authentication yet; we'll just universally
+            reject all authentication attempts by returning <code class="varname">null</code> for any
+            credentials given. You can verify that this is what happens by checking the server
+            logs.</p><div class="example"><a id="idm46420844654944"></a><p class="title"><strong>Example 24.1. Barebones <code class="filename">pom.xml</code> required for a simple authentication
+                extension.</strong></p><div class="example-contents"><pre class="programlisting">&lt;project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+                        http://maven.apache.org/maven-v4_0_0.xsd"&gt;
+
+    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
+    &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+    &lt;artifactId&gt;guacamole-auth-tutorial&lt;/artifactId&gt;
+    &lt;packaging&gt;jar&lt;/packaging&gt;
+    &lt;version&gt;1.1.0&lt;/version&gt;
+    &lt;name&gt;guacamole-auth-tutorial&lt;/name&gt;
+
+    &lt;properties&gt;
+        &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
+    &lt;/properties&gt;
+
+    &lt;build&gt;
+        &lt;plugins&gt;
+
+            &lt;!-- Written for 1.6 --&gt;
+            &lt;plugin&gt;
+                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+                &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
+                &lt;version&gt;3.3&lt;/version&gt;
+                &lt;configuration&gt;
+                    &lt;source&gt;1.6&lt;/source&gt;
+                    &lt;target&gt;1.6&lt;/target&gt;
+                &lt;/configuration&gt;
+            &lt;/plugin&gt;
+
+        &lt;/plugins&gt;
+    &lt;/build&gt;
+
+    &lt;dependencies&gt;
+
+        &lt;!-- Guacamole Extension API --&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+            &lt;artifactId&gt;guacamole-ext&lt;/artifactId&gt;
+            &lt;version&gt;1.1.0&lt;/version&gt;
+            &lt;scope&gt;provided&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+    &lt;/dependencies&gt;
+
+&lt;/project&gt;</pre></div></div><br class="example-break" /><p>We won't need to update this <code class="filename">pom.xml</code> throughout the rest of the
+            tutorial. Even after adding new files, Maven will just find them and compile as
+            necessary.</p><p>Naturally, we need the actual authentication extension skeleton code. While you can
+            put this in whatever file and package you want, for the sake of this tutorial, we will
+            assume you are using
+                <code class="classname">org.apache.guacamole.auth.TutorialAuthenticationProvider</code>.</p><div class="example"><a id="idm46420845030320"></a><p class="title"><strong>Example 24.2. A skeleton <code class="classname">TutorialAuthenticationProvider</code></strong></p><div class="example-contents"><pre class="programlisting">package org.apache.guacamole.auth;
+
+import java.util.Map;
+import org.apache.guacamole.GuacamoleException;
+import org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider;
+import org.apache.guacamole.net.auth.Credentials;
+import org.apache.guacamole.protocol.GuacamoleConfiguration;
+
+/**
+ * Authentication provider implementation intended to demonstrate basic use
+ * of Guacamole's extension API. The credentials and connection information for
+ * a single user are stored directly in guacamole.properties.
+ */
+public class TutorialAuthenticationProvider extends SimpleAuthenticationProvider {
+
+    @Override
+    public String getIdentifier() {
+        return "tutorial";
+    }
+
+    @Override
+    public Map&lt;String, GuacamoleConfiguration&gt;
+        getAuthorizedConfigurations(Credentials credentials)
+        throws GuacamoleException {
+
+        // Do nothing ... yet
+        return null;        
+
+    }
+
+}</pre></div></div><br class="example-break" /><p>To conform with Maven, this skeleton file must be placed within
+                <code class="filename">src/main/java/org/apache/guacamole/auth</code> as
+                <code class="filename">TutorialAuthenticationProvider.java</code>.</p><p>Notice how simple the authentication provider is. The
+                <code class="classname">SimpleAuthenticationProvider</code> base class simplifies the
+                <code class="classname">AuthenticationProvider</code> interface, requiring nothing more than
+            a unique identifier (we will use "tutorial") and a single
+                <code class="methodname">getAuthorizedConfigurations()</code> implementation, which must
+            return a <code class="classname">Map</code> of <code class="classname">GuacamoleConfiguration</code>
+            each associated with some arbitrary unique ID. This unique ID will be presented to the
+            user in the connection list after they log in.</p><p>For now, <code class="methodname">getAuthorizedConfigurations()</code> will just return
+                <code class="varname">null</code>. This will cause Guacamole to report an invalid login for
+            every attempt. Note that there is a difference in semantics between returning an empty
+            map and returning <code class="varname">null</code>, as the former indicates the credentials are
+            authorized but simply have no associated configurations, while the latter indicates the
+            credentials are not authorized at all.</p><p>The only remaining piece for the overall skeleton to be complete is a
+                <code class="filename">guac-manifest.json</code> file. <span class="emphasis"><em>This file is absolutely
+                required for all Guacamole extensions.</em></span> The
+                <code class="filename">guac-manifest.json</code> format is described in more detail in <a class="xref" href="guacamole-ext.html" title="Chapter 22. guacamole-ext">Chapter 22, <em>guacamole-ext</em></a>. It provides
+            for quite a few properties, but for our authentication extension we are mainly
+            interested in the Guacamole version sanity check (to make sure an extension built for
+            the API of Guacamole version X is not accidentally used against version Y) and telling
+            Guacamole where to find our authentication provider class.</p><p>The Guacamole extension format requires that <code class="filename">guac-manifest.json</code>
+            be placed in the root directory of the extension <code class="filename">.jar</code> file. To
+            accomplish this with Maven, we place it within the
+                <code class="filename">src/main/resources</code> directory. Maven will automatically pick it
+            up during the build and include it within the <code class="filename">.jar</code>.</p><div class="example"><a id="idm46420844610752"></a><p class="title"><strong>Example 24.3. The required <code class="filename">guac-manifest.json</code></strong></p><div class="example-contents"><pre class="programlisting">{
+
+    "guacamoleVersion" : "1.1.0",
+
+    "name"      : "Tutorial Authentication Extension",
+    "namespace" : "guac-auth-tutorial",
+
+    "authProviders" : [
+        "org.apache.guacamole.auth.TutorialAuthenticationProvider"
+    ]
+
+}</pre></div></div><br class="example-break" /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-auth-building"></a>Building the extension</h2></div></div></div><p>Once all three of the above files are in place, the extension will build, and can even
+            be installed within Guacamole (see <a class="xref" href="custom-auth.html#custom-auth-installing" title="Installing the extension">the section called “Installing the extension”</a> at the end of this chapter), even though it is
+            just a skeleton at this point. It won't do anything yet other than reject all
+            authentication attempts, but it's good to at least try building the extension to make
+            sure nothing is missing and that all steps have been followed correctly so far:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> mvn package
+<code class="computeroutput">[INFO] Scanning for projects...
+[INFO] ------------------------------------------------------------------------
+[INFO] Building guacamole-auth-tutorial 1.1.0
+[INFO] ------------------------------------------------------------------------
+...
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESS
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 2.345 s
+[INFO] Finished at: 2015-12-16T13:39:00-08:00
+[INFO] Final Memory: 14M/138M
+[INFO] ------------------------------------------------------------------------</code>
+<code class="prompt">$</code></pre></div><p>Assuming you see the "<code class="computeroutput">BUILD SUCCESS</code>" message when you
+            build the extension, there will be a new file,
+                <code class="filename">target/guacamole-auth-tutorial-1.1.0.jar</code>, which can be
+            installed within Guacamole and tested. If you changed the name or version of the project
+            in the <code class="filename">pom.xml</code> file, the name of this new <code class="filename">.jar</code>
+            file will be different, but it can still be found within
+            <code class="filename">target/</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-auth-config"></a>Configuration and authentication</h2></div></div></div><p>Once we receive credentials, we need to validate those credentials against the
+            associated properties in <code class="filename">guacamole.properties</code> (our source of
+            authentication information for the sake of this tutorial).</p><p>We will define four properties:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">tutorial-user</span></span></dt><dd><p>The name of the only user we accept.</p></dd><dt><span class="term"><span class="property">tutorial-password</span></span></dt><dd><p>The password we require for the user specified to be
+                            authenticated.</p></dd><dt><span class="term"><span class="property">tutorial-protocol</span></span></dt><dd><p>The protocol of the configuration this user is authorized to use,
+                            which will be sent to guacd when the user logs in and selects their
+                            connection.</p></dd><dt><span class="term"><span class="property">tutorial-parameters</span></span></dt><dd><p>A comma-delimited list of
+                                    <code class="code"><em class="replaceable"><code>name</code></em>=<em class="replaceable"><code>value</code></em></code>
+                            pairs. For the sake of simplicity, we'll assume there will never be any
+                            commas in the values.</p></dd></dl></div><p>If the username and password match what is stored in the file, we read the
+            configuration information, store it in a <code class="classname">GuacamoleConfiguration</code>,
+            and return the configuration within a set, telling Guacamole that this user is
+            authorized but only to access the configurations returned.</p><p>Upstream, we always place the properties of authentication providers in their own
+            class, and so we will also do that here in this tutorial, as it keeps things
+            organized.</p><div class="example"><a id="idm46420844345040"></a><p class="title"><strong>Example 24.4. <code class="filename">TutorialProperties.java</code>, a class containing property
+                definitions</strong></p><div class="example-contents"><pre class="programlisting">package org.apache.guacamole.auth;
+
+import org.apache.guacamole.properties.StringGuacamoleProperty;
+
+/**
+ * Utility class containing all properties used by the custom authentication
+ * tutorial. The properties defined here must be specified within
+ * guacamole.properties to configure the tutorial authentication provider.
+ */
+public class TutorialGuacamoleProperties {
+
+    /**
+     * This class should not be instantiated.
+     */
+    private TutorialGuacamoleProperties() {}
+
+    /**
+     * The only user to allow.
+     */
+    public static final StringGuacamoleProperty TUTORIAL_USER = 
+        new StringGuacamoleProperty() {
+
+        @Override
+        public String getName() { return "tutorial-user"; }
+
+    };
+
+    /**
+     * The password required for the specified user.
+     */
+    public static final StringGuacamoleProperty TUTORIAL_PASSWORD = 
+        new StringGuacamoleProperty() {
+
+        @Override
+        public String getName() { return "tutorial-password"; }
+
+    };
+
+
+    /**
+     * The protocol to use when connecting.
+     */
+    public static final StringGuacamoleProperty TUTORIAL_PROTOCOL = 
+        new StringGuacamoleProperty() {
+
+        @Override
+        public String getName() { return "tutorial-protocol"; }
+
+    };
+
+
+    /**
+     * All parameters associated with the connection, as a comma-delimited
+     * list of name="value" 
+     */
+    public static final StringGuacamoleProperty TUTORIAL_PARAMETERS = 
+        new StringGuacamoleProperty() {
+
+        @Override
+        public String getName() { return "tutorial-parameters"; }
+
+    };
+
+}</pre></div></div><br class="example-break" /><p>Normally, we would define a new type of <code class="classname">GuacamoleProperty</code> to
+            handle the parsing of the parameters required by <code class="varname">TUTORIAL_PARAMETERS</code>,
+            but for the sake of simplicity, parsing of this parameter will be embedded in the
+            authentication function later.</p><p>You will need to modify your existing <code class="filename">guacamole.properties</code> file,
+            adding each of the above properties to describe one of your available
+            connections.</p><div class="example"><a id="idm46420844339392"></a><p class="title"><strong>Example 24.5. Properties describing a user and connection, as required by this tutorial</strong></p><div class="example-contents"><pre class="programlisting"># Username and password
+tutorial-user:     <em class="replaceable"><code>tutorial</code></em>
+tutorial-password: <em class="replaceable"><code>password</code></em>
+
+# Connection information
+tutorial-protocol:   <em class="replaceable"><code>vnc</code></em>
+tutorial-parameters: <em class="replaceable"><code>hostname=localhost, port=5900</code></em></pre></div></div><br class="example-break" /><p>Once these properties and their accessor class are in place, it's simple enough to
+            read the properties within <code class="methodname">getAuthorizedConfigurations()</code> and
+            authenticate the user based on their username and password.</p><div class="example"><a id="idm46420844335376"></a><p class="title"><strong>Example 24.6. Checking the credentials against the properties</strong></p><div class="example-contents"><pre class="programlisting">@Override
+public Map&lt;String, GuacamoleConfiguration&gt;
+    getAuthorizedConfigurations(Credentials credentials)
+    throws GuacamoleException {
+
+    // Get the Guacamole server environment
+    Environment environment = new LocalEnvironment();
+
+    // Get username from guacamole.properties
+    String username = environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_USER
+    );      
+
+    // If wrong username, fail
+    if (!username.equals(credentials.getUsername()))
+        return null;
+
+    // Get password from guacamole.properties
+    String password = environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_PASSWORD
+    );      
+
+    // If wrong password, fail
+    if (!password.equals(credentials.getPassword()))
+        return null;
+
+    // Successful login. Return configurations (STUB)
+    return new HashMap&lt;String, GuacamoleConfiguration&gt;();
+
+}</pre></div></div><br class="example-break" /><p>As is, the authentication provider will work in its current state in that the correct
+            username and password will authenticate the user, while an incorrect username or
+            password will not, but we still aren't returning an actual map of configurations. We
+            need to construct the configuration based on the properties in the
+                <code class="filename">guacamole.properties</code> file after the user has been
+            authenticated, and return that configuration to the web application.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-auth-more-config"></a>Parsing the configuration</h2></div></div></div><p>The only remaining task before we have a fully-functioning authentication provider is
+            to actually parse the configuration from the <code class="filename">guacamole.properties</code>
+            file.</p><div class="example"><a id="idm46420844330320"></a><p class="title"><strong>Example 24.7. Parsing and returning a <code class="classname">GuacamoleConfiguration</code></strong></p><div class="example-contents"><pre class="programlisting">@Override
+public Map&lt;String, GuacamoleConfiguration&gt;
+    getAuthorizedConfigurations(Credentials credentials)
+    throws GuacamoleException {
+
+    // Get the Guacamole server environment
+    Environment environment = new LocalEnvironment();
+
+    // Get username from guacamole.properties
+    String username = environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_USER
+    );      
+
+    // If wrong username, fail
+    if (!username.equals(credentials.getUsername()))
+        return null;
+
+    // Get password from guacamole.properties
+    String password = environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_PASSWORD
+    );      
+
+    // If wrong password, fail
+    if (!password.equals(credentials.getPassword()))
+        return null;
+
+    // Successful login. Return configurations.
+    Map&lt;String, GuacamoleConfiguration&gt; configs = 
+        new HashMap&lt;String, GuacamoleConfiguration&gt;();
+
+    // Create new configuration
+    GuacamoleConfiguration config = new GuacamoleConfiguration();
+
+    // Set protocol specified in properties
+    config.setProtocol(environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_PROTOCOL
+    ));
+
+    // Set all parameters, splitting at commas
+    for (String parameterValue : environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_PARAMETERS
+    ).split(",\\s*")) {
+
+        // Find the equals sign
+        int equals = parameterValue.indexOf('=');
+        if (equals == -1)
+            throw new GuacamoleServerException("Required equals sign missing");
+
+        // Get name and value from parameter string
+        String name = parameterValue.substring(0, equals);
+        String value = parameterValue.substring(equals+1);
+
+        // Set parameter as specified
+        config.setParameter(name, value);
+
+    }
+
+    configs.put("Tutorial Connection", config);
+    return configs;
+
+}</pre></div></div><br class="example-break" /><p>The extension is now complete and can be built as described earlier in <a class="xref" href="custom-auth.html#custom-auth-building" title="Building the extension">the section called “Building the extension”</a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-auth-installing"></a>Installing the extension</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            installed by being placed within <code class="filename">GUACAMOLE_HOME/extensions</code>, and
+            this extension is no different. As described in <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a>,
+                <code class="varname">GUACAMOLE_HOME</code> is a placeholder used to refer to the directory
+            that Guacamole uses to locate its configuration files and extensions. Typically, this
+            will be the <code class="filename">.guacamole</code> directory within the home directory of the
+            user running Tomcat.</p><p>To install your extension, ensure that the required properties have been added to your
+                <code class="filename">guacamole.properties</code>, copy the
+                <code class="filename">target/guacamole-auth-tutorial-1.1.0.jar</code> file into
+                <code class="filename">GUACAMOLE_HOME/extensions</code> and restart Tomcat. Guacamole will
+            automatically load your extension, logging an informative message that it has done
+            so:</p><div class="informalexample"><pre class="screen">Extension "Tutorial Authentication Extension" loaded.</pre></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="custom-protocols.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="event-listeners.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 23. Adding new protocols </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 25. Event listeners</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/custom-protocols.html b/doc/1.1.0/gug/custom-protocols.html
new file mode 100644
index 0000000..70f191e
--- /dev/null
+++ b/doc/1.1.0/gug/custom-protocols.html
@@ -0,0 +1,644 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 23. Adding new protocols</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="guacamole-ext.html" title="Chapter 22. guacamole-ext" /><link rel="next" href="custom-auth.html" title="Chapter 24. Custom authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 23. Adding new protocols</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="guacamole-ext.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="custom-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="custom-protocols"></a>Chapter 23. Adding new protocols</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-skeleton">Minimal skeleton client</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-display-init">Initializing the remote display</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-layer">Adding the ball</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-bounce">Making the ball bounce</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-pretty">A prettier ball</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-time">Handling the passage of time</a></span></dt></dl></div><a id="idm46420844708528" class="indexterm"></a><p>Guacamole's support for multiple remote desktop protocols is provided through plugins
+        which guacd loads dynamically. The Guacamole API has been designed such that protocol
+        support is easy to create, especially when a C library exists providing a basic client
+        implementation.</p><p>In this tutorial, we will implement a simple "client" which renders a bouncing ball using
+        the Guacamole protocol. After completing the tutorial and installing the result, you will be
+        able to add a connection to your Guacamole configuration using the "ball" protocol, and any
+        users using that connection will see a bouncing ball.</p><p>This example client plugin doesn't actually act as a client, but this isn't important. The
+        Guacamole client is really just a remote display, and this client plugin functions as a
+        simple example application which renders to this display, just as Guacamole's own VNC or RDP
+        plugins function as VNC or RDP clients which render to the remote display.</p><p>Each step of this tutorial is intended to exercise a new concept,
+        while also progressing towards the goal of a nifty bouncing ball. At the
+        end of each step, you will have a buildable and working client
+        plugin.</p><p>This tutorial will use the GNU Automake build system, which is the build system used by
+        Guacamole for libguac, guacd, etc. There will be four files involved:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="filename">configure.ac</code></span></dt><dd><p>Used by GNU Automake to generate the <code class="filename">configure</code> script
+                    which ultimately serves to generate the <code class="filename">Makefile</code> which
+                        <span class="command"><strong>make</strong></span> will use when building.</p></dd><dt><span class="term"><code class="filename">Makefile.am</code></span></dt><dd><p>Used by GNU Automake and the <code class="filename">configure</code> script to generate
+                    the <code class="filename">Makefile</code> which <span class="command"><strong>make</strong></span> will use when
+                    building.</p></dd><dt><span class="term"><code class="filename">src/ball.c</code></span></dt><dd><p>The main body of code defining the bouncing ball "client".</p></dd><dt><span class="term"><code class="filename">src/ball.h</code></span></dt><dd><p>A header file defining the structure representing the state of the bouncing
+                    ball (once it becomes necessary to do so).</p></dd></dl></div><p>All source files will be within the <code class="filename">src</code> subdirectory, as is common
+        with C projects, with build files being at the root level directory. The main
+            <code class="filename">src/ball.c</code> and the build-related <code class="filename">configure.ac</code>
+        and <code class="filename">Makefile.am</code> files will be created first, with each successive step
+        building upon those files iteratively, with <code class="filename">src/ball.h</code> being added when
+        it becomes necessary. After each step, you can build/rebuild the plugin by running
+            <span class="command"><strong>make</strong></span>, and then install it (such that guacd can find the plugin) by
+        running <span class="command"><strong>make install</strong></span> and <span class="command"><strong>ldconfig</strong></span> as root:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>make</code></strong>
+<code class="computeroutput">  CC       src/ball.lo
+  CCLD     libguac-client-ball.la</code>
+<code class="prompt">#</code> <strong class="userinput"><code>make install</code></strong>
+<code class="computeroutput">make[1]: Entering directory '/home/user/libguac-client-ball'
+ /usr/bin/mkdir -p '/usr/local/lib'
+ /bin/sh ./libtool   --mode=install /usr/bin/install -c   libguac-client-ball.la '/usr/local/lib'
+...
+----------------------------------------------------------------------
+Libraries have been installed in:
+   /usr/local/lib
+
+If you ever happen to want to link against installed libraries
+in a given directory, LIBDIR, you must either use libtool, and
+specify the full pathname of the library, or use the '-LLIBDIR'
+flag during linking and do at least one of the following:
+   - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
+     during execution
+   - add LIBDIR to the 'LD_RUN_PATH' environment variable
+     during linking
+   - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
+   - have your system administrator add LIBDIR to '/etc/ld.so.conf'
+
+See any operating system documentation about shared libraries for
+more information, such as the ld(1) and ld.so(8) manual pages.
+----------------------------------------------------------------------
+make[1]: Nothing to be done for 'install-data-am'.
+make[1]: Leaving directory '/home/user/libguac-client-ball'</code>
+<code class="prompt">#</code> <strong class="userinput"><code>ldconfig</code></strong></pre></div><p>Prior to the first time <span class="command"><strong>make</strong></span> is invoked, you will need to run the
+            <code class="filename">configure</code> script, which will first need to be generated using
+            <span class="command"><strong>autoreconf</strong></span>:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>autoreconf -fi</code></strong>
+<code class="computeroutput">libtoolize: putting auxiliary files in '.'.
+libtoolize: copying file './ltmain.sh'
+libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
+libtoolize: copying file 'm4/libtool.m4'
+libtoolize: copying file 'm4/ltoptions.m4'
+libtoolize: copying file 'm4/ltsugar.m4'
+libtoolize: copying file 'm4/ltversion.m4'
+libtoolize: copying file 'm4/lt~obsolete.m4'
+configure.ac:10: installing './compile'
+configure.ac:4: installing './missing'
+Makefile.am: installing './depcomp'</code>
+<code class="prompt">$</code> <strong class="userinput"><code>./configure</code></strong>
+<code class="computeroutput">checking for a BSD-compatible install... /usr/bin/install -c
+checking whether build environment is sane... yes
+...
+configure: creating ./config.status
+config.status: creating Makefile
+config.status: executing depfiles commands
+config.status: executing libtool commands</code>
+<code class="prompt">$</code></pre></div><p>This process is almost identical to that of building guacamole-server from git, as
+        documented in <a class="xref" href="installing-guacamole.html#building-guacamole-server" title="Building guacamole-server">the section called “Building <span class="package">guacamole-server</span>”</a>.</p><div class="important"><h3 class="title">Important</h3><p>The libguac library which is part of guacamole-server is a required dependency of this
+            project. <span class="emphasis"><em>You must first install libguac, guacd, etc. by <a class="link" href="installing-guacamole.html#building-guacamole-server" title="Building guacamole-server">building and installing guacamole-server</a>.</em></span> If guacamole-server
+            has not been installed, and libguac is thus not present, the
+                <code class="filename">configure</code> script will fail with an error indicating that it
+            could not find libguac:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>./configure</code></strong>
+<code class="computeroutput">checking for a BSD-compatible install... /usr/bin/install -c
+checking whether build environment is sane... yes
+...
+checking for guac_client_stream_png in -lguac... no
+configure: error: "libguac is required for communication via "
+                   "the Guacamole protocol"</code>
+<code class="prompt">$</code></pre></div><p>You will need to install guacamole-server and then rerun
+                <code class="filename">configure</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-ball-skeleton"></a>Minimal skeleton client</h2></div></div></div><p>Very little needs too be done to implement the most basic client plugin possible. We
+            begin with <code class="filename">src/ball.c</code>, containing the absolute minimum required for
+            a client plugin:</p><div class="informalexample"><a id="ball-01-ball_client.c"></a><pre xml:lang="en" class="programlisting" lang="en">#include &lt;guacamole/client.h&gt;
+
+#include &lt;stdlib.h&gt;
+
+/* Client plugin arguments (empty) */
+const char* TUTORIAL_ARGS[] = { NULL };
+
+int guac_client_init(guac_client* client) {
+
+    /* This example does not implement any arguments */
+    client-&gt;args = TUTORIAL_ARGS;
+
+    return 0;
+
+}</pre></div><p>Notice the structure of this file. There is exactly one function,
+                <code class="methodname">guac_client_init</code>, which is the entry
+            point for all Guacamole client plugins. Just as a typical C program
+            has a <code class="methodname">main</code> function which is executed when
+            the program is run, a Guacamole client plugin has
+                <code class="methodname">guac_client_init</code> which is called when
+            guacd loads the plugin when a new connection is made and your
+            protocol is selected.</p><p><code class="methodname">guac_client_init</code> receives a single
+                <code class="classname">guac_client</code> which it must initialize. Part of this
+            initialization process involves declaring the list of arguments that joining users can
+            specify. While we won't be using arguments in this tutorial, and thus the arguments
+            assigned above are simply an empty list, a typical client plugin implementation would
+            register arguments which define the remote desktop connection and its behavior. Examples
+            of such parameters can be seen in the connection parameters for the protocols supported
+            by Guacamole out-of-the-box (see <a class="xref" href="configuring-guacamole.html#connection-configuration" title="Configuring connections">the section called “Configuring connections”</a>).</p><p>The <code class="classname">guac_client</code> instance given to
+                <code class="methodname">guac_client_init</code> will be shared by the user that starts the
+            connection, and any users which join the connection via screen sharing. It lives until
+            the connection is explicitly closed, or until all users leave the connection.</p><p>For this project to build with GNU Automake, we a <code class="filename">configure.ac</code>
+            file which describes the name of the project and what it needs configuration-wise. In
+            this case, the project is "libguac-client-ball", and it depends on the "libguac" library
+            used by guacd and all client plugins:</p><div class="informalexample"><a id="ball-01-configure.in"></a><pre xml:lang="en" class="programlisting" lang="en"># Project information
+AC_PREREQ([2.61])
+AC_INIT([libguac-client-ball], [0.1.0])
+AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects])
+AM_SILENT_RULES([yes])
+
+AC_CONFIG_MACRO_DIRS([m4])
+
+# Check for required build tools
+AC_PROG_CC
+AC_PROG_CC_C99
+AC_PROG_LIBTOOL
+
+# Check for libguac
+AC_CHECK_LIB([guac], [guac_client_stream_png],,
+      AC_MSG_ERROR("libguac is required for communication via "
+                   "the Guacamole protocol"))
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT</pre></div><p>We also need a <code class="filename">Makefile.am</code>, describing which files should be
+            built and how when building
+            libguac-client-ball:<a id="ball-01-Makefile.am"></a></p><pre xml:lang="en" class="programlisting" lang="en">AUTOMAKE_OPTIONS = foreign
+
+ACLOCAL_AMFLAGS = -I m4
+AM_CFLAGS = -Werror -Wall -pedantic
+
+lib_LTLIBRARIES = libguac-client-ball.la
+
+# All source files of libguac-client-ball
+libguac_client_ball_la_SOURCES = src/ball.c
+
+# libtool versioning information
+libguac_client_ball_la_LDFLAGS = -version-info 0:0:0</pre><p>The GNU Automake files will remain largely unchanged throughout
+            the rest of the tutorial. </p><p>Once you have created all of the above files, you will have a functioning client
+            plugin. It doesn't do anything yet, and any connection will be extremely short-lived
+            (the lack of any data sent by the server will lead to the client disconnecting under the
+            assumption that the connection has stopped responding), but it does technically
+            work.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-ball-display-init"></a>Initializing the remote display</h2></div></div></div><p>Now that we have a basic functioning skeleton, we need to actually do something with
+            the remote display. A good first step would be simply initializing the display - setting
+            the remote display size and providing a basic background.</p><p>In this case, we'll set the display to a nice default of 1024x768, and fill the
+            background with gray. Though the size of the display <span class="emphasis"><em>can</em></span> be chosen
+            based on the size of the user's browser window (which is provided by the user during the
+                <a class="link" href="guacamole-protocol.html#guacamole-protocol-handshake" title="Handshake phase">Guacamole protocol handshake</a>), or even
+            updated when the window size changes (provided by the user via <a class="link" href="protocol-reference.html#size-event-instruction" title="size">"size"
+                instructions</a>), we won't be doing that here for the simplicity's sake:</p><div class="informalexample"><a id="ball-02-ball_client.c"></a><pre xml:lang="en" class="programlisting" lang="en">#include &lt;guacamole/client.h&gt;
+<span class="emphasis"><em>#include &lt;guacamole/protocol.h&gt;
+#include &lt;guacamole/socket.h&gt;
+#include &lt;guacamole/user.h&gt;</em></span>
+
+#include &lt;stdlib.h&gt;
+
+...
+
+<span class="emphasis"><em>int ball_join_handler(guac_user* user, int argc, char** argv) {
+
+    /* Get client associated with user */
+    guac_client* client = user-&gt;client;
+
+    /* Get user-specific socket */
+    guac_socket* socket = user-&gt;socket;
+
+    /* Send the display size */
+    guac_protocol_send_size(socket, GUAC_DEFAULT_LAYER, 1024, 768);
+
+    /* Prepare a curve which covers the entire layer */
+    guac_protocol_send_rect(socket, GUAC_DEFAULT_LAYER,
+            0, 0, 1024, 768);
+
+    /* Fill curve with solid color */
+    guac_protocol_send_cfill(socket,
+            GUAC_COMP_OVER, GUAC_DEFAULT_LAYER,
+            0x80, 0x80, 0x80, 0xFF);
+
+    /* Mark end-of-frame */
+    guac_protocol_send_sync(socket, client-&gt;last_sent_timestamp);
+
+    /* Flush buffer */
+    guac_socket_flush(socket);
+
+    /* User successfully initialized */
+    return 0;
+
+}</em></span>
+
+int guac_client_init(guac_client* client) {
+
+    /* This example does not implement any arguments */
+    client-&gt;args = TUTORIAL_ARGS;
+<span class="emphasis"><em>
+    /* Client-level handlers */
+    client-&gt;join_handler = ball_join_handler;
+</em></span>
+    return 0;
+
+}</pre></div><p>The most important thing to notice here is the new
+                <code class="function">ball_join_handler()</code> function. As it is assigned to
+                <span class="property">join_handler</span> of the <code class="classname">guac_client</code> given to
+                <code class="function">guac_client_init</code>, users which join the connection (including
+            the user that opened the connection in the first place) will be passed to this function.
+            It is the duty of the join handler to initialize the provided
+                <code class="classname">guac_user</code>, taking into account any arguments received from
+            the user during the connection handshake (exposed through <code class="varname">argc</code> and
+                <code class="varname">argv</code> to the join handler). We aren't implementing any arguments,
+            so these values are simply ignored, but we do need to initialize the user with respect
+            to display state. In this case, we:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Send a <a class="link" href="protocol-reference.html#size-instruction" title="size">"size" instruction</a>, initializing the
+                    display size to 1024x768.</p></li><li class="listitem"><p>Draw a 1024x768 gray rectangle over the display using the <a class="link" href="protocol-reference.html#rect-instruction" title="rect">"rect"</a> and <a class="link" href="protocol-reference.html#cfill-instruction" title="cfill">"cfill"</a> instructions.</p></li><li class="listitem"><p>Send a <a class="link" href="protocol-reference.html#server-sync-instruction" title="sync">"sync" instruction</a>, informing the
+                    remote display that a frame has been completed.</p></li><li class="listitem"><p>Flush the socket, ensuring that all data written to the socket thus far is
+                    immediately sent to the user.</p></li></ol></div><p>At this point, if you build, install, and connect using the plugin, you will see a
+            gray screen. The connection will still be extremely short-lived, however, since the only
+            data ever sent by the plugin is sent when the user first joins. The lack of any data
+            sent by the server over the remaining life of the connection will lead to the client
+            disconnecting under the assumption that the connection has stopped responding. This will
+            be rectified shortly once we add the bouncing ball.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-ball-layer"></a>Adding the ball</h2></div></div></div><p>This tutorial is about making a bouncing ball "client", so naturally we need a ball to
+            bounce. While we could repeatedly draw and erase a ball on the remote display, a more
+            efficient technique would be to leverage Guacamole's layers.</p><p>The remote display has a single root layer, <code class="varname">GUAC_DEFAULT_LAYER</code>, but
+            there can be infinitely many other child layers, which can themselves have child layers,
+            and so on. Each layer can be dynamically repositioned within and relative to another
+            layer. Because the compositing of these layers is handled by the remote display, and is
+            likely hardware-accelerated, this is a much better way to repeatedly reposition
+            something we expect to move a lot.</p><p>Since we're finally adding the ball, and there needs to be some structure which
+            maintains the state of the ball, we must create a header file,
+                <code class="filename">src/ball.h</code>, to define this:</p><div class="informalexample"><pre xml:lang="en" class="programlisting" lang="en">#ifndef BALL_H
+#define BALL_H
+
+#include &lt;guacamole/layer.h&gt;
+
+typedef struct ball_client_data {
+
+    guac_layer* ball;
+
+} ball_client_data;
+
+#endif</pre></div><p>To make the build system aware of the existence of the new
+                <code class="filename">src/ball.h</code> header file, <code class="filename">Makefile.am</code> must
+            be updated as well:</p><div class="informalexample"><pre xml:lang="en" class="programlisting" lang="en">...
+
+# All source files of libguac-client-ball
+<span class="emphasis"><em>noinst_HEADERS = src/ball.h</em></span>
+libguac_client_ball_la_SOURCES = src/ball.c
+
+...</pre></div><p>This new structure is intended to house the client-level state of the ball,
+            independent of any users which join or leave the connection. The structure must be
+            allocated when the client begins (within <code class="function">guac_client_init</code>), freed
+            when the client terminates (via a new client free handler), and must contain the layer
+            which represents the ball within the remote display. As this layer is part of the remote
+            display state, it must additionally be initialized when a user joins, in the same way
+            that the display overall was initialized in earlier steps:</p><div class="informalexample"><a id="ball-03-ball_client.c"></a><pre xml:lang="en" class="programlisting" lang="en"><span class="emphasis"><em>#include "ball.h"</em></span>
+
+#include &lt;guacamole/client.h&gt;
+<span class="emphasis"><em>#include &lt;guacamole/layer.h&gt;</em></span>
+#include &lt;guacamole/protocol.h&gt;
+#include &lt;guacamole/socket.h&gt;
+#include &lt;guacamole/user.h&gt;
+
+#include &lt;stdlib.h&gt;
+
+...
+
+int ball_join_handler(guac_user* user, int argc, char** argv) {
+
+    /* Get client associated with user */
+    guac_client* client = user-&gt;client;
+<span class="emphasis"><em>
+    /* Get ball layer from client data */
+    ball_client_data* data = (ball_client_data*) client-&gt;data;
+    guac_layer* ball = data-&gt;ball;
+</em></span>
+    ...
+<span class="emphasis"><em>
+    /* Set up ball layer */
+    guac_protocol_send_size(socket, ball, 128, 128);
+
+    /* Prepare a curve which covers the entire layer */
+    guac_protocol_send_rect(socket, ball,
+            0, 0, 128, 128);
+
+    /* Fill curve with solid color */
+    guac_protocol_send_cfill(socket,
+            GUAC_COMP_OVER, ball,
+            0x00, 0x80, 0x80, 0xFF);
+</em></span>
+    /* Mark end-of-frame */
+    guac_protocol_send_sync(socket, client-&gt;last_sent_timestamp);
+
+    /* Flush buffer */
+    guac_socket_flush(socket);
+
+    /* User successfully initialized */
+    return 0;
+
+}
+
+<span class="emphasis"><em>int ball_free_handler(guac_client* client) {
+
+    ball_client_data* data = (ball_client_data*) client-&gt;data;
+
+    /* Free client-level ball layer */
+    guac_client_free_layer(client, data-&gt;ball);
+
+    /* Free client-specific data */
+    free(data);
+
+    /* Data successfully freed */
+    return 0;
+
+}</em></span>
+
+int guac_client_init(guac_client* client) {
+<span class="emphasis"><em>
+    /* Allocate storage for client-specific data */
+    ball_client_data* data = malloc(sizeof(ball_client_data));
+
+    /* Set up client data and handlers */
+    client-&gt;data = data;
+
+    /* Allocate layer at the client level */
+    data-&gt;ball = guac_client_alloc_layer(client);
+</em></span>
+    ...
+
+    /* Client-level handlers */
+    client-&gt;join_handler = ball_join_handler;
+    <span class="emphasis"><em>client-&gt;free_handler = ball_free_handler;</em></span>
+
+    return 0;
+
+}</pre></div><p>The allocate/free pattern for the client-specific data and layers should be pretty
+            straightforward - the allocation occurs when the objects (the layer and the structure
+            housing it) are first needed, and the allocated objects are freed once they are no
+            longer needed (when the client terminates) to avoid leaking memory. The initialization
+            of the ball layer using the Guacamole protocol should be familiar as well - it's
+            identical to the way the screen was initialized, and involves the same
+            instructions.</p><p>Beyond layers, Guacamole has the concept of buffers, which are identical in use to
+            layers except they are invisible. Buffers are used to store image data for the sake of
+            caching or drawing operations. We will use them later when we try to make this tutorial
+            prettier. If you build and install the ball client as-is now, you will see a large gray
+            rectangle (the root layer) with a small blue square in the upper left corner (the ball
+            layer).</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-ball-bounce"></a>Making the ball bounce</h2></div></div></div><p>To make the ball bounce, we need to track the ball's state, including current position
+            and velocity, as well as a thread which updates the ball's state (and the remote
+            display) as time progresses. The ball state and thread can be stored alongside the ball
+            layer in the existing client-level data structure:</p><div class="informalexample"><a id="ball-04-ball_client.h"></a><pre xml:lang="en" class="programlisting" lang="en">...
+
+#include &lt;guacamole/layer.h&gt;
+
+<span class="emphasis"><em>#include &lt;pthread.h&gt;</em></span>
+
+typedef struct ball_client_data {
+
+    guac_layer* ball;
+<span class="emphasis"><em>
+    int ball_x;
+    int ball_y;
+
+    int ball_velocity_x;
+    int ball_velocity_y;
+
+    pthread_t render_thread;
+</em></span>
+} ball_client_data;
+
+...</pre></div><p>The contents of the thread will update these values at a pre-defined rate, changing
+            ball position with respect to velocity, and changing velocity with respect to collisions
+            with the display boundaries:</p><div class="informalexample"><pre xml:lang="en" class="programlisting" lang="en">#include "ball.h"
+
+#include &lt;guacamole/client.h&gt;
+#include &lt;guacamole/layer.h&gt;
+#include &lt;guacamole/protocol.h&gt;
+#include &lt;guacamole/socket.h&gt;
+#include &lt;guacamole/user.h&gt;
+
+<span class="emphasis"><em>#include &lt;pthread.h&gt;</em></span>
+#include &lt;stdlib.h&gt;
+
+...
+
+<span class="emphasis"><em>void* ball_render_thread(void* arg) {
+
+    /* Get data */
+    guac_client* client = (guac_client*) arg;
+    ball_client_data* data = (ball_client_data*) client-&gt;data;
+
+    /* Update ball position as long as client is running */
+    while (client-&gt;state == GUAC_CLIENT_RUNNING) {
+
+        /* Sleep a bit */
+        usleep(30000);
+
+        /* Update position */
+        data-&gt;ball_x += data-&gt;ball_velocity_x * 30 / 1000;
+        data-&gt;ball_y += data-&gt;ball_velocity_y * 30 / 1000;
+
+        /* Bounce if necessary */
+        if (data-&gt;ball_x &lt; 0) {
+            data-&gt;ball_x = -data-&gt;ball_x;
+            data-&gt;ball_velocity_x = -data-&gt;ball_velocity_x;
+        }
+        else if (data-&gt;ball_x &gt;= 1024 - 128) {
+            data-&gt;ball_x = (2 * (1024 - 128)) - data-&gt;ball_x;
+            data-&gt;ball_velocity_x = -data-&gt;ball_velocity_x;
+        }
+
+        if (data-&gt;ball_y &lt; 0) {
+            data-&gt;ball_y = -data-&gt;ball_y;
+            data-&gt;ball_velocity_y = -data-&gt;ball_velocity_y;
+        }
+        else if (data-&gt;ball_y &gt;= 768 - 128) {
+            data-&gt;ball_y = (2 * (768 - 128)) - data-&gt;ball_y;
+            data-&gt;ball_velocity_y = -data-&gt;ball_velocity_y;
+        }
+
+        guac_protocol_send_move(client-&gt;socket, data-&gt;ball,
+                GUAC_DEFAULT_LAYER, data-&gt;ball_x, data-&gt;ball_y, 0);
+
+        /* End frame and flush socket */
+        guac_client_end_frame(client);
+        guac_socket_flush(client-&gt;socket);
+
+    }
+
+    return NULL;
+
+}</em></span>
+
+...</pre></div><p>Just as with the join handler, this thread sends a "sync" instruction to denote the
+            end of each frame, though here this is accomplished with
+                <code class="function">guac_client_end_frame()</code>. This function sends a "sync"
+            containing the current timestamp, and updates the properties of the
+                <code class="classname">guac_client</code> with the last-sent timestamp (the value that our
+            join handler uses to send <span class="emphasis"><em>its</em></span> sync). Note that we don't redraw the
+            whole display with each frame - we simply update the position of the ball layer using a
+                <a class="link" href="protocol-reference.html#move-instruction" title="move">"move"
+                instruction</a>, and rely on the remote display to handle compositing on its
+            own.</p><p>We now need to update <code class="methodname">guac_client_init</code> to actually create
+            this thread, initialize the ball state within the structure, and store the thread for
+            future cleanup when the client terminates:</p><div class="informalexample"><a id="ball-04-ball_client.c"></a><pre xml:lang="en" class="programlisting" lang="en">...
+
+int ball_free_handler(guac_client* client) {
+
+    ball_client_data* data = (ball_client_data*) client-&gt;data;
+<span class="emphasis"><em>
+    /* Wait for render thread to terminate */
+    pthread_join(data-&gt;render_thread, NULL);
+</em></span>
+    ...
+
+}
+
+int guac_client_init(guac_client* client) {
+
+    ...
+<span class="emphasis"><em>
+    /* Start ball at upper left */
+    data-&gt;ball_x = 0;
+    data-&gt;ball_y = 0;
+
+    /* Move at a reasonable pace to the lower right */
+    data-&gt;ball_velocity_x = 200; /* pixels per second */
+    data-&gt;ball_velocity_y = 200; /* pixels per second */
+
+    /* Start render thread */
+    pthread_create(&amp;data-&gt;render_thread, NULL, ball_render_thread, client);
+</em></span>
+    ...
+
+}</pre></div><p>The thread contains a render loop which continually checks the
+                <span class="property">state</span> property of the <code class="classname">guac_client</code>. This
+            property is set to <code class="constant">GUAC_CLIENT_RUNNING</code> when the connection begins,
+            and remains that way for the duration of the connection. When guacd needs to terminate
+            the connection (such as when the last user leaves), the value will change to
+                <code class="constant">GUAC_CLIENT_STOPPING</code>. The free handler we've written can thus
+            rely on <code class="function">pthread_join()</code> to block until the data previously used by
+            the plugin is no longer being used and can safely be freed.</p><p>Once built and installed, our ball client now has a bouncing ball, albeit a very
+            square and plain one. Now that the display is continually updating, and data is being
+            continually received from the server, connected clients will no longer automatically
+            disconnect.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-ball-pretty"></a>A prettier ball</h2></div></div></div><p>Now that we have our ball bouncing, we might as well try to make it actually look like
+            a ball, and try applying some of the fancier graphics features that Guacamole offers.
+            Guacamole provides instructions common to most 2D drawing APIs, including HTML5's canvas
+            and Cairo. This means you can draw arcs, curves, apply fill and stroke, and even use the
+            contents of another layer or buffer as the pattern for a fill or stroke. In complex
+            cases involving many draw operations, it will actually be more efficient to render to a
+            server-side Cairo surface and send only image data to the client, but it's perfect for
+            relatively simple cases like our ball.</p><p>We will try creating a simple gray checkerboard pattern in a buffer, using that for
+            the background instead of the previous gray rectangle, and will modify the ball by
+            replacing the rectangle with an arc, in this case a full circle, complete with stroke
+            (border) and translucent-blue fill:</p><div class="informalexample"><a id="ball-05-ball_client.c"></a><pre xml:lang="en" class="programlisting" lang="en">int ball_join_handler(guac_user* user, int argc, char** argv) {
+
+    ...
+<span class="emphasis"><em>
+    /* Create background tile */
+    guac_layer* texture = guac_client_alloc_buffer(client);
+
+    guac_protocol_send_rect(socket, texture, 0, 0, 64, 64);
+    guac_protocol_send_cfill(socket, GUAC_COMP_OVER, texture,
+            0x88, 0x88, 0x88, 0xFF);
+
+    guac_protocol_send_rect(socket, texture, 0, 0, 32, 32);
+    guac_protocol_send_cfill(socket, GUAC_COMP_OVER, texture,
+            0xDD, 0xDD, 0xDD, 0xFF);
+
+    guac_protocol_send_rect(socket, texture, 32, 32, 32, 32);
+    guac_protocol_send_cfill(socket, GUAC_COMP_OVER, texture,
+            0xDD, 0xDD, 0xDD, 0xFF);
+</em></span>
+
+    /* Prepare a curve which covers the entire layer */
+    guac_protocol_send_rect(socket, GUAC_DEFAULT_LAYER,
+            0, 0, 1024, 768);
+
+     /* Fill curve with <span class="emphasis"><em>texture</em></span> */
+    <span class="emphasis"><em>guac_protocol_send_lfill</em></span>(socket,
+            GUAC_COMP_OVER, GUAC_DEFAULT_LAYER,
+            <span class="emphasis"><em>texture</em></span>);
+
+    /* Set up ball layer */
+    guac_protocol_send_size(socket, ball, 128, 128);
+<span class="emphasis"><em>
+    /* Prepare a circular curve */
+    guac_protocol_send_arc(socket, data-&gt;ball,
+            64, 64, 62, 0, 6.28, 0);
+
+    guac_protocol_send_close(socket, data-&gt;ball);
+
+    /* Draw a 4-pixel black border */
+    guac_protocol_send_cstroke(socket,
+            GUAC_COMP_OVER, data-&gt;ball,
+            GUAC_LINE_CAP_ROUND, GUAC_LINE_JOIN_ROUND, 4,
+            0x00, 0x00, 0x00, 0xFF);
+
+    /* Fill the circle with color */
+    guac_protocol_send_cfill(socket,
+            GUAC_COMP_OVER, data-&gt;ball,
+            0x00, 0x80, 0x80, 0x80);
+
+    /* Free texture (no longer needed) */
+    guac_client_free_buffer(client, texture);
+</em></span>
+    /* Mark end-of-frame */
+    guac_protocol_send_sync(socket, client-&gt;last_sent_timestamp);
+
+    ...
+
+}</pre></div><p>Again, because we put the ball in its own layer, we don't have to worry about
+            compositing it ourselves. The remote display will handle this, and will likely do so
+            with hardware acceleration, even though the ball is now translucent. Build and install
+            the ball client after this step, and you will have a rather nice-looking bouncing
+            ball.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-ball-time"></a>Handling the passage of time</h2></div></div></div><p>There are never any guarantees when it comes to timing, threads, and network
+            performance. We cannot necessarily rely on the remote display to handle updates in a
+            timely manner (it may be slow), nor can we rely on the network or server to give
+            priority to communication from guacd. </p><p>The render thread needs to be modified to take this into account, by tracking the
+            actual time spent within each frame, and estimating the amount of time the client spends
+            rendering each frame:</p><div class="informalexample"><pre xml:lang="en" class="programlisting" lang="en">#include "ball.h"
+
+#include &lt;guacamole/client.h&gt;
+#include &lt;guacamole/layer.h&gt;
+#include &lt;guacamole/protocol.h&gt;
+#include &lt;guacamole/socket.h&gt;
+<span class="emphasis"><em>#include &lt;guacamole/timestamp.h&gt;</em></span>
+#include &lt;guacamole/user.h&gt;
+
+#include &lt;pthread.h&gt;
+#include &lt;stdlib.h&gt;
+
+...
+
+void* ball_render_thread(void* arg) {
+
+    ...
+<span class="emphasis"><em>
+    /* Init time of last frame to current time */
+    guac_timestamp last_frame = guac_timestamp_current();
+</em></span>
+    /* Update ball position as long as client is running */
+    while (client-&gt;state == CLIENT_RUNNING) {
+<span class="emphasis"><em>
+        /* Default to 30ms frames */
+        int frame_duration = 30;
+
+        /* Lengthen frame duration if client is lagging */
+        int processing_lag = guac_client_get_processing_lag(client);
+        if (processing_lag &gt; frame_duration)
+            frame_duration = processing_lag;
+
+        /* Sleep for duration of frame, then get timestamp */
+        usleep(frame_duration);
+        guac_timestamp current = guac_timestamp_current();
+
+        /* Calculate change in time */
+        int delta_t = current - last_frame;
+</em></span>
+        /* Update position */
+        data-&gt;ball_x += data-&gt;ball_velocity_x * <span class="emphasis"><em>delta_t</em></span> / 1000;
+        data-&gt;ball_y += data-&gt;ball_velocity_y * <span class="emphasis"><em>delta_t</em></span> / 1000;
+
+        ...
+<span class="emphasis"><em>
+        /* Update timestamp */
+        last_frame = current;
+</em></span>
+    }
+
+    ...
+
+}</pre></div><p>The calculations are pretty simple. Rather than hard-code the duration of each frame,
+            we us a default of 30 milliseconds, lengthening the frame if Guacamole's built-in lag
+            estimation determines that the client is having trouble. The physics portion of the
+            update no longer assumes that the frame will be exactly 30 milliseconds, instead relying
+            on the actual time elapsed since the previous frame.</p><p>At this point, we now have a robust Guacamole client plugin. It handles
+            joining/leaving users correctly, continually updates the remote display state while
+            taking into account variable network/server/client conditions, and cleans up after
+            itself when the connection finally terminates.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="guacamole-ext.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="custom-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 22. guacamole-ext </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 24. Custom authentication</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/developers-guide.html b/doc/1.1.0/gug/developers-guide.html
new file mode 100644
index 0000000..b07a9e9
--- /dev/null
+++ b/doc/1.1.0/gug/developers-guide.html
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part II. Developer's Guide</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="index.html" title="Guacamole Manual" /><link rel="prev" href="troubleshooting.html" title="Chapter 17. Troubleshooting" /><link rel="next" href="guacamole-protocol.html" title="Chapter 18. The Guacamole protocol" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part II. Developer's Guide</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="troubleshooting.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="guacamole-protocol.html">Next</a></td></tr></table><hr /></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a id="developers-guide"></a>Part II. Developer's Guide</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="chapter"><a href="guacamole-protocol.html">18. The Guacamole protocol</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-design">Design</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-handshake">Handshake phase</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-drawing">Drawing</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-streaming">Streams and objects</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-events">Events</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-disconnecting">Disconnecting</a></span></dt></dl></dd><dt><span class="chapter"><a href="libguac.html">19. libguac</a></span></dt><dd><dl><dt><span class="section"><a href="libguac.html#libguac-error-handling">Error handling</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-client-plugins">Client plugins</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-layers">Layers and buffers</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-streams">Streams</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-sending-instructions">Sending instructions</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-event-handling">Event handling</a></span></dt></dl></dd><dt><span class="chapter"><a href="guacamole-common.html">20. <span class="package">guacamole-common</span></a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-common.html#java-http-tunnel">HTTP tunnel</a></span></dt><dt><span class="section"><a href="guacamole-common.html#java-protocol-usage">Using the Guacamole protocol</a></span></dt></dl></dd><dt><span class="chapter"><a href="guacamole-common-js.html">21. guacamole-common-js</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-common-js.html#guacamole-client">Guacamole client</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#http-tunnel">HTTP tunnel</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#input-abstraction">Input abstraction</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#on-screen-keyboard">On-screen keyboard</a></span></dt></dl></dd><dt><span class="chapter"><a href="guacamole-ext.html">22. guacamole-ext</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-ext.html#ext-file-format">Guacamole extension format</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-environment">Accessing the server configuration</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-auth-providers">Authentication providers</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-user-context">The <code class="classname">UserContext</code></a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-object-directories"><code class="classname">Directory</code> classes</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-rest-resources">REST resources</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-permissions">Permissions</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-connections">Connections</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-active-connections">Managing/sharing active connections</a></span></dt></dl></dd><dt><span class="chapter"><a href="custom-protocols.html">23. Adding new protocols</a></span></dt><dd><dl><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-skeleton">Minimal skeleton client</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-display-init">Initializing the remote display</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-layer">Adding the ball</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-bounce">Making the ball bounce</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-pretty">A prettier ball</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-time">Handling the passage of time</a></span></dt></dl></dd><dt><span class="chapter"><a href="custom-auth.html">24. Custom authentication</a></span></dt><dd><dl><dt><span class="section"><a href="custom-auth.html#custom-auth-model">Guacamole's authentication model</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-skeleton">A Guacamole extension skeleton</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-building">Building the extension</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-config">Configuration and authentication</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-more-config">Parsing the configuration</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-installing">Installing the extension</a></span></dt></dl></dd><dt><span class="chapter"><a href="event-listeners.html">25. Event listeners</a></span></dt><dd><dl><dt><span class="section"><a href="event-listeners.html#custom-event-listener-skeleton">A Guacamole listener extension skeleton</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-building">Building the extension</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-event-handling">Handling events</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-veto">Influencing Guacamole by event veto</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-installing">Installing the extension</a></span></dt></dl></dd><dt><span class="chapter"><a href="writing-you-own-guacamole-app.html">26. Writing your own Guacamole application</a></span></dt><dd><dl><dt><span class="section"><a href="writing-you-own-guacamole-app.html#basic-guacamole-architecture">The basics</a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#web-app-skeleton">Web application skeleton</a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#guacamole-skeleton">Adding Guacamole</a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#next-steps">Where to go from here</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="troubleshooting.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="guacamole-protocol.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 17. Troubleshooting </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 18. The Guacamole protocol</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/duo-auth.html b/doc/1.1.0/gug/duo-auth.html
new file mode 100644
index 0000000..8691385
--- /dev/null
+++ b/doc/1.1.0/gug/duo-auth.html
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 8. Duo two-factor authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="ldap-auth.html" title="Chapter 7. LDAP authentication" /><link rel="next" href="totp-auth.html" title="Chapter 9. TOTP two-factor authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 8. Duo two-factor authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ldap-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="totp-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="duo-auth"></a>Chapter 8. Duo two-factor authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="duo-auth.html#duo-architecture">How Duo works with Guacamole</a></span></dt><dt><span class="section"><a href="duo-auth.html#duo-downloading">Downloading the Duo extension</a></span></dt><dt><span class="section"><a href="duo-auth.html#installing-duo-auth">Installing Duo authentication</a></span></dt><dd><dl><dt><span class="section"><a href="duo-auth.html#idm46420848464400">Adding Guacamole to Duo</a></span></dt><dt><span class="section"><a href="duo-auth.html#guac-duo-config">Configuring Guacamole for Duo</a></span></dt><dt><span class="section"><a href="duo-auth.html#completing-duo-install">Completing the installation</a></span></dt></dl></dd></dl></div><a id="idm46420849461648" class="indexterm"></a><p>Guacamole supports Duo as a second authentication factor, layered on top of any other
+        authentication extension, including those available from the main project website. The Duo
+        authentication extension allows users to be additionally verified against the Duo service
+        before the authentication process is allowed to succeed.</p><div class="important"><h3 class="title">Important</h3><p>This chapter involves modifying the contents of <code class="varname">GUACAMOLE_HOME</code> -
+            the Guacamole configuration directory. If you are unsure where
+                <code class="varname">GUACAMOLE_HOME</code> is located on your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before proceeding.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="duo-architecture"></a>How Duo works with Guacamole</h2></div></div></div><p>Guacamole provides support for Duo as a second authentication factor. To make use of
+            the Duo authentication extension, some other authentication mechanism will need be
+            configured, as well. When a user attempts to log into Guacamole, other installed
+            authentication methods will be queried first:</p><div class="informalfigure"><div class="mediaobject"><img src="images/duo-auth-factor-1.png" width="180" /></div></div><p>Only after authentication has succeeded with one of those methods will Guacamole reach
+            out to Duo to obtain additional verification of user identity:</p><div class="informalfigure"><div class="mediaobject"><img src="images/duo-auth-factor-2.png" width="360" /></div></div><p>If both the initial authentication attempt and verification through Duo succeed, the
+            user will be allowed in. If either mechanism fails, access to Guacamole is
+            denied.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="duo-downloading"></a>Downloading the Duo extension</h2></div></div></div><p>The Duo authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The Duo authentication extension is packaged as a <code class="filename">.tar.gz</code> file
+            containing only the extension itself,
+                <code class="filename">guacamole-auth-duo-1.1.0.jar</code>, which must ultimately
+            be placed in <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-duo-auth"></a>Installing Duo authentication</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory. To install
+            the Duo authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-duo-1.1.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use Duo authentication, as described below.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>You will need to restart Guacamole by restarting your servlet container in order
+                to complete the installation. Doing this will disconnect all active users, so be
+                sure that it is safe to do so prior to attempting installation. If you do not
+                configure the Duo authentication properly, Guacamole will not start up again until
+                the configuration is fixed.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420848464400"></a>Adding Guacamole to Duo</h3></div></div></div><p>Duo does not provide a specific integration option for Guacamole, but Guacamole's
+                Duo extension uses Duo's generic authentication API which they refer to as the "Web
+                SDK". To use Guacamole with Duo, you will need to add it as a new "Web SDK"
+                application from within the "Applications" tab of the admin panel of your Duo
+                account:</p><div class="informalfigure"><div class="mediaobject"><img src="images/duo-add-guacamole.png" width="540" /></div></div><p>Within the settings of the newly-added application, rename the application to
+                something more representative than "Web SDK". This application name is what will be
+                presented to your users when they are prompted by Duo for additional
+                authentication:</p><div class="informalfigure"><div class="mediaobject"><img src="images/duo-rename-guacamole.png" width="540" /></div></div><p>Once you've finished adding Guacamole as an "Web SDK" application, the
+                configuration information required to configure Guacamole is listed within the
+                application's "Details" section. You will need to copy the integration key, secret
+                key, and API hostname - they will later be specified within
+                    <code class="filename">guacamole.properties</code>:</p><div class="informalfigure"><div class="mediaobject"><img src="images/duo-copy-details.png" width="540" /></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-duo-config"></a>Configuring Guacamole for Duo</h3></div></div></div><a id="idm46420849227472" class="indexterm"></a><a id="idm46420849313824" class="indexterm"></a><p>The application-specific configuration information retrieved from Duo must be
+                added to <code class="filename">guacamole.properties</code> to describe how Guacamole should
+                connect to the Duo service:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">duo-api-hostname</span></span></dt><dd><p>The hostname of the Duo API endpoint to be used to verify user
+                            identities. This will usually be in the form
+                                    "<code class="uri">api-<em class="replaceable"><code>XXXXXXXX</code></em>.duosecurity.com</code>",
+                            where "<em class="replaceable"><code>XXXXXXXX</code></em>" is some arbitrary
+                            alphanumeric value assigned by Duo. This value will have been generated
+                            by Duo when you added Guacamole as an "Web SDK" application, and can be
+                            found within the application details in the "API hostname" field.
+                                <span class="emphasis"><em>This value is required.</em></span></p></dd><dt><span class="term"><span class="property">duo-integration-key</span></span></dt><dd><p>The integration key provided for Guacamole by Duo. This value will
+                            have been generated by Duo when you added Guacamole as an "Web SDK"
+                            application, and can be found within the application details in the
+                            "Integration key" field. <span class="emphasis"><em>This value is required and must be
+                                EXACTLY 20 characters.</em></span></p></dd><dt><span class="term"><span class="property">duo-secret-key</span></span></dt><dd><p>The secret key provided for Guacamole by Duo. This value will have
+                            been generated by Duo when you added Guacamole as an "Web SDK"
+                            application, and can be found within the application details in the
+                            "Secret key" field. <span class="emphasis"><em>This value is required and must be EXACTLY
+                                20 characters.</em></span></p></dd></dl></div><p>In addition to the above, <span class="emphasis"><em>you must also manually generate an
+                    "application key"</em></span>. The application key is required by Duo's
+                authentication API, but is not provided by Duo. It is an arbitrary value meant to be
+                unique to each deployment of an application using their API.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">duo-application-key</span></span></dt><dd><p>An arbitrary, random key which you manually generated for Guacamole.
+                                <span class="emphasis"><em>This value is required and must be AT LEAST 40
+                                characters.</em></span></p></dd></dl></div><p>The application key can be generated with any method as long as it is sufficiently
+                random. There exist utilities which will do this for you, like
+                    <span class="command"><strong>pwgen</strong></span>:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>pwgen 40 1</code></strong>
+<code class="computeroutput">em1io4zievohneeseiwah0zie2raQuoo2ci5oBoo</code>
+<code class="prompt">$</code></pre></div><p>Alternatively, one quick and fairly portable way to do this is to use the
+                    <span class="command"><strong>dd</strong></span> utility to copy random bytes from the secure random device
+                    <code class="filename">/dev/random</code>, sending the data through a cryptographic hash
+                tool with a sufficiently-long result, like <span class="command"><strong>sha256sum</strong></span>:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>dd if=/dev/random count=1 | sha256sum</code></strong>
+<code class="computeroutput">5d16d6bb86da73e7d1abd3286b21dcf3b3e707532e64ceebc7a008350d0d485d -</code>
+<code class="prompt">$</code></pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="completing-duo-install"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before Duo authentication will take effect. Restart your servlet container
+                and give the new authentication a try.</p><p>
+                </p><div class="important"><h3 class="title">Important</h3><p>You only need to restart your servlet container. <span class="emphasis"><em>You do not need
+                            to restart <span class="package">guacd</span></em></span>.</p><p><span class="package">guacd</span> is completely independent of the web application
+                        and does not deal with <code class="filename">guacamole.properties</code> or the
+                        authentication system in any way. Since you are already restarting the
+                        servlet container, restarting <span class="package">guacd</span> as well technically
+                        won't hurt anything, but doing so is completely pointless.</p></div><p>
+            </p><p>If Guacamole does not come back online after restarting your servlet container,
+                check the logs. Problems in the configuration of the Duo extension may prevent
+                Guacamole from starting up, and any such errors will be recorded in the logs of your
+                servlet container.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ldap-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="totp-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 7. LDAP authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 9. TOTP two-factor authentication</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/event-listeners.html b/doc/1.1.0/gug/event-listeners.html
new file mode 100644
index 0000000..8db1af6
--- /dev/null
+++ b/doc/1.1.0/gug/event-listeners.html
@@ -0,0 +1,282 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 25. Event listeners</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="custom-auth.html" title="Chapter 24. Custom authentication" /><link rel="next" href="writing-you-own-guacamole-app.html" title="Chapter 26. Writing your own Guacamole application" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 25. Event listeners</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="custom-auth.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="writing-you-own-guacamole-app.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="event-listeners"></a>Chapter 25. Event listeners</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="event-listeners.html#custom-event-listener-skeleton">A Guacamole listener extension skeleton</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-building">Building the extension</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-event-handling">Handling events</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-veto">Influencing Guacamole by event veto</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-installing">Installing the extension</a></span></dt></dl></div><a id="idm46420844613760" class="indexterm"></a><p>Guacamole supports the delivery of event notifications to custom extensions.
+        Developers can use listener extensions to integrate custom handling of events such as 
+        successful and failed authentications, and requests to connect and disconnect tunnels to 
+        desktop environments.</p><p>A listener extension could be used, for example, to record authentication attempts in 
+        an external database for security auditing or alerting. By listening to tunnel lifecycle 
+        events, a listener extension could be used to help coordinate startup and shutdown of 
+        machine resources; particularly useful in cloud environments where minimizing 
+        running-but-idle resources is an important cost savings measure.</p><p>For certain <span class="emphasis"><em>vetoable</em></span> events, an event listener can even influence
+        Guacamole's behavior. For example, a listener can veto a successful authentication,
+        effectively causing the authentication to be considered failed. Similarly, a listener 
+        can veto a tunnel connection, effectively preventing the tunnel from being connected to
+        a virtual desktop resource.</p><p>Custom event listeners are packaged using the same extension mechanism used for
+        custom authentication providers. A single listener extension can include any number of 
+        classes that implement the listener interface. A single extension module can also include
+        any combination of authentication providers and listeners, so developers can easily
+        combine authentication providers with listeners designed to support them.</p><p>To demonstrate the principles involved in receiving Guacamole event notifications, we 
+        will implement a simple listener extension that logs authentication events. While our 
+        approach simply writes event details to the same log used by the Guacamole web application, 
+        a listener could process these events in arbitrary ways, limited only by the imagination and
+        ingenuity of the developer.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-event-listener-skeleton"></a>A Guacamole listener extension skeleton</h2></div></div></div><p>For simplicity's sake, and because this is how things are done upstream in the
+            Guacamole project, we will use Maven to build our extension.</p><p>The bare minimum required for a Guacamole listener extension is a
+                <code class="filename">pom.xml</code> file listing guacamole-ext as a dependency, a single
+            <code class="filename">.java</code> file implementing our stub of a listener, and a
+                <code class="filename">guac-manifest.json</code> file describing the extension and pointing
+            to our listener class.</p><div class="example"><a id="idm46420844611728"></a><p class="title"><strong>Example 25.1. Barebones <code class="filename">pom.xml</code> required for a simple listener
+                extension that writes log messages for received events.</strong></p><div class="example-contents"><pre class="programlisting">&lt;project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+                        http://maven.apache.org/maven-v4_0_0.xsd"&gt;
+
+    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
+    &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+    &lt;artifactId&gt;guacamole-listener-tutorial&lt;/artifactId&gt;
+    &lt;packaging&gt;jar&lt;/packaging&gt;
+    &lt;version&gt;1.1.0&lt;/version&gt;
+    &lt;name&gt;guacamole-listener-tutorial&lt;/name&gt;
+
+    &lt;properties&gt;
+        &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
+    &lt;/properties&gt;
+
+    &lt;build&gt;
+        &lt;plugins&gt;
+
+            &lt;!-- Written for 1.6 --&gt;
+            &lt;plugin&gt;
+                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+                &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
+                &lt;version&gt;3.3&lt;/version&gt;
+                &lt;configuration&gt;
+                    &lt;source&gt;1.6&lt;/source&gt;
+                    &lt;target&gt;1.6&lt;/target&gt;
+                &lt;/configuration&gt;
+            &lt;/plugin&gt;
+
+        &lt;/plugins&gt;
+    &lt;/build&gt;
+
+    &lt;dependencies&gt;
+
+        &lt;!-- Guacamole Extension API --&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+            &lt;artifactId&gt;guacamole-ext&lt;/artifactId&gt;
+            &lt;version&gt;1.1.0&lt;/version&gt;
+            &lt;scope&gt;provided&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;!-- Slf4j API --&gt;
+        &lt;!-- This is needed only if your listener wants to 
+                write to the Guacamole web application log --&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
+            &lt;artifactId&gt;slf4j-api&lt;/artifactId&gt;
+            &lt;version&gt;1.7.7&lt;/version&gt;
+            &lt;scope&gt;provided&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+    &lt;/dependencies&gt;
+
+&lt;/project&gt;</pre></div></div><br class="example-break" /><p>Naturally, we need the actual listener extension skeleton code. While you can
+            put this in whatever file and package you want, for the sake of this tutorial, we will
+            assume you are using
+                <code class="classname">org.apache.guacamole.event.TutorialListener</code>.</p><p>For now, we won't actually do anything other than log the fact that an event 
+            notification was received. At this point, we're just creating the skeleton for our 
+            listener extension.</p><div class="example"><a id="idm46420844621568"></a><p class="title"><strong>Example 25.2. A skeleton <code class="classname">TutorialListener</code></strong></p><div class="example-contents"><pre class="programlisting">package org.apache.guacamole.event;
+
+import org.apache.guacamole.GuacamoleException;
+import org.apache.guacamole.net.event.listener.Listener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A Listener implementation intended to demonstrate basic use
+ * of Guacamole's listener extension API.
+ */
+public class TutorialListener implements Listener {
+
+    private static final Logger logger = 
+         LoggerFactory.getLogger(TutorialListener.class);
+
+    @Override
+    public void handleEvent(Object event) throws GuacamoleException {
+        logger.info("received Guacamole event notification");
+    }
+
+}</pre></div></div><br class="example-break" /><p>To conform with Maven, this skeleton file must be placed within
+                <code class="filename">src/main/java/org/apache/guacamole/event</code> as
+                <code class="filename">TutorialListener.java</code>.</p><p>As you can see, implementing a listener is quite simple. There is a single 
+            <code class="classname">Listener</code> interface to implement. All Guacamole event
+            notifications will be delivered to your code by invoking the 
+            <code class="methodname">handleEvent</code> method. We will see shortly how to use
+            the passed event object to get the details of the event itself.
+        </p><p>The only remaining piece for the overall skeleton to be complete is a
+                <code class="filename">guac-manifest.json</code> file. <span class="emphasis"><em>This file is absolutely
+                required for all Guacamole extensions.</em></span> The
+                <code class="filename">guac-manifest.json</code> format is described in more detail in <a class="xref" href="guacamole-ext.html" title="Chapter 22. guacamole-ext">Chapter 22, <em>guacamole-ext</em></a>. It provides
+            for quite a few properties, but for our listener extension we are mainly
+            interested in the Guacamole version sanity check (to make sure an extension built for
+            the API of Guacamole version X is not accidentally used against version Y) and telling
+            Guacamole where to find our listener class.</p><p>The Guacamole extension format requires that <code class="filename">guac-manifest.json</code>
+            be placed in the root directory of the extension <code class="filename">.jar</code> file. To
+            accomplish this with Maven, we place it within the
+                <code class="filename">src/main/resources</code> directory. Maven will automatically pick it
+            up during the build and include it within the <code class="filename">.jar</code>.</p><div class="example"><a id="idm46420844321392"></a><p class="title"><strong>Example 25.3. The required <code class="filename">guac-manifest.json</code></strong></p><div class="example-contents"><pre class="programlisting">{
+
+    "guacamoleVersion" : "1.1.0",
+
+    "name"      : "Tutorial Listener Extension",
+    "namespace" : "guac-listener-tutorial",
+
+    "listeners" : [
+        "org.apache.guacamole.event.TutorialListener"
+    ]
+
+}</pre></div></div><br class="example-break" /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-listener-building"></a>Building the extension</h2></div></div></div><p>Once all three of the above files are in place, the extension should build successfully
+            even though it is just a skeleton at this point.</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> mvn package
+<code class="computeroutput">[INFO] Scanning for projects...
+[INFO] ---------------------------------------------------------------
+[INFO] Building guacamole-listener-tutorial 1.1.0
+[INFO] ---------------------------------------------------------------
+...
+[INFO] ---------------------------------------------------------------
+[INFO] BUILD SUCCESS
+[INFO] ---------------------------------------------------------------
+[INFO] Total time: 1.297 s
+[INFO] Finished at: 2017-10-08T13:12:39-04:00
+[INFO] Final Memory: 19M/306M
+[INFO] ---------------------------------------------------------------</code>
+<code class="prompt">$</code></pre></div><p>Assuming you see the "<code class="computeroutput">BUILD SUCCESS</code>" message when you
+            build the extension, there will be a new file,
+                <code class="filename">target/guacamole-listener-tutorial-1.1.0.jar</code>, which can be
+            installed within Guacamole (see <a class="xref" href="event-listeners.html#custom-listener-installing" title="Installing the extension">the section called “Installing the extension”</a> at the end of this chapter). It should log
+            event notifications that occur during, for example, authentication attempts.
+            If you changed the name or version of the project
+            in the <code class="filename">pom.xml</code> file, the name of this new <code class="filename">.jar</code>
+            file will be different, but it can still be found within
+            <code class="filename">target/</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-listener-event-handling"></a>Handling events</h2></div></div></div><p>The Guacamole <code class="classname">Listener</code> interface represents a low-level event
+            handling API. A listener is notified of every event generated by Guacamole. The listener
+            must examine the event type to determine whether the event is of interest, and if so to 
+            dispatch the event to the appropriate entry point.</p><p>The event types that can be produced by Guacamole are described in the 
+            <span class="package">org.apache.guacamole.net.event</span> package of the <span class="package">guacamole-ext</span>
+            API. In this package you will find several concrete event types as well as interfaces that 
+            describe common characteristics of certain of event types. You can use any of these types 
+            to distinguish the events received by your listener, and to examine properties of an event 
+            of a given type.</p><p>Suppose we wish to log authentication success and failure events, while ignoring all other
+            event types. The <code class="classname">AuthenticationSuccessEvent</code> and 
+            <code class="classname">AuthenticationFailureEvent</code> types are used to notify a listener
+            of authentication events. We can simply check whether a received event is of one of
+            these types and, if so, log an appropriate message.</p><div class="example"><a id="idm46420844300144"></a><p class="title"><strong>Example 25.4. Using the event type to log an authentication success or failure</strong></p><div class="example-contents"><pre class="programlisting">package org.apache.guacamole.event;
+
+import org.apache.guacamole.GuacamoleException;
+import org.apache.guacamole.net.event.AuthenticationFailureEvent;
+import org.apache.guacamole.net.event.AuthenticationSuccessEvent;
+import org.apache.guacamole.net.event.listener.Listener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A Listener that logs authentication success and failure events.
+ */
+public class TutorialListener implements Listener {
+
+    private static final Logger logger = 
+        LoggerFactory.getLogger(TutorialListener.class);
+
+    @Override
+    public void handleEvent(Object event) throws GuacamoleException {
+
+        if (event instanceof AuthenticationSuccessEvent) {
+            logger.info("successful authentication for user {}", 
+                ((AuthenticationSuccessEvent) event)
+                    .getCredentials().getUsername());
+        }
+        else if (event instanceof AuthenticationFailureEvent) {
+            logger.info("failed authentication for user {}", 
+                ((AuthenticationFailureEvent) event)
+                    .getCredentials().getUsername());
+        }
+    }
+
+}</pre></div></div><br class="example-break" /><p>In our example, we use <code class="code">instanceof</code> to check for the two event types of
+        interest to our listener. Once we have identified an event of interest, we can safely
+        cast the event type to access properties of the event.</p><p>The extension is now complete and can be built as described earlier in <a class="xref" href="event-listeners.html#custom-listener-building" title="Building the extension">the section called “Building the extension”</a>
+            and installed as described below in <a class="xref" href="event-listeners.html#custom-listener-installing" title="Installing the extension">the section called “Installing the extension”</a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-listener-veto"></a>Influencing Guacamole by event veto</h2></div></div></div><p>An implementation of the <code class="methodname">handleEvent</code> method is permitted to
+            throw any <code class="classname">GuacamoleException</code>. For certain <span class="emphasis"><em>vetoable</em></span>
+            event types, throwing a <code class="classname">GuacamoleException</code> serves to effectively 
+            veto the action that resulted in the event notification. See the API documentation for
+            <span class="package">guacamole-ext</span> to learn more about vetoable event types.</p><p>As an (admittedly contrived) example, suppose we want to prevent a user named 
+            "guacadmin" from accessing Guacamole. For whatever reason, we don't wish to remove or disable 
+            the auth database entry for this user. In this case we can use a listener to "blacklist" this
+            user, preventing access to Guacamole. In the listener, when we get an 
+            <code class="classname">AuthenticationSuccessEvent</code> we can check to see if the user is 
+            "guacadmin" and, if so, throw an exception to prevent this user from logging in to 
+            Guacamole.</p><div class="example"><a id="idm46420844289664"></a><p class="title"><strong>Example 25.5. Vetoing an event by throwing a <code class="classname">GuacamoleException</code></strong></p><div class="example-contents"><pre class="programlisting">package org.apache.guacamole.event;
+
+import org.apache.guacamole.GuacamoleException;
+import org.apache.guacamole.GuacamoleSecurityException;
+import org.apache.guacamole.net.event.AuthenticationFailureEvent;
+import org.apache.guacamole.net.event.AuthenticationSuccessEvent;
+import org.apache.guacamole.net.event.listener.Listener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A Listener that logs authentication success and failure events
+ * and prevents the "guacadmin" user from logging in by throwing
+ * a GuacamoleSecurityException.
+ */
+public class TutorialListener implements Listener {
+
+    private static final Logger logger = 
+        LoggerFactory.getLogger(TutorialListener.class);
+
+    @Override
+    public void handleEvent(Object event) throws GuacamoleException {
+
+        if (event instanceof AuthenticationSuccessEvent) {
+          final String username = ((AuthenticationSuccessEvent) event)
+              .getCredentials().getUsername();
+
+          if ("guacadmin".equals(username)) {
+            logger.warn("user {} is blacklisted", username);
+            throw new GuacamoleSecurityException(
+                "User '" + username + "' is blacklisted");
+          }
+
+          logger.info("successful authentication for user {}", username);
+        }
+        else if (event instanceof AuthenticationFailureEvent) {
+            logger.info("failed authentication for user {}", 
+                ((AuthenticationFailureEvent) event)
+                    .getCredentials().getUsername());
+        }
+    }
+
+}</pre></div></div><br class="example-break" /><p>If our Guacamole user database contains a user named "guacadmin", and we build and 
+            install this listener extension, we will find that an attempt to log in as this user
+            now results in a message in the UI indicating that the user is blacklisted. If we
+            examine the Guacamole log, we will see the message indicating that the user is 
+            blacklisted. Because the successful authentication was vetoed, Guacamole sends a
+            subsequent authentication failure notification, which we see logged as well.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-listener-installing"></a>Installing the extension</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            installed by being placed within <code class="filename">GUACAMOLE_HOME/extensions</code>, and
+            this extension is no different. As described in <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a>,
+                <code class="varname">GUACAMOLE_HOME</code> is a placeholder used to refer to the directory
+            that Guacamole uses to locate its configuration files and extensions. Typically, this
+            will be the <code class="filename">.guacamole</code> directory within the home directory of the
+            user running Tomcat.</p><p>To install your extension, copy the
+            <code class="filename">target/guacamole-listener-tutorial-1.1.0.jar</code> file into
+            <code class="filename">GUACAMOLE_HOME/extensions</code> and restart Tomcat. Guacamole will
+            automatically load your extension, logging an informative message that it has done
+            so:</p><div class="informalexample"><pre class="screen">Extension "Tutorial Listener Extension" loaded.</pre></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="custom-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="writing-you-own-guacamole-app.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 24. Custom authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 26. Writing your own Guacamole application</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/faq.html b/doc/1.1.0/gug/faq.html
new file mode 100644
index 0000000..d182405
--- /dev/null
+++ b/doc/1.1.0/gug/faq.html
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix A. FAQ</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="appendices.html" title="Part III. Appendices" /><link rel="prev" href="appendices.html" title="Part III. Appendices" /><link rel="next" href="protocol-reference.html" title="Appendix B. Guacamole protocol reference" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix A. FAQ</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="appendices.html">Prev</a> </td><th width="60%" align="center">Part III. Appendices</th><td width="20%" align="right"> <a accesskey="n" href="protocol-reference.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="faq"></a>Appendix A. FAQ</h2></div></div></div><div class="qandaset"><a id="idm46420844214880"></a><dl><dt>A.1. <a href="faq.html#idm46420844749776">Where does the name "Guacamole" come from? </a></dt><dt>A.2. <a href="faq.html#idm46420844870544">What does "clientless" mean? </a></dt><dt>A.3. <a href="faq.html#idm46420844212832">Does Guacamole use WebSocket? </a></dt><dt>A.4. <a href="faq.html#idm46420844218816">I have Tomcat (or some other servlet container) set up behind a proxy (like
+                    mod_proxy) and cannot connect to Guacamole. Why? How do I solve this? </a></dt><dt>A.5. <a href="faq.html#idm46420844209248">I connect to the internet through a web proxy, and cannot connect to
+                    Guacamole. I cannot reconfigure the proxy. How do I solve this? </a></dt><dt>A.6. <a href="faq.html#idm46420844205952">Can I buy special licensing of the Guacamole code base, such that I can use it
+                    in my own product, without providing the source to my users, without
+                    contributing back, and without acknowledging the project? </a></dt><dt>A.7. <a href="faq.html#idm46420844203520">Can I pay for custom Guacamole work, or for help integrating Guacamole into my
+                    product, if the open source nature and licenses are preserved?</a></dt><dt>A.8. <a href="faq.html#idm46420844157440">How can I contribute to the project? </a></dt><dt>A.9. <a href="faq.html#idm46420844154480">How can I become an official member of the project? </a></dt><dt>A.10. <a href="faq.html#idm46420844150848">I think I've found a bug. How do I report it? </a></dt><dt>A.11. <a href="faq.html#idm46420844146752">I need help! Where can I find some? </a></dt></dl><table border="0" style="width: 100%;"><colgroup><col align="left" width="1%" /><col /></colgroup><tbody><tr class="question"><td align="left" valign="top"><a id="idm46420844749776"></a><a id="idm46420844749520"></a><p><strong>A.1.</strong></p></td><td align="left" valign="top"><p>Where does the name "Guacamole" come from? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>The name was chosen arbitrarily from a random utterance in a conversation with
+                    a member of the project. </p><p>When the project reached the point where it was growing out of the
+                    proof-of-concept phase, and needed a real home on the internet, we needed to
+                    think of a name to register the project under. </p><p>Several acronyms were toyed with and discarded. We tried anagrams, but all
+                    were too wordy and complex. We considered naming the project after a fish or an
+                    animal, and after suggesting the guanaco, James Muehlner, a developer of the
+                    project, suggested (randomly): "guacamole". </p><p>The name had a nice ring, we weren't embarrassed to use it, and it stuck. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46420844870544"></a><a id="idm46420844870288"></a><p><strong>A.2.</strong></p></td><td align="left" valign="top"><p>What does "clientless" mean? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>The term "clientless" means that no specific client is needed. A Guacamole
+                    user needs only have an HTML5 web browser installed, which is exceedingly
+                    common; virtually all modern computers and mobile devices have such a browser
+                    installed by default. </p><p>In this sense, Guacamole is "clientless" in that it does not require any
+                    additional software to be installed beyond what is considered standard for any
+                    computer. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46420844212832"></a><a id="idm46420844212544"></a><p><strong>A.3.</strong></p></td><td align="left" valign="top"><p>Does Guacamole use WebSocket? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>Guacamole uses either WebSocket or plain HTTP, whichever is supported by both
+                    the browser and your servlet container. If WebSocket cannot be used for any
+                    reason, Guacamole will fall back to using HTTP.</p><p>Historically, Guacamole had no WebSocket support at all. This was due to a
+                    lack of browser support and lack of a true standard. Overall, it didn't matter
+                    as there really wasn't any need: the tunnel used by Guacamole when WebSocket is
+                    not available is largely equivalent to WebSocket in terms of efficiency and
+                    latency, and is more compatible with proxies and existing browsers.</p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46420844218816"></a><a id="idm46420844218528"></a><p><strong>A.4.</strong></p></td><td align="left" valign="top"><p>I have Tomcat (or some other servlet container) set up behind a proxy (like
+                    mod_proxy) and cannot connect to Guacamole. Why? How do I solve this? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>You need to enable automatic flushing of the proxy's buffer as it receives
+                    packets. </p><p>Most proxies, including mod_proxy, buffer data received from the server, and
+                    will not flush this data in real-time. Each proxy has an option to force
+                    flushing of each packet automatically, as this is necessary for streaming
+                    applications like Guacamole, but this is usually not enabled by default. </p><p>Because Guacamole depends on streaming to function, a proxy configured to not
+                    automatically flush packets will disrupt the stream to the point that the
+                    connection seems unreasonably slow, or just fails to establish altogether. </p><p>In the case of mod_proxy, this option is <code class="code">flushpackets=on</code>. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46420844209248"></a><a id="idm46420844208960"></a><p><strong>A.5.</strong></p></td><td align="left" valign="top"><p>I connect to the internet through a web proxy, and cannot connect to
+                    Guacamole. I cannot reconfigure the proxy. How do I solve this? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>You need to enable automatic flushing of your proxy's buffer to avoid
+                    disrupting the stream used by Guacamole. </p><p>If you cannot change the settings of your proxy, using HTTPS instead of HTTP
+                    should solve the problem. Proxies are required to stream HTTPS because of the
+                    nature of SSL. Using HTTPS will allow Guacamole traffic to stream through
+                    proxies unencumbered, even if you cannot access the proxy settings directly. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46420844205952"></a><a id="idm46420844205664"></a><p><strong>A.6.</strong></p></td><td align="left" valign="top"><p>Can I buy special licensing of the Guacamole code base, such that I can use it
+                    in my own product, without providing the source to my users, without
+                    contributing back, and without acknowledging the project? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>Usually, no. Previous requests for such licensing have been very one-sided and
+                    there would be no direct or indirect benefit to the community and the project.
+                    That said, we handle requests for licensing on a case-by-case basis. In general,
+                    any special licensing has to somehow provide for the community and the
+                    open-source project.</p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46420844203520"></a><a id="idm46420844203232"></a><p><strong>A.7.</strong></p></td><td align="left" valign="top"><p>Can I pay for custom Guacamole work, or for help integrating Guacamole into my
+                    product, if the open source nature and licenses are preserved?</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>Yes. We love to be paid to work on Guacamole, especially if that work remains
+                    open source. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46420844157440"></a><a id="idm46420844157152"></a><p><strong>A.8.</strong></p></td><td align="left" valign="top"><p>How can I contribute to the project? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>If you are a programmer and want to contribute code, Guacamole is open-source
+                    and you are welcome to do so! Just send us your patches. There is no guarantee
+                    that your patch will be added to the upstream source, and all changes are
+                    carefully reviewed. </p><p>If you are not a programmer, but want to help out, feel free to look through
+                    the documentation or try installing Guacamole and test it out. General editing,
+                    documentation contributions, and testing are always helpful. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46420844154480"></a><a id="idm46420844154192"></a><p><strong>A.9.</strong></p></td><td align="left" valign="top"><p>How can I become an official member of the project? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>The short answer is: "by being asked." </p><p>People are only added as official members of the Guacamole project after their
+                    work has been proven. This usually means you will have contributed code in the
+                    form of patches before, or we know you from extensive testing work, or you
+                    frequently help with documentation, and we are impressed enough that we want you
+                    as part of the project. </p><p>All that said, you do not need to be a member of the project to help out. Feel
+                    free to contribute anything. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46420844150848"></a><a id="idm46420844150560"></a><p><strong>A.10.</strong></p></td><td align="left" valign="top"><p>I think I've found a bug. How do I report it? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>The project tracks in-progress tasks and bugs via the JIRA instance hosted by
+                    the Apache Software Foundation:</p><p><a class="link" href="https://issues.apache.org/jira/browse/GUACAMOLE/" target="_top"><code class="uri">https://issues.apache.org/jira/browse/GUACAMOLE/</code></a></p><p>All bugs should be reported there as new issues. This is also where you would
+                    request a new feature. If the bug you found is security-related, we would prefer
+                    to be contacted personally via email, such that the bug can be fixed before
+                    becoming dangerously widely known. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46420844146752"></a><a id="idm46420844146464"></a><p><strong>A.11.</strong></p></td><td align="left" valign="top"><p>I need help! Where can I find some? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>If you would like help with Apache Guacamole, or wish to help others, we
+                    highly recommend sending an email to the one of the project’s <a class="link" href="http://guacamole.apache.org/support/#mailing-lists" target="_top">mailing lists</a>. <span class="emphasis"><em>You will need to subscribe prior to sending
+                        email to any list.</em></span> All mailing lists are actively filtered for
+                    spam, and any email not originating from a subscriber will bounce.</p><p>There are two primary mailing lists:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a class="link" href="http://mail-archives.apache.org/mod_mbox/guacamole-user/" target="_top"><code class="email">&lt;<a class="email" href="mailto:user@guacamole.apache.org">user@guacamole.apache.org</a>&gt;</code></a></span></dt><dd><p>The user list is intended for general questions and discussions
+                                which do not necessarily pertain to development. This list replaces
+                                the old <a class="link" href="https://sourceforge.net/p/guacamole/discussion/" target="_top">SourceForge forums</a> used by Guacamole prior to its
+                                acceptance into the Apache Software Foundation.</p><p><span class="emphasis"><em>If you're not sure which mailing list to use, the user
+                                    list is probably the correct choice.</em></span></p></dd><dt><span class="term"><a class="link" href="http://mail-archives.apache.org/mod_mbox/guacamole-dev/" target="_top"><code class="email">&lt;<a class="email" href="mailto:dev@guacamole.apache.org">dev@guacamole.apache.org</a>&gt;</code></a></span></dt><dd><p>The development list is for development-related discussion
+                                involving people who are contributors to the Apache Guacamole
+                                project (or who wish to become contributors).</p></dd></dl></div></td></tr></tbody></table></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="appendices.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendices.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="protocol-reference.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part III. Appendices </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Appendix B. Guacamole protocol reference</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/guacamole-architecture.html b/doc/1.1.0/gug/guacamole-architecture.html
new file mode 100644
index 0000000..2b9b75e
--- /dev/null
+++ b/doc/1.1.0/gug/guacamole-architecture.html
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 1. Implementation and architecture</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="users-guide.html" title="Part I. User's Guide" /><link rel="next" href="installing-guacamole.html" title="Chapter 2. Installing Guacamole natively" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. Implementation and architecture</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="users-guide.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="installing-guacamole.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="guacamole-architecture"></a>Chapter 1. Implementation and architecture</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="guacamole-architecture.html#guacamole-protocol-architecture">The Guacamole protocol </a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#guacd">guacd</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#web-application">The web application</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#realmint">RealMint</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#vnc-client">VNC Client</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#gateway">Remote Desktop Gateway</a></span></dt></dl></div><a id="idm46420849713184" class="indexterm"></a><a id="idm46420849712288" class="indexterm"></a><a id="idm46420849711392" class="indexterm"></a><p>Guacamole is not a self-contained web application and is made up of many parts. The web
+        application is actually intended to be simple and minimal, with the majority of the
+        gruntwork performed by lower-level components.</p><div class="informalfigure"><div class="mediaobject"><img src="images/guac-arch.png" width="225" /></div></div><p>Users connect to a Guacamole server with their web browser. The Guacamole client, written
+        in JavaScript, is served to users by a webserver within the Guacamole server. Once loaded,
+        this client connects back to the server over HTTP using the Guacamole protocol.</p><p>The web application deployed to the Guacamole server reads the Guacamole protocol and
+        forwards it to guacd, the native Guacamole proxy. This proxy actually interprets the
+        contents of the Guacamole protocol, connecting to any number of remote desktop servers on
+        behalf of the user.</p><p>The Guacamole protocol combined with guacd provide protocol agnosticism: neither the
+        Guacamole client nor the web application need to be aware of what remote desktop protocol is
+        actually being used.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-architecture"></a>The Guacamole protocol </h2></div></div></div><a id="idm46420849615680" class="indexterm"></a><a id="idm46420849614784" class="indexterm"></a><p>The web application does not understand any remote desktop protocol at all. It does
+            not contain support for VNC or RDP or any other protocol supported by the Guacamole
+            stack. It actually only understands the Guacamole protocol, which is a protocol for
+            remote display rendering and event transport. While a protocol with those properties
+            would naturally have the same abilities as a remote desktop protocol, the design
+            principles behind a remote desktop protocol and the Guacamole protocol are different:
+            the Guacamole protocol is not intended to implement the features of a specific desktop
+            environment.</p><p>As a remote display and interaction protocol, Guacamole implements a superset of
+            existing remote desktop protocols. Adding support for a particular remote desktop
+            protocol (like RDP) to Guacamole thus involves writing a middle layer which "translates"
+            between the remote desktop protocol and the Guacamole protocol. Implementing such a
+            translation is no different than implementing any native client, except that this
+            particular implementation renders to a remote display rather than a local one.</p><p>The middle layer that handles this translation is guacd.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacd"></a>guacd</h2></div></div></div><a id="idm46420849706560" class="indexterm"></a><a id="idm46420849705664" class="indexterm"></a><p>guacd is the heart of Guacamole which dynamically loads support for remote desktop
+            protocols (called "client plugins") and connects them to remote desktops based on
+            instructions received from the web application.</p><p>guacd is a daemon process which is installed along with Guacamole and runs in the
+            background, listening for TCP connections from the web application. guacd also does not
+            understand any specific remote desktop protocol, but rather implements just enough of
+            the Guacamole protocol to determine which protocol support needs to be loaded and what
+            arguments must be passed to it. Once a client plugin is loaded, it runs independently of
+            guacd and has full control of the communication between itself and the web application
+            until the client plugin terminates.</p><a id="idm46420849703680" class="indexterm"></a><p>guacd and all client plugins depend on a common library, libguac, which makes
+            communication via the Guacamole protocol easier and a bit more abstract.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="web-application"></a>The web application</h2></div></div></div><a id="idm46420849700240" class="indexterm"></a><p>The part of Guacamole that a user actually interacts with is the web
+            application.</p><p>The web application, as mentioned before, does not implement any remote desktop
+            protocol. It relies on guacd, and implements nothing more than a spiffy web interface
+            and authentication layer.</p><p>We chose to implement the server side of the web application in Java, but there's no
+            reason that it can't be written in a different language. In fact, because Guacamole is
+            intended be an API, we encourage this.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="realmint"></a>RealMint</h2></div></div></div><a id="idm46420849696240" class="indexterm"></a><p>Guacamole is now a generalized remote desktop gateway, but this was not always the
+            case. Guacamole began as a purely text-based Telnet client written in JavaScript called
+                <span class="application"><a class="application" href="http://sourceforge.net/projects/realmint" target="_top">RealMint</a></span> ("RealMint" is an anagram for "terminal"). It was written
+            mainly as a demonstration and, while intended to be useful, its main claim to fame was
+            only that it was pure JavaScript.</p><p>The tunnel used by RealMint was written in PHP. In contrast to Guacamole's HTTP
+            tunnel, RealMint's tunnel used only simple long-polling and was inefficient. RealMint
+            had a decent keyboard implementation which lives on now in parts of Guacamole's keyboard
+            code, but this was really the extent of RealMint's features and usability.</p><p>Given that it was just an implementation of a legacy protocol, and that several other
+            JavaScript terminal emulators exist, most of which well-established and stable, the
+            project was dropped.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="vnc-client"></a>VNC Client</h2></div></div></div><p>Once the developers learned of the HTML5 canvas tag, and saw that it was already
+            implemented in Firefox and Chrome, work started instead on a proof-of-concept JavaScript
+            VNC client.</p><p>This client was purely JavaScript with a Java server component, and worked by
+            translating VNC into an XML-based version of the same. Its development was naturally
+            driven by VNC's features, and its scope was limited to forwarding a single connection to
+            a set of users. Although relatively slow, the proof-of-concept worked well enough that
+            the project needed an online place to live, and was registered with SourceForge as
+            "Guacamole" - an HTML5 VNC client.</p><p>As Guacamole grew and became more than a proof-of-concept, the need for speed
+            increased, and the old RealMint-style long polling was dropped, as was the use of
+            XML.</p><p>As WebSocket could not be trusted to be supported at the time, and Java had no
+            WebSocket standard for servlets, an equivalent HTTP-based tunnel was developed. This
+            tunnel is still used today if WebSocket cannot be used for any reason.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="gateway"></a>Remote Desktop Gateway</h2></div></div></div><p>A faster text-based protocol was developed which could present the features of
+            multiple remote desktop protocols, not just VNC. The entire system was rearchitected
+            into a standard daemon, guacd, and a common library, libguac, which drove both the
+            daemon and protocol support, which became extendable.</p><p>The scope of the project expanded from an adequate VNC client to a performant HTML5
+            remote desktop gateway and general API. In its current state, Guacamole can be used as a
+            central gateway to access any number of machines running different remote desktop
+            servers. It provides extendable authentication, and in the case you need something more
+            specialized, a general API for HTML5-based remote access.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="users-guide.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="installing-guacamole.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part I. User's Guide </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 2. Installing Guacamole natively</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/guacamole-common-js.html b/doc/1.1.0/gug/guacamole-common-js.html
new file mode 100644
index 0000000..3171830
--- /dev/null
+++ b/doc/1.1.0/gug/guacamole-common-js.html
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 21. guacamole-common-js</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="guacamole-common.html" title="Chapter 20. guacamole-common" /><link rel="next" href="guacamole-ext.html" title="Chapter 22. guacamole-ext" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 21. guacamole-common-js</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="guacamole-common.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="guacamole-ext.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="guacamole-common-js"></a>Chapter 21. guacamole-common-js</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="guacamole-common-js.html#guacamole-client">Guacamole client</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#http-tunnel">HTTP tunnel</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#input-abstraction">Input abstraction</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-common-js.html#guacamole-mouse">Mouse</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#guacamole-touch">Touch</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#guacamole-keyboard">Keyboard</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-common-js.html#on-screen-keyboard">On-screen keyboard</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-common-js.html#keyboard-layouts">Keyboard layouts</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#displaying-osk">Displaying the keyboard</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#styling-the-keyboard">Styling the keyboard</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#osk-event-handling">Handling key events</a></span></dt></dl></dd></dl></div><a id="idm46420845024048" class="indexterm"></a><a id="idm46420845022704" class="indexterm"></a><p>The Guacamole project provides a JavaScript API for interfacing with
+        other components that conform to the design of Guacamole, such as
+        projects using libguac or guacamole-common. This API is called
+        guacamole-common-js.</p><p>guacamole-common-js provides a JavaScript implementation of a
+        Guacamole client, as well as tunneling mechanisms for getting protocol
+        data out of JavaScript and into guacd or the server side of a web
+        application.</p><p>For convenience, it also provides mouse and keyboard abstraction objects that translate
+        JavaScript mouse, touch, and keyboard events into consistent data that Guacamole can more
+        easily digest. The extendable on-screen keyboard that was developed for the Guacamole web
+        application is also included.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-client"></a>Guacamole client</h2></div></div></div><p>The main benefit to using the JavaScript API is the full Guacamole
+            client implementation, which implements all Guacamole instructions,
+            and makes use of the tunnel implementations provided by both the
+            JavaScript and Java APIs.</p><p>Using the Guacamole client is straightforward. The client, like
+            all other objects within the JavaScript API, is within the
+                <code class="code">Guacamole</code> namespace. It is instantiated given an
+            existing, unconnected tunnel:</p><div class="informalexample"><pre class="programlisting">var client = new Guacamole.Client(tunnel);</pre></div><p>Once you have the client, it won't immediately appear within the
+            DOM. You need to add its display element manually:</p><div class="informalexample"><pre class="programlisting">document.body.appendChild(client.getDisplay().getElement());</pre></div><p>At this point, the client will be visible, rendering all updates
+            as soon as they are received through the tunnel.</p><div class="informalexample"><pre class="programlisting">client.connect();</pre></div><p>It is possible to pass arbitrary data to the tunnel during
+            connection which can be used for authentication or for choosing a
+            particular connection. When the <code class="methodname">connect()</code>
+            function of the Guacamole client is called, it in turn calls the
+                <code class="methodname">connect()</code> function of the tunnel
+            originally given to the client, establishing a connection.</p><div class="important"><h3 class="title">Important</h3><p>When creating the <code class="classname">Guacamole.Client</code>, the
+                tunnel used must not already be connected. The
+                    <code class="classname">Guacamole.Client</code> will call the
+                    <code class="methodname">connect()</code> function for you when its
+                own <code class="methodname">connect()</code> function is invoked. If
+                the tunnel is already connected when it is given to the
+                    <code class="classname">Guacamole.Client</code>, connection may not
+                work at all.</p></div><p>In general, all instructions available within the Guacamole
+            protocol are automatically handled by the Guacamole client,
+            including instructions related to audio and video. The only
+            instructions which you must handle yourself are "name" (used to name
+            the connection), "clipboard" (used to update clipboard data on the
+            client side), and "error" (used when something goes wrong
+            server-side). Each of these instructions has a corresponding event
+            handler; you need only supply functions to handle these events. If
+            any of these event handlers are left unset, the corresponding
+            instructions are simply ignored.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="http-tunnel"></a>HTTP tunnel</h2></div></div></div><p>Both the Java and JavaScript API implement corresponding ends of
+            an HTTP tunnel, based on
+            <code class="classname">XMLHttpRequest</code>.</p><p>The tunnel is a true stream - there is no polling. An initial
+            request is made from the JavaScript side, and this request is
+            handled on the Java side. While this request is open, data is
+            streamed along the connection, and instructions within this stream
+            are handled as soon as they are received by the client.</p><p>While data is being streamed along this existing connection, a
+            second connection attempt is made. Data continues to be streamed
+            along the original connection until the server receives and handles
+            the second request, at which point the original connection closes
+            and the stream is transferred to the new connection.</p><p>This process repeats, alternating between active streams, thus
+            creating an unbroken sequence of instructions, while also allowing
+            JavaScript to free any memory used by the previously active
+            connection.</p><p>The tunnel is created by supplying the relative URL to the
+            server-side tunnel servlet:</p><div class="informalexample"><pre class="programlisting">var tunnel = new Guacamole.Tunnel("tunnel");</pre></div><p>Once created, the tunnel can be passed to a
+                <code class="classname">Guacamole.Client</code> for use in a Guacamole
+            connection.</p><p>The tunnel actually takes care of the Guacamole protocol parsing
+            on behalf of the client, triggering "oninstruction" events for every
+            instruction received, splitting each element into elements of an
+            array so that the client doesn't have to.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="input-abstraction"></a>Input abstraction</h2></div></div></div><p>Browsers can be rather finicky when it comes to keyboard and mouse
+            input, not to mention touch events. There is little agreement on
+            which keyboard events get fired when, and what detail about the
+            event is made available to JavaScript. Touch and mouse events can
+            also cause confusion, as most browsers will generate
+                <span class="emphasis"><em>both</em></span> events when the user touches the
+            screen (for compatibility with JavaScript code that only handles
+            mouse events), making it more difficult for applications to support
+            both mouse and touch independently.</p><p>The Guacamole JavaScript API abstracts mouse, keyboard, and touch
+            interaction, providing several helper objects which act as an
+            abstract interface between you and the browser events.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-mouse"></a>Mouse</h3></div></div></div><p>Mouse event abstraction is provided by the
+                    <code class="classname">Guacamole.Mouse</code> object. Given an
+                arbitrary DOM element, <code class="classname">Guacamole.Mouse</code>
+                triggers <span class="property">onmousedown</span>,
+                    <span class="property">onmousemove</span>, and
+                    <span class="property">onmouseup</span> events which are consistent
+                across browsers. This object only response. to true mouse
+                events. Mouse events which are actually the result of touch
+                events are ignored.</p><div class="informalexample"><pre class="programlisting">var element = document.getElementById("some-arbitrary-id");
+var mouse = new Guacamole.Mouse(element);
+
+mouse.onmousedown =
+mouse.onmousemove =
+mouse.onmouseup   = function(state) {
+
+    // Do something with the mouse state received ...
+
+};</pre></div><p>The handles of each event are given an instance of
+                    <code class="classname">Guacamole.Mouse.State</code> which
+                represents the current state of the mouse, containing the state
+                of each button (including the scroll wheel) as well as the X and
+                Y coordinates of the pointer in pixels.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-touch"></a>Touch</h3></div></div></div><p>Touch event abstraction is provided by either
+                    <code class="classname">Guacamole.Touchpad</code> (emulates a
+                touchpad to generate artificial mouse events) or
+                    <code class="classname">Guacamole.Touchscreen</code> (emulates a
+                touchscreen, again generating artificial mouse events).
+                Guacamole uses the touchpad emulation, as this provides the most
+                flexibility and mouse-like features, including scrollwheel and
+                clicking with different buttons, but your preferences may
+                differ.</p><div class="informalexample"><pre class="programlisting">var element = document.getElementById("some-arbitrary-id");
+var touch = new Guacamole.Touchpad(element); // or Guacamole.Touchscreen
+
+touch.onmousedown =
+touch.onmousemove =
+touch.onmouseup   = function(state) {
+
+    // Do something with the mouse state received ...
+
+};</pre></div><p>Note that even though these objects are touch-specific, they
+                still provide mouse events. The state object given to the event
+                handlers of each event is still an instance of
+                    <code class="classname">Guacamole.Mouse.State</code>.</p><p>Ultimately, you could assign the same event handler to all the
+                events of both an instance of
+                    <code class="classname">Guacamole.Mouse</code> as well as
+                    <code class="classname">Guacamole.Touchscreen</code> or
+                    <code class="classname">Guacamole.Touchpad</code>, and you would
+                magically gain mouse and touch support. This support, being
+                driven by the needs of remote desktop, is naturally geared
+                around the mouse and providing a reasonable means of interacting
+                with it. For an actual mouse, events are translated simply and
+                literally, while touch events go through additional emulation
+                and heuristics. From the perspective of the user and the code,
+                this is all transparent.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-keyboard"></a>Keyboard</h3></div></div></div><p>Keyboard events in Guacamole are abstracted with the
+                    <code class="classname">Guacamole.Keyboard</code> object as only
+                keyup and keydown events; there is no keypress like there is in
+                JavaScript. Further, all the craziness of keycodes vs. scancodes
+                vs. key identifiers normally present across browsers is
+                abstracted away. All your event handlers will see is an X11
+                keysym, which represent every key unambiguously. Conveniently,
+                X11 keysyms are also what the Guacamole protocol requires, so if
+                you want to use <code class="classname">Guacamole.Keyboard</code> to
+                drive key events sent over the Guacamole protocol, everything
+                can be connected directly.</p><p>Just like the other input abstraction objects,
+                    <code class="classname">Guacamole.Keyboard</code> requires a DOM
+                element as an event target. Only key events directed at this
+                element will be handled.</p><div class="informalexample"><pre class="programlisting">var keyboard = new Guacamole.Keyboard(document);
+
+keyboard.onkeydown = function(keysym) {
+    // Do something ...
+};
+
+keyboard.onkeyup = function(keysym) {
+    // Do something ...
+};</pre></div><p>In this case, we are using <code class="classname">document</code> as
+                the event target, thus receiving all key events while the
+                browser window (or tab) has focus.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="on-screen-keyboard"></a>On-screen keyboard</h2></div></div></div><p>The Guacamole JavaScript API also provides an extendable on-screen
+            keyboard, <code class="classname">Guacamole.OnScreenKeyboard</code>, which
+            requires the URL of an XML file describing the keyboard layout. The
+            on-screen keyboard object provides no hard-coded layout information;
+            the keyboard layout is described entirely within the XML layout
+            file.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="keyboard-layouts"></a>Keyboard layouts</h3></div></div></div><p>The keyboard layout XML included in the Guacamole web
+                application would be a good place to start regarding how these
+                layout files are written, but in general, the keyboard is simply
+                a set of rows or columns, denoted with <code class="code">&lt;row&gt;</code> and
+                    <code class="code">&lt;column&gt;</code> tags respectively, where each can
+                be nested within the other as desired.</p><p>Each key is represented with a <code class="code">&lt;key&gt;</code> tag, but
+                this is not what the user sees, nor what generates the key
+                event. Each key contains any number of <code class="code">&lt;cap&gt;</code>
+                tags, which represent the visible part of the key. The cap
+                describes which X11 keysym will be sent when the key is pressed.
+                Each cap can be associated with any combination of arbitrary
+                modifier flags which dictate when that cap is active.</p><p>For example:</p><div class="informalexample"><pre class="programlisting">&lt;keyboard lang="en_US" layout="example" size="5"&gt;
+    &lt;row&gt;
+        &lt;key size="4"&gt;
+            &lt;cap modifier="shift" keysym="0xFFE1"&gt;Shift&lt;/cap&gt;
+        &lt;/key&gt;
+        &lt;key&gt;
+            &lt;cap&gt;a&lt;/cap&gt;
+            &lt;cap if="shift"&gt;A&lt;/cap&gt;
+        &lt;/key&gt;
+    &lt;/row&gt;
+&lt;/keyboard&gt;</pre></div><p>Here we have a very simple keyboard which defines only two
+                keys: "shift" (a modifier) and the letter "a". When "shift" is
+                pressed, it sets the "shift" modifier, affecting other keys in
+                the keyboard. The "a" key has two caps: one lowercase (the
+                default) and one uppercase (which requires the shift modifier to
+                be active).</p><p>Notice that the shift key needed the keysym explicitly
+                specified, while the "a" key did not. This is because the
+                on-screen keyboard will automatically derive the correct keysym
+                from the text of the key cap if the text contains only a single
+                character.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="displaying-osk"></a>Displaying the keyboard</h3></div></div></div><p>Once you have a keyboard layout available, adding an on-screen
+                keyboard to your application is simple:</p><div class="informalexample"><pre class="programlisting">// Add keyboard to body
+var keyboard = new Guacamole.OnScreenKeyboard("path/to/layout.xml");
+document.body.appendChild(keyboard.getElement());
+
+// Set size of keyboard to 100 pixels
+keyboard.resize(100);</pre></div><p>Here, we have explicitly specified the width of the keyboard
+                as 100 pixels. Normally, you would determine this by inspecting
+                the width of the containing component, or by deciding on a
+                reasonable width beforehand. Once the width is given, the height
+                of the keyboard is determined based on the arrangement of each
+                row.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="styling-the-keyboard"></a>Styling the keyboard</h3></div></div></div><p>While the <code class="classname">Guacamole.OnScreenKeyboard</code>
+                object will handle most of the layout, you will still need to
+                style everything yourself with CSS to get the elements to render
+                properly and the keys to change state when clicked or activated.
+                It defines several CSS classes, which you will need to manually
+                style to get things looking as desired:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="classname">guac-keyboard</code></span></dt><dd><p>This class is assigned to the root element
+                            containing the entire keyboard, returned by
+                                <code class="methodname">getElement()</code>,</p></dd><dt><span class="term"><code class="classname">guac-keyboard-row</code></span></dt><dd><p>Assigned to the <code class="code">div</code> elements which
+                            contain each row.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-column</code></span></dt><dd><p>Assigned to the <code class="code">div</code> elements which
+                            contain each column.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-gap</code></span></dt><dd><p>Assigned to any <code class="code">div</code> elements created
+                            as a result of <code class="code">&lt;gap&gt;</code> tags in the
+                            keyboard layout. <code class="code">&lt;gap&gt;</code> tags are
+                            intended to behave as keys with no visible styling
+                            or caps.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-key-container</code></span></dt><dd><p>Assigned to the <code class="code">div</code> element which
+                            contains a key, and provides that key with its
+                            required dimensions. It is this element that will be
+                            scaled relative to the size specified in the layout
+                            XML and the size given to the <code class="code">resize()</code>
+                            function.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-key</code></span></dt><dd><p>Assigned to the <code class="code">div</code> element which
+                            represents the actual key, not the cap. This element
+                            will not directly contain text, but it will contain
+                            all caps that this key can have. With clever CSS
+                            rules, you can take advantage of this and cause
+                            inactive caps to appear on the key in a corner (for
+                            example), or hide them entirely.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-cap</code></span></dt><dd><p>Assigned to the <code class="code">div</code> element
+                            representing a key cap. Each cap is a child of its
+                            corresponding key, and it is up to the author of the
+                            CSS rules to hide or show or reposition each cap
+                            appropriately. Each cap will contain the display
+                            text defined within the <code class="code">&lt;cap&gt;</code>
+                            element in the layout XML.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-requires-<em class="replaceable"><code>MODIFIER</code></em></code></span></dt><dd><p>Added to the cap element when that cap requires a
+                            specific modifier.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-uses-<em class="replaceable"><code>MODIFIER</code></em></code></span></dt><dd><p>Added to the key element when any cap contained
+                            within it requires a specific modifier.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-modifier-<em class="replaceable"><code>MODIFIER</code></em></code></span></dt><dd><p>Added to and removed from the root keyboard
+                            element when a modifier key is activated or
+                            deactivated respectively.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-pressed</code></span></dt><dd><p>Added to and removed from any key element as it is
+                            pressed and released respectively.</p></dd></dl></div><div class="important"><h3 class="title">Important</h3><p>The CSS rules required for the on-screen keyboard to work
+                    as expected can be quite complex. Looking over the CSS rules
+                    used by the on-screen keyboard in the Guacamole web
+                    application would be a good place to start to see how the
+                    appearance of each key can be driven through the simple
+                    class changes described above.</p><p>Inspecting the elements of an active on-screen keyboard
+                    within the Guacamole web application with the developer
+                    tools of your favorite browser is also a good idea.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="osk-event-handling"></a>Handling key events</h3></div></div></div><p>Key events generated by the on-screen keyboard are identical
+                to those of <code class="classname">Guacamole.Keyboard</code> in that
+                they consist only of a single X11 keysym. Only keyup and keydown
+                events exist, as before; there is no keypress event.</p><div class="informalexample"><pre class="programlisting">// Assuming we have an instance of Guacamole.OnScreenKeyboard already
+// called "keyboard"
+
+keyboard.onkeydown = function(keysym) {
+    // Do something ...
+};
+
+keyboard.onkeyup = function(keysym) {
+    // Do something ...
+};</pre></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="guacamole-common.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="guacamole-ext.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 20. <span class="package">guacamole-common</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 22. guacamole-ext</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/guacamole-common.html b/doc/1.1.0/gug/guacamole-common.html
new file mode 100644
index 0000000..fd57551
--- /dev/null
+++ b/doc/1.1.0/gug/guacamole-common.html
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 20. guacamole-common</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="libguac.html" title="Chapter 19. libguac" /><link rel="next" href="guacamole-common-js.html" title="Chapter 21. guacamole-common-js" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 20. <span class="package">guacamole-common</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="libguac.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="guacamole-common-js.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="guacamole-common"></a>Chapter 20. <span class="package">guacamole-common</span></h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="guacamole-common.html#java-http-tunnel">HTTP tunnel</a></span></dt><dt><span class="section"><a href="guacamole-common.html#java-protocol-usage">Using the Guacamole protocol</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-common.html#java-reading-protocol"><code class="classname">GuacamoleReader</code></a></span></dt><dt><span class="section"><a href="guacamole-common.html#java-writing-protocol"><code class="classname">GuacamoleWriter</code></a></span></dt></dl></dd></dl></div><a id="idm46420847415024" class="indexterm"></a><a id="idm46420847428496" class="indexterm"></a><p>The Java API provided by the Guacamole project is called guacamole-common. It provides a
+        basic means of tunneling data between the JavaScript client provided by guacamole-common-js
+        and the native proxy daemon, guacd, and for dealing with the Guacamole protocol. The purpose
+        of this library is to facilitate the creation of custom tunnels between the JavaScript
+        client and guacd, allowing your Guacamole-driven web application to enforce its own security
+        model, if any, and dictate exactly what connections are established.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="java-http-tunnel"></a>HTTP tunnel</h2></div></div></div><p>The Guacamole Java API implements the HTTP tunnel using a servlet
+            called <code class="classname">GuacamoleHTTPTunnelServlet</code>. This
+            servlet handles all requests coming to it over HTTP from the
+            JavaScript client, and translated them into connect, read, or write
+            requests, which each get dispatched to the
+                <code class="methodname">doConnect()</code>,
+                <code class="methodname">doRead()</code>, and
+                <code class="methodname">doWrite()</code> functions accordingly.</p><p>Normally, you wouldn't touch the <code class="methodname">doRead()</code>
+            and <code class="methodname">doWrite()</code> functions, as these have
+            already been written to properly handle the requests of the
+            JavaScript tunnel, and if you feel the need to touch these
+            functions, you are probably better off writing your own tunnel
+            implementation, although such a thing is difficult to do in a
+            performant way.</p><p>When developing an application based on the Guacamole API, you
+            should use <code class="classname">GuacamoleHTTPTunnelServlet</code> by
+            extending it, implementing your own version of
+                <code class="methodname">doConnect()</code>, which is the only abstract
+            function it defines. The tutorial later in this book demonstrating
+            how to write a Guacamole-based web application shows the basics of
+            doing this, but generally, <code class="methodname">doConnect()</code> is
+            an excellent place for authentication or other validation, as it is
+            the responsibility of <code class="methodname">doConnect()</code> to create
+            (or not create) the actual tunnel. If
+                <code class="methodname">doConnect()</code> does not create the tunnel,
+            communication between the JavaScript client and guacd cannot take
+            place, which is an ideal power to have as an authenticator.</p><p>The <code class="methodname">doConnect()</code> function is expected to return a new
+                <code class="classname">GuacamoleTunnel</code>, but it is completely up to the
+            implementation to decide how that tunnel is to be created. The already-implemented parts
+            of <code class="classname">GuacamoleHTTPTunnelServlet</code> then return the unique identifier
+            of this tunnel to the JavaScript client, allowing its own tunnel implementation to
+            continue to communicate with the tunnel existing on the Java side.</p><p>Instances of <code class="classname">GuacamoleTunnel</code> are created associated with a
+                <code class="classname">GuacamoleSocket</code>, which is the abstract interface surrounding
+            the low-level connection to guacd. Overall, there is a socket
+                (<code class="classname">GuacamoleSocket</code>) which provides a TCP connection to guacd.
+            This socket is exposed to <code class="classname">GuacamoleTunnel</code>, which provides
+            abstract protocol access around what is actually (but secretly, through the abstraction
+            of the API) a TCP socket.</p><p>The Guacamole web application extends this tunnel servlet in order
+            to implement authentication at the lowest possible level,
+            effectively prohibiting communication between the client and any
+            remote desktops unless they have properly authenticated. Your own
+            implementation can be considerably simpler, especially if you don't
+            need authentication:</p><div class="informalexample"><pre class="programlisting">public class MyGuacamoleTunnelServlet
+    extends GuacamoleHTTPTunnelServlet {
+
+    @Override
+    protected GuacamoleTunnel doConnect(HttpServletRequest request)
+        throws GuacamoleException {
+
+        // Connect to guacd here (this is a STUB)
+        GuacamoleSocket socket;
+
+        // Return a new tunnel which uses the connected socket
+        return new SimpleGuacamoleTunnel(socket);
+
+    }
+
+}</pre></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="java-protocol-usage"></a>Using the Guacamole protocol</h2></div></div></div><p>guacamole-common provides basic low-level support for the
+            Guacamole protocol. This low-level support is leveraged by the HTTP
+            tunnel implementation to satisfy the requirements of the JavaScript
+            client implementation, as the JavaScript client expects the
+            handshake procedure to have already taken place. This support exists
+            through the <code class="classname">GuacamoleReader</code> and
+                <code class="classname">GuacamoleWriter</code> classes, which are
+            similar to Java's <code class="classname">Reader</code> and
+                <code class="classname">Writer</code> classes, except that they deal
+            with the Guacamole protocol specifically, and thus have slightly
+            different contracts.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="java-reading-protocol"></a><code class="classname">GuacamoleReader</code></h3></div></div></div><p><code class="classname">GuacamoleReader</code> provides a very basic
+                    <code class="methodname">read()</code> function which is required
+                to return one or more complete instructions in a
+                    <span class="type">char</span> array. It also provides the typical
+                    <code class="methodname">available()</code> function, which informs
+                you whether <code class="methodname">read()</code> is likely to block
+                the next time it is called, and an even more abstract version of
+                    <code class="methodname">read()</code> called
+                    <code class="methodname">readInstruction()</code> which returns one
+                instruction at a time, wrapped within a
+                    <code class="classname">GuacamoleInstruction</code> instance.</p><p>Normally, you would not need to use this class yourself. It is
+                used by <code class="classname">ConfiguredGuacamoleSocket</code> to
+                complete the Guacamole protocol handshake procedure, and it is
+                used by <code class="classname">GuacamoleHTTPTunnelServlet</code> within
+                    <code class="methodname">doRead()</code> to implement the reading
+                half of the tunnel.</p><p>The only concrete implementation of
+                    <code class="classname">GuacamoleReader</code> is
+                    <code class="classname">ReaderGuacamoleReader</code>, which wraps a
+                Java <code class="classname">Reader</code>, using that as the source for
+                data to parse into Guacamole instructions. Again, you would not
+                normally directly use this class, nor instantiate it yourself. A
+                working, concrete instance of
+                    <code class="classname">GuacamoleReader</code> can be retrieved from
+                any <code class="classname">GuacamoleSocket</code> or
+                    <code class="classname">GuacamoleTunnel</code>.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="java-writing-protocol"></a><code class="classname">GuacamoleWriter</code></h3></div></div></div><p><code class="classname">GuacamoleWriter</code> provides a very basic
+                    <code class="methodname">write()</code> function and a more
+                abstract version called
+                    <code class="methodname">writeInstruction()</code> which writes
+                instances of <code class="classname">GuacamoleInstruction</code>. These
+                functions are analogous to the <code class="methodname">read()</code>
+                and <code class="methodname">readInstruction()</code> functions
+                provided by <code class="classname">GuacamoleReader</code>, and have
+                similar restrictions: the contract imposed by
+                    <code class="methodname">write()</code> requires that written
+                instructions be complete</p><p>The only concrete implementation of
+                    <code class="classname">GuacamoleWriter</code> is
+                    <code class="classname">WriterGuacamoleWriter</code>, which wraps a
+                Java <code class="classname">Writer</code>, using that as the
+                destination for Guacamole instruction data, but you would not
+                normally directly use this class, nor instantiate it yourself.
+                It is used by <code class="classname">ConfiguredGuacamoleSocket</code>
+                to complete the Guacamole protocol handshake procedure, and it
+                is used by <code class="classname">GuacamoleHTTPTunnelServlet</code>
+                within <code class="methodname">doWrite()</code> to implement the
+                writing half of the tunnel.</p><p>If necessary, a <code class="classname">GuacamoleWriter</code> can be
+                retrieved from any <code class="classname">GuacamoleSocket</code> or
+                    <code class="classname">GuacamoleTunnel</code>, but in most cases,
+                the classes provided by the Guacamole Java API which already use
+                    <code class="classname">GuacamoleWriter</code> will be
+                sufficient.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="libguac.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="guacamole-common-js.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 19. libguac </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 21. guacamole-common-js</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/guacamole-docker.html b/doc/1.1.0/gug/guacamole-docker.html
new file mode 100644
index 0000000..901dde6
--- /dev/null
+++ b/doc/1.1.0/gug/guacamole-docker.html
@@ -0,0 +1,403 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 3. Installing Guacamole with Docker</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="installing-guacamole.html" title="Chapter 2. Installing Guacamole natively" /><link rel="next" href="proxying-guacamole.html" title="Chapter 4. Proxying Guacamole" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 3. Installing Guacamole with Docker</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="installing-guacamole.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="proxying-guacamole.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="guacamole-docker"></a>Chapter 3. Installing Guacamole with Docker</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="guacamole-docker.html#guacd-docker-image">Running the <span class="package">guacd</span> Docker image</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-docker.html#guacd-docker-guacamole">Running <span class="package">guacd</span> for use by the Guacamole Docker image</a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacd-docker-external">Running <span class="package">guacd</span> for use by services outside Docker</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-image">The Guacamole Docker image</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-config-via-env">Configuring Guacamole when using Docker</a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-guacd">Connecting Guacamole to <span class="package">guacd</span></a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-mysql">MySQL authentication</a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-postgresql">PostgreSQL authentication</a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-ldap">LDAP authentication</a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-guacamole-home">Custom extensions and <code class="envar">GUACAMOLE_HOME</code></a></span></dt><dt><span class="section"><a href="guacamole-docker.html#verifying-guacamole-docker">Verifying the Guacamole install</a></span></dt></dl></dd></dl></div><a id="idm46420849300368" class="indexterm"></a><p>Guacamole can be deployed using Docker, removing the need to build
+            <span class="package">guacamole-server</span> from source or configure the web application
+        manually. The Guacamole project provides officially-supported Docker images for both
+        Guacamole and <span class="package">guacd</span> which are kept up-to-date with each release.</p><p>A typical Docker deployment of Guacamole will involve three separate containers, linked
+        together at creation time:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="systemitem">guacamole/guacd</code></span></dt><dd><p>Provides the <span class="package">guacd</span> daemon, built from the released
+                        <span class="package">guacamole-server</span> source with support for VNC, RDP, SSH,
+                    telnet, and Kubernetes.</p></dd><dt><span class="term"><code class="systemitem">guacamole/guacamole</code></span></dt><dd><p>Provides the Guacamole web application running within Tomcat 8 with support
+                    for WebSocket. The configuration necessary to connect to
+                        <span class="package">guacd</span>, MySQL, PostgreSQL, LDAP, etc. will be generated
+                    automatically when the image starts based on Docker links or environment
+                    variables.</p></dd></dl></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="systemitem">mysql</code> or <code class="systemitem">postgresql</code></span></dt><dd><p>Provides the database that Guacamole will use for authentication and storage
+                    of connection configuration data.</p></dd></dl></div><p>This separation is important, as it facilitates upgrades and maintains proper separation
+        of concerns. With the database separate from Guacamole and <span class="package">guacd</span>, those
+        containers can be freely destroyed and recreated at will. The only container which must
+        persist data through upgrades is the database.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacd-docker-image"></a>Running the <span class="package">guacd</span> Docker image</h2></div></div></div><p>The <span class="package">guacd</span> Docker image is built from the released
+                <span class="package">guacamole-server</span> source with support for VNC, RDP, SSH, telnet,
+            and Kubernetes. Common pitfalls like installing the required dependencies, installing
+            fonts for SSH, telnet, or Kubernetes, and ensuring the FreeRDP plugins are installed to
+            the correct location are all taken care of. It will simply just work.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacd-docker-guacamole"></a>Running <span class="package">guacd</span> for use by the Guacamole Docker image</h3></div></div></div><p>When running the <span class="package">guacd</span> image with the intent of linking to a
+                Guacamole container, no ports need be exposed on the network. Access to these ports
+                will be handled automatically by Docker during linking, and the Guacamole image will
+                properly detect and configure the connection to <span class="package">guacd</span>.</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacd</code></em> -d guacamole/guacd</pre></div><p>When run in this manner, <span class="package">guacd</span> will be listening on its default
+                port 4822, but this port will only be available to Docker containers that have been
+                explicitly linked to
+                <code class="varname"><em class="replaceable"><code>some-guacd</code></em></code>.</p><p>The log level of guacd can be controlled with the <code class="varname">GUACD_LOG_LEVEL</code> environment variable.  The
+                default value is <code class="varname"><em class="replaceable"><code>info</code></em></code>, and can be set to any of the
+                valid settings for the guacd log flag (-L).</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run -e GUACD_LOG_LEVEL=<em class="replaceable"><code>debug</code></em> -d guacamole/guacd</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacd-docker-external"></a>Running <span class="package">guacd</span> for use by services outside Docker</h3></div></div></div><p>If you are not going to use the Guacamole image, you can still leverage the
+                    <span class="package">guacd</span> image for ease of installation and maintenance. By
+                exposing the <span class="package">guacd</span> port, 4822, services external to Docker will
+                be able to access <span class="package">guacd</span>.</p><div class="important"><h3 class="title">Important</h3><p><span class="emphasis"><em>Take great care when doing this</em></span> -
+                        <span class="package">guacd</span> is a passive proxy and does not perform any kind of
+                    authentication.</p><p>If you do not properly isolate <span class="package">guacd</span> from untrusted parts
+                    of your network, malicious users may be able to use <span class="package">guacd</span> as
+                    a jumping point to other systems.</p></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacd</code></em> -d -p 4822:4822 guacamole/guacd</pre></div><p><span class="package">guacd</span> will now be listening on port 4822, and Docker will
+                expose this port on the same server hosting Docker. Other services, such as an
+                instance of Tomcat running outside of Docker, will be able to connect to
+                    <span class="package">guacd</span> directly.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-docker-image"></a>The Guacamole Docker image</h2></div></div></div><p>The Guacamole Docker image is built on top of a standard Tomcat 8 image and takes care
+            of all configuration automatically. The configuration information required for
+                <span class="package">guacd</span> and the various authentication mechanisms are specified
+            with environment variables or Docker links given when the container is created.</p><div class="important"><h3 class="title">Important</h3><p>If using <a class="link" href="guacamole-docker.html#guacamole-docker-postgresql" title="PostgreSQL authentication">PostgreSQL</a> or <a class="link" href="guacamole-docker.html#guacamole-docker-mysql" title="MySQL authentication">MySQL</a> for authentication, <span class="emphasis"><em>you will need to initialize the
+                    database manually</em></span>. Guacamole will not automatically create its own
+                tables, but SQL scripts are provided to do this.</p></div><p>Once the Guacamole image is running, Guacamole will be accessible at
+                    <code class="uri">http://<em class="replaceable"><code>HOSTNAME</code></em>:8080/guacamole/</code>, where
+                <em class="replaceable"><code>HOSTNAME</code></em> is the hostname or address of the machine
+            hosting Docker.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-docker-config-via-env"></a>Configuring Guacamole when using Docker</h3></div></div></div><p>When running Guacamole using Docker, the traditional approach to configuring 
+                    Guacamole by editing <code class="filename">guacamole.properties</code> is less 
+                    convenient. When using Docker, you may wish to make use of the
+                    <em class="parameter"><code>enable-environment-properties</code></em> configuration 
+                    property, which allows you to specify values for arbitrary Guacamole 
+                    configuration properties using environment variables. This is covered in 
+                    <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a>.
+            </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-docker-guacd"></a>Connecting Guacamole to <span class="package">guacd</span></h3></div></div></div><p>The Guacamole Docker image needs to be able to connect to <span class="package">guacd</span>
+                to establish remote desktop connections, just like any other Guacamole deployment.
+                The connection information needed by Guacamole will be provided either via a Docker
+                link or through environment variables.</p><p>If you will be using Docker to provide <span class="package">guacd</span>, and you wish to
+                use a Docker link to connect the Guacamole image to <span class="package">guacd</span>, the
+                connection details are implied by the Docker link:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em> \
+    <span class="emphasis"><em>--link <em class="replaceable"><code>some-guacd</code></em>:guacd</em></span>        \
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre><p>If you are not using Docker to provide <span class="package">guacd</span>, you will need
+                    to provide the network connection information yourself using additional
+                    environment variables:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">GUACD_HOSTNAME</code></td><td>
+                                    <p>The hostname of the <span class="package">guacd</span> instance to
+                                        use to establish remote desktop connections. <span class="emphasis"><em>This
+                                            is required if you are not using Docker to provide
+                                                <span class="package">guacd</span>.</em></span></p>
+                                </td></tr><tr><td><code class="envar">GUACD_PORT</code></td><td>
+                                    <p>The port that Guacamole should use when connecting to
+                                            <span class="package">guacd</span>. This environment variable is
+                                        optional. If not provided, the standard
+                                            <span class="package">guacd</span> port of 4822 will be
+                                        used.</p>
+                                </td></tr></tbody></table></div><p>The <code class="envar">GUACD_HOSTNAME</code> and, if necessary, <code class="envar">GUACD_PORT</code>
+                    environment variables can thus be used in place of a Docker link if using a
+                    Docker link is impossible or undesirable:</p><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em> \
+    <span class="emphasis"><em>-e GUACD_HOSTNAME=<em class="replaceable"><code>172.17.42.1</code></em>  \
+    -e GUACD_PORT=<em class="replaceable"><code>4822</code></em></em></span>             \
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre></div><p><span class="emphasis"><em>A connection to <span class="package">guacd</span> is not the only thing required
+                    for Guacamole to work</em></span>; some authentication mechanism needs to be
+                configured, as well. <a class="link" href="guacamole-docker.html#guacamole-docker-mysql" title="MySQL authentication">MySQL</a>, <a class="link" href="guacamole-docker.html#guacamole-docker-postgresql" title="PostgreSQL authentication">PostgreSQL</a>, and <a class="link" href="guacamole-docker.html#guacamole-docker-ldap" title="LDAP authentication">LDAP</a> are supported for this, and are
+                described in more detail in the sections below. If the required configuration
+                options for at least one authentication mechanism are not provided, the Guacamole
+                image will not be able to start up, and you will see an error.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-docker-mysql"></a>MySQL authentication</h3></div></div></div><p>To use Guacamole with the MySQL authentication backend, you will need either a
+                Docker container running the <code class="systemitem">mysql</code> image, or network access
+                to a working installation of MySQL. The connection to MySQL can be specified using
+                either environment variables or a Docker link.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="initializing-guacamole-docker-mysql"></a>Initializing the MySQL database</h4></div></div></div><p>If your database is not already initialized with the Guacamole schema, you
+                    will need to do so prior to using Guacamole. A convenience script for generating
+                    the necessary SQL to do this is included in the Guacamole image.</p><p>To generate a SQL script which can be used to initialize a fresh MySQL
+                    database as documented in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql &gt; <em class="replaceable"><code>initdb.sql</code></em></pre></div><p>Alternatively, you can use the SQL scripts included with the database
+                    authentication.</p><p>Once this script is generated, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create a database for Guacamole within MySQL, such as
+                                    <span class="database"><em class="replaceable"><code>guacamole_db</code></em></span>.</p></li><li class="step"><p>Create a user for Guacamole within MySQL with access to this database,
+                            such as
+                                <code class="systemitem"><em class="replaceable"><code>guacamole_user</code></em></code>.</p></li><li class="step"><p>Run the script on the newly-created database.</p></li></ol></div><p>The process for doing this via the <span class="command"><strong>mysql</strong></span> utility included
+                    with MySQL is documented in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-mysql-connecting"></a>Connecting Guacamole to MySQL</h4></div></div></div><p>If your MySQL database is provided by another Docker container, and you wish
+                    to use a Docker link to connect the Guacamole image to your database, the
+                    connection details are implied by the Docker link itself:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em> \
+    --link some-guacd:guacd         \
+    <span class="emphasis"><em>--link <em class="replaceable"><code>some-mysql</code></em>:mysql</em></span>        \
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre></div><p>If you are not using Docker to provide your MySQL database, you will need to
+                    provide the network connection information yourself using additional environment
+                    variables:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">MYSQL_HOSTNAME</code></td><td>
+                                    <p>The hostname of the database to use for Guacamole
+                                        authentication. <span class="emphasis"><em>This is required if you are not
+                                            using Docker to provide your MySQL
+                                        database.</em></span></p>
+                                </td></tr><tr><td><code class="envar">MYSQL_PORT</code></td><td>
+                                    <p>The port that Guacamole should use when connecting to
+                                        MySQL. This environment variable is optional. If not
+                                        provided, the standard MySQL port of 3306 will be
+                                        used.</p>
+                                </td></tr></tbody></table></div><p>The <code class="envar">MYSQL_HOSTNAME</code> and, if necessary, <code class="envar">MYSQL_PORT</code>
+                    environment variables can thus be used in place of a Docker link if using a
+                    Docker link is impossible or undesirable:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em> \
+    --link some-guacd:guacd         \
+    <span class="emphasis"><em>-e MYSQL_HOSTNAME=<em class="replaceable"><code>172.17.42.1</code></em>  \</em></span>
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre></div><p>Note that a Docker link to <span class="package">guacd</span> (the <code class="option">--link
+                        some-guacd:guacd</code> option above) is not required any more than a
+                    Docker link is required for MySQL. The connection information for
+                        <span class="package">guacd</span> can be specified using environment variables, as
+                    described in <a class="xref" href="guacamole-docker.html#guacamole-docker-guacd" title="Connecting Guacamole to guacd">the section called “Connecting Guacamole to <span class="package">guacd</span>”</a>.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-mysql-required-vars"></a>Required environment
+                    variables</h4></div></div></div><p>Using MySQL for authentication requires additional configuration parameters
+                    specified via environment variables. These variables collectively describe how
+                    Guacamole will connect to MySQL:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">MYSQL_DATABASE</code></td><td>
+                                    <p>The name of the database to use for Guacamole
+                                        authentication.</p>
+                                </td></tr><tr><td><code class="envar">MYSQL_USER</code></td><td>
+                                    <p>The user that Guacamole will use to connect to
+                                        MySQL.</p>
+                                </td></tr><tr><td><code class="envar">MYSQL_PASSWORD</code></td><td>
+                                    <p>The password that Guacamole will provide when connecting
+                                        to MySQL as <code class="envar">MYSQL_USER</code>.</p>
+                                </td></tr></tbody></table></div><p>If any required environment variables are omitted, you will receive an error
+                    message in the logs, and the image will stop. You will then need to recreate the
+                    container with the proper variables specified.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-mysql-optional-vars"></a>Optional environment variables</h4></div></div></div><p>Additional optional environment variables may be used to override Guacamole's
+                    default behavior with respect to concurrent connection use by one or more users.
+                    Concurrent use of connections and connection groups can be limited to an overall
+                    maximum and/or a per-user maximum:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">MYSQL_ABSOLUTE_MAX_CONNECTIONS</code></td><td>
+                                    <p>The absolute maximum number of concurrent connections to
+                                        allow at any time, regardless of the Guacamole connection or
+                                        user involved. If set to "0", this will be unlimited.
+                                        Because this limit applies across all Guacamole connections,
+                                        it cannot be overridden if set.</p>
+                                    <p><span class="emphasis"><em>By default, the absolute total number of
+                                            concurrent connections is unlimited
+                                        ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">MYSQL_DEFAULT_MAX_CONNECTIONS</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow to
+                                        any one Guacamole connection. If set to "0", this will be
+                                        unlimited. This can be overridden on a per-connection basis
+                                        when editing a connection.</p>
+                                    <p><span class="emphasis"><em>By default, overall concurrent use of
+                                            connections is unlimited ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">MYSQL_DEFAULT_MAX_GROUP_CONNECTIONS</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow to
+                                        any one Guacamole connection group. If set to "0", this will
+                                        be unlimited. This can be overridden on a per-group basis
+                                        when editing a connection group.</p>
+                                    <p><span class="emphasis"><em>By default, overall concurrent use of connection
+                                            groups is unlimited ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">MYSQL_DEFAULT_MAX_CONNECTIONS_PER_USER</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow a
+                                        single user to maintain to any one Guacamole connection. If
+                                        set to "0", this will be unlimited. This can be overridden
+                                        on a per-connection basis when editing a connection.</p>
+                                    <p><span class="emphasis"><em>By default, per-user concurrent use of
+                                            connections is unlimited ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">MYSQL_DEFAULT_MAX_GROUP_CONNECTIONS_PER_USER</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow a
+                                        single user to maintain to any one Guacamole connection
+                                        group. If set to "0", this will be unlimited. This can be
+                                        overridden on a per-group basis when editing a connection
+                                        group.</p>
+                                    <p><span class="emphasis"><em>By default, per-user concurrent use of
+                                            connection groups is limited to one ("1")</em></span>, to
+                                        prevent a balancing connection group from being completely
+                                        exhausted by one user alone.</p>
+                                </td></tr></tbody></table></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-docker-postgresql"></a>PostgreSQL authentication</h3></div></div></div><p>To use Guacamole with the PostgreSQL authentication backend, you will need either
+                a Docker container running the <code class="systemitem">postgres</code> image, or network
+                access to a working installation of PostgreSQL. The connection to PostgreSQL can be
+                specified using either environment variables or a Docker link.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="initializing-guacamole-docker-postgresql"></a>Initializing the PostgreSQL database</h4></div></div></div><p>If your database is not already initialized with the Guacamole schema, you
+                    will need to do so prior to using Guacamole. A convenience script for generating
+                    the necessary SQL to do this is included in the Guacamole image.</p><p>To generate a SQL script which can be used to initialize a fresh PostgreSQL
+                    database as documented in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --postgres &gt; <em class="replaceable"><code>initdb.sql</code></em></pre></div><p>Alternatively, you can use the SQL scripts included with the database
+                    authentication.</p><p>Once this script is generated, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create a database for Guacamole within PostgreSQL, such as
+                                    <span class="database"><em class="replaceable"><code>guacamole_db</code></em></span>.</p></li><li class="step"><p>Run the script on the newly-created database.</p></li><li class="step"><p>Create a user for Guacamole within PostgreSQL with access to the
+                            tables and sequences of this database, such as
+                                    <code class="systemitem"><em class="replaceable"><code>guacamole_user</code></em></code>.</p></li></ol></div><p>The process for doing this via the <span class="command"><strong>psql</strong></span> and
+                        <span class="command"><strong>createdb</strong></span> utilities included with PostgreSQL is documented
+                    in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-postgresql-connecting"></a>Connecting Guacamole to PostgreSQL</h4></div></div></div><p>If your PostgreSQL database is provided by another Docker container, and you
+                    wish to use a Docker link to connect the Guacamole image to your database, the
+                    connection details are implied by the Docker link itself:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em> \
+    --link some-guacd:guacd         \
+    <span class="emphasis"><em>--link <em class="replaceable"><code>some-postgres</code></em>:postgres</em></span>  \
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre></div><p>If you are not using Docker to provide your PostgreSQL database, you will need
+                    to provide the network connection information yourself using additional
+                    environment variables:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">POSTGRES_HOSTNAME</code></td><td>
+                                    <p>The hostname of the database to use for Guacamole
+                                        authentication. <span class="emphasis"><em>This is required if you are not
+                                            using Docker to provide your PostgreSQL
+                                            database.</em></span></p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_PORT</code></td><td>
+                                    <p>The port that Guacamole should use when connecting to
+                                        PostgreSQL. This environment variable is optional. If not
+                                        provided, the standard PostgreSQL port of 5432 will be
+                                        used.</p>
+                                </td></tr></tbody></table></div><p>The <code class="envar">POSTGRES_HOSTNAME</code> and, if necessary,
+                        <code class="envar">POSTGRES_PORT</code> environment variables can thus be used in place
+                    of a Docker link if using a Docker link is impossible or undesirable:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em>   \
+    --link some-guacd:guacd           \
+    <span class="emphasis"><em>-e POSTGRES_HOSTNAME=<em class="replaceable"><code>172.17.42.1</code></em> \</em></span>
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre></div><p>Note that a Docker link to <span class="package">guacd</span> (the <code class="option">--link
+                        some-guacd:guacd</code> option above) is not required any more than a
+                    Docker link is required for PostgreSQL. The connection information for
+                        <span class="package">guacd</span> can be specified using environment variables, as
+                    described in <a class="xref" href="guacamole-docker.html#guacamole-docker-guacd" title="Connecting Guacamole to guacd">the section called “Connecting Guacamole to <span class="package">guacd</span>”</a>.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-postgresql-required-vars"></a>Required environment variables</h4></div></div></div><p>Using PostgreSQL for authentication requires additional configuration
+                    parameters specified via environment variables. These variables collectively
+                    describe how Guacamole will connect to PostgreSQL:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">POSTGRES_DATABASE</code></td><td>
+                                    <p>The name of the database to use for Guacamole
+                                        authentication.</p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_USER</code></td><td>
+                                    <p>The user that Guacamole will use to connect to
+                                        PostgreSQL.</p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_PASSWORD</code></td><td>
+                                    <p>The password that Guacamole will provide when connecting
+                                        to PostgreSQL as <code class="envar">POSTGRES_USER</code>.</p>
+                                </td></tr></tbody></table></div><p>If any required environment variables are omitted, you will receive an error
+                    message in the logs, and the image will stop. You will then need to recreate the
+                    container with the proper variables specified.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-postgresql-optional-vars"></a>Optional environment variables</h4></div></div></div><p>Additional optional environment variables may be used to override Guacamole's
+                    default behavior with respect to concurrent connection use by one or more users.
+                    Concurrent use of connections and connection groups can be limited to an overall
+                    maximum and/or a per-user maximum:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">POSTGRES_ABSOLUTE_MAX_CONNECTIONS</code></td><td>
+                                    <p>The absolute maximum number of concurrent connections to
+                                        allow at any time, regardless of the Guacamole connection or
+                                        user involved. If set to "0", this will be unlimited.
+                                        Because this limit applies across all Guacamole connections,
+                                        it cannot be overridden if set.</p>
+                                    <p><span class="emphasis"><em>By default, the absolute total number of
+                                            concurrent connections is unlimited
+                                        ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_DEFAULT_MAX_CONNECTIONS</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow to
+                                        any one Guacamole connection. If set to "0", this will be
+                                        unlimited. This can be overridden on a per-connection basis
+                                        when editing a connection.</p>
+                                    <p><span class="emphasis"><em>By default, overall concurrent use of
+                                            connections is unlimited ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_DEFAULT_MAX_GROUP_CONNECTIONS</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow to
+                                        any one Guacamole connection group. If set to "0", this will
+                                        be unlimited. This can be overridden on a per-group basis
+                                        when editing a connection group.</p>
+                                    <p><span class="emphasis"><em>By default, overall concurrent use of connection
+                                            groups is unlimited ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_DEFAULT_MAX_CONNECTIONS_PER_USER</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow a
+                                        single user to maintain to any one Guacamole connection. If
+                                        set to "0", this will be unlimited. This can be overridden
+                                        on a per-connection basis when editing a connection.</p>
+                                    <p><span class="emphasis"><em>By default, per-user concurrent use of
+                                            connections is unlimited ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_DEFAULT_MAX_GROUP_CONNECTIONS_PER_USER</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow a
+                                        single user to maintain to any one Guacamole connection
+                                        group. If set to "0", this will be unlimited. This can be
+                                        overridden on a per-group basis when editing a connection
+                                        group.</p>
+                                    <p><span class="emphasis"><em>By default, per-user concurrent use of
+                                            connection groups is limited to one ("1")</em></span>, to
+                                        prevent a balancing connection group from being completely
+                                        exhausted by one user alone.</p>
+                                </td></tr></tbody></table></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-docker-ldap"></a>LDAP authentication</h3></div></div></div><p>To use Guacamole with the LDAP authentication backend, you will need network
+                access to an LDAP directory. Unlike MySQL and PostgreSQL, the Guacamole Docker image
+                does support Docker links for LDAP; the connection information
+                    <span class="emphasis"><em>must</em></span> be specified using environment variables:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">LDAP_HOSTNAME</code></td><td>
+                                <p>The hostname or IP address of your LDAP server.</p>
+                            </td></tr><tr><td><code class="envar">LDAP_PORT</code></td><td>
+                                <p>The port your LDAP server listens on. By default, this will be
+                                    389 for unencrypted LDAP or LDAP using STARTTLS, and 636 for
+                                    LDAP over SSL (LDAPS).</p>
+                            </td></tr><tr><td><code class="envar">LDAP_ENCRYPTION_METHOD</code></td><td>
+                                <p>The encryption mechanism that Guacamole should use when
+                                    communicating with your LDAP server. Legal values are "none" for
+                                    unencrypted LDAP, "ssl" for LDAP over SSL/TLS (commonly known as
+                                    LDAPS), or "starttls" for STARTTLS. If omitted, encryption will
+                                    not be used.</p>
+                            </td></tr></tbody></table></div><p>Only the <code class="envar">LDAP_HOSTNAME</code> variable is required, but you may also need
+                to specify <code class="envar">LDAP_PORT</code> or <code class="envar">LDAP_ENCRYPTION_METHOD</code> if your
+                LDAP directory uses encryption or listens on a non-standard port:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em> \
+    --link some-guacd:guacd         \
+    <span class="emphasis"><em>-e LDAP_HOSTNAME=<em class="replaceable"><code>172.17.42.1</code></em>   \</em></span>
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre></div><p>Note that a Docker link to <span class="package">guacd</span> (the <code class="option">--link
+                    some-guacd:guacd</code> option above) is not required. Similar to LDAP, the
+                connection information for <span class="package">guacd</span> can be specified using
+                environment variables, as described in <a class="xref" href="guacamole-docker.html#guacamole-docker-guacd" title="Connecting Guacamole to guacd">the section called “Connecting Guacamole to <span class="package">guacd</span>”</a>.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-ldap-required-vars"></a>Required environment variables</h4></div></div></div><p>Using LDAP for authentication requires additional configuration parameters
+                    specified via environment variables. These variables collectively describe how
+                    Guacamole will query your LDAP directory:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">LDAP_USER_BASE_DN</code></td><td>
+                                    <p>The base of the DN for all Guacamole users. All Guacamole
+                                        users that will be authenticating against LDAP must be
+                                        descendents of this base DN.</p>
+                                </td></tr></tbody></table></div><p>As with the other authentication mechanisms, if any required environment
+                    variables are omitted (including those required for connecting to the LDAP
+                    directory over the network), you will receive an error message in the logs, and
+                    the image will stop. You will then need to recreate the container with the
+                    proper variables specified.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-ldap-optional-vars"></a>Optional environment variables</h4></div></div></div><p>Additional optional environment variables may be used to configure the details
+                    of your LDAP directory hierarchy, or to enable more flexible searching for user
+                    accounts:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">LDAP_GROUP_BASE_DN</code></td><td>
+                                    <p>The base of the DN for all groups that may be referenced
+                                        within Guacamole configurations using the standard
+                                            <span class="property">seeAlso</span> attribute. All groups which
+                                        will be used to control access to Guacamole configurations
+                                        must be descendents of this base DN. <span class="emphasis"><em>If this
+                                            variable is omitted, the <span class="property">seeAlso</span>
+                                            attribute will have no effect on Guacamole
+                                            configurations.</em></span></p>
+                                </td></tr><tr><td><code class="envar">LDAP_SEARCH_BIND_DN</code></td><td>
+                                    <p>The DN (Distinguished Name) of the user to bind as when
+                                        authenticating users that are attempting to log in. If
+                                        specified, Guacamole will query the LDAP directory to
+                                        determine the DN of each user that logs in. If omitted, each
+                                        user's DN will be derived directly using the base DN
+                                        specified with <code class="envar">LDAP_USER_BASE_DN</code>.</p>
+                                </td></tr><tr><td><code class="envar">LDAP_SEARCH_BIND_PASSWORD</code></td><td>
+                                    <p>The password to provide to the LDAP server when binding as
+                                            <code class="envar">LDAP_SEARCH_BIND_DN</code> to authenticate other
+                                        users. This variable is only used if
+                                            <code class="envar">LDAP_SEARCH_BIND_DN</code> is specified. If
+                                        omitted, but <code class="envar">LDAP_SEARCH_BIND_DN</code> is
+                                        specified, Guacamole will attempt to bind with the LDAP
+                                        server without a password.</p>
+                                </td></tr><tr><td><code class="envar">LDAP_USERNAME_ATTRIBUTE</code></td><td>
+                                    <p>The attribute or attributes which contain the username
+                                        within all Guacamole user objects in the LDAP directory.
+                                        Usually, and by default, this will simply be
+                                            "<span class="property">uid</span>". If your LDAP directory
+                                        contains users whose usernames are dictated by different
+                                        attributes, multiple attributes can be specified here,
+                                        separated by commas, but beware: <span class="emphasis"><em>doing so requires
+                                            that a search DN be provided with
+                                                <code class="envar">LDAP_SEARCH_BIND_DN</code></em></span>.</p>
+                                </td></tr><tr><td><code class="envar">LDAP_CONFIG_BASE_DN</code></td><td>
+                                    <p>The base of the DN for all Guacamole configurations. If
+                                        omitted, the configurations of Guacamole connections will
+                                        simply not be queried from the LDAP directory, and you will
+                                        need to store them elsewhere, such as within a MySQL or
+                                        PostgreSQL database.</p>
+                                </td></tr></tbody></table></div><p>As documented in <a class="xref" href="ldap-auth.html" title="Chapter 7. LDAP authentication">Chapter 7, <em>LDAP authentication</em></a>, Guacamole does support combining LDAP with a MySQL or
+                    PostgreSQL database, and this can be configured with the Guacamole Docker image,
+                    as well. Each of these authentication mechanisms is independently configurable
+                    using their respective environment variables, and by providing the required
+                    environment variables for multiple systems, Guacamole will automatically be
+                    configured to use each when the Docker image starts.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-docker-guacamole-home"></a>Custom extensions and <code class="envar">GUACAMOLE_HOME</code></h3></div></div></div><p>If you have your own or third-party extensions for Guacamole which are not
+                supported by the Guacamole Docker image, but are compatible with the version of
+                Guacamole within the image, you can still use them by providing a custom base
+                configuration using the <code class="envar">GUACAMOLE_HOME</code> environment variable:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">GUACAMOLE_HOME</code></td><td>
+                                <p>The absolute path to the directory within the Docker container
+                                    to use <span class="emphasis"><em>as a template</em></span> for the image's
+                                    automatically-generated <a class="link" href="configuring-guacamole.html#guacamole-home" title="GUACAMOLE_HOME (/etc/guacamole)"><code class="envar">GUACAMOLE_HOME</code></a>. Any configuration
+                                    generated by the Guacamole Docker image based on other
+                                    environment variables will be applied to an independent copy of
+                                    the contents of this directory.</p>
+                            </td></tr></tbody></table></div><p>You will <span class="emphasis"><em>still</em></span> need to follow the steps required to create
+                the contents of <a class="link" href="configuring-guacamole.html#guacamole-home" title="GUACAMOLE_HOME (/etc/guacamole)"><code class="envar">GUACAMOLE_HOME</code></a> specific to your
+                extension (placing the extension itself within
+                        <code class="filename"><em class="replaceable"><code>GUACAMOLE_HOME</code></em>/extensions/</code>,
+                adding any properties to <code class="filename">guacamole.properties</code>, etc.), but the
+                rest of Guacamole's configuration will be handled automatically, overlaid on top of
+                a copy of the <code class="envar">GUACAMOLE_HOME</code> you provide.</p><p>Because the Docker image's <code class="envar">GUACAMOLE_HOME</code> environment variable must
+                point to a directory <span class="emphasis"><em>within the container</em></span>, you will need to
+                expose your custom <code class="envar">GUACAMOLE_HOME</code> to the container using the
+                    <code class="option">-v</code> option of <span class="command"><strong>docker run</strong></span>. The container
+                directory chosen can then be referenced in the <code class="envar">GUACAMOLE_HOME</code>
+                environment variable, and the image will handle the rest automatically:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em>    \
+    ...
+    <span class="emphasis"><em>-v <em class="replaceable"><code>/local/path</code></em>:<em class="replaceable"><code>/some-directory</code></em>   \
+    -e GUACAMOLE_HOME=<em class="replaceable"><code>/some-directory</code></em> \</em></span>
+    -d -p 8080:8080 guacamole/guacamole</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="verifying-guacamole-docker"></a>Verifying the Guacamole install</h3></div></div></div><p>Once the Guacamole image is running, Guacamole should be accessible at
+                        <code class="uri">http://<em class="replaceable"><code>HOSTNAME</code></em>:8080/guacamole/</code>, where
+                    <em class="replaceable"><code>HOSTNAME</code></em> is the hostname or address of the machine
+                hosting Docker, and you <span class="emphasis"><em>should</em></span> a login screen. If using MySQL
+                or PostgreSQL, the database initialization scripts will have created a default
+                administrative user called "<code class="systemitem">guacadmin</code>" with the password
+                    "<code class="systemitem">guacadmin</code>". <span class="emphasis"><em>You should log in and change
+                    your password immediately.</em></span> If using LDAP, you should be able to log
+                in as any valid user within your LDAP directory.</p><p>If you cannot access Guacamole, or you do not see a login screen, check Docker's
+                logs using the <span class="command"><strong>docker logs</strong></span> command to determine if something is
+                wrong. Configuration parameters may have been given incorrectly, or the database may
+                be improperly initialized:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> logs <em class="replaceable"><code>some-guacamole</code></em></pre></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="installing-guacamole.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="proxying-guacamole.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 2. Installing Guacamole natively </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 4. Proxying Guacamole</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/guacamole-ext.html b/doc/1.1.0/gug/guacamole-ext.html
new file mode 100644
index 0000000..910d733
--- /dev/null
+++ b/doc/1.1.0/gug/guacamole-ext.html
@@ -0,0 +1,447 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 22. guacamole-ext</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="guacamole-common-js.html" title="Chapter 21. guacamole-common-js" /><link rel="next" href="custom-protocols.html" title="Chapter 23. Adding new protocols" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 22. guacamole-ext</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="guacamole-common-js.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="custom-protocols.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="guacamole-ext"></a>Chapter 22. guacamole-ext</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="guacamole-ext.html#ext-file-format">Guacamole extension format</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-ext.html#ext-manifest">Extension manifest</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-patch-html">Updating existing HTML</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-ext.html#ext-environment">Accessing the server configuration</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-ext.html#ext-simple-config">Custom properties</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-advanced-config">Advanced configuration</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-ext.html#ext-auth-providers">Authentication providers</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-ext.html#ext-simple-auth"><code class="classname">SimpleAuthenticationProvider</code></a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-ext.html#ext-user-context">The <code class="classname">UserContext</code></a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-object-directories"><code class="classname">Directory</code> classes</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-rest-resources">REST resources</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-permissions">Permissions</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-ext.html#idm46420844452544">System permissions</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#idm46420844439360">Object permissions</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-ext.html#ext-connections">Connections</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-active-connections">Managing/sharing active connections</a></span></dt></dl></div><a id="idm46420844903664" class="indexterm"></a><a id="idm46420844902320" class="indexterm"></a><p>While not strictly part of the Java API provided by the Guacamole project, guacamole-ext
+        is an API exposed by the Guacamole web application within a separate project such that
+        extensions, specifically authentication providers, can be written to tweak Guacamole to fit
+        well in existing deployments.</p><p>Extensions to Guacamole can:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Provide alternative authentication methods and sources of connection/user
+                data.</p></li><li class="listitem"><p>Provide event listeners that will be notified as Guacamole performs tasks such
+                as authentication and tunnel connection.</p></li><li class="listitem"><p>Theme or brand Guacamole through additional CSS files and static resources.</p></li><li class="listitem"><p>Extend Guacamole's JavaScript code by providing JavaScript that will be loaded
+                automatically.</p></li><li class="listitem"><p>Add additional display languages, or alter the translation strings of existing
+                languages.</p></li></ol></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-file-format"></a>Guacamole extension format</h2></div></div></div><p>Guacamole extensions are standard Java <code class="filename">.jar</code> files which contain
+            all classes and resources required by the extension, as well as the Guacamole extension
+            manifest. There is no set structure to an extension except that the manifest must be in
+            the root of the archive. Java classes and packages, if any, will be read from the
+                <code class="filename">.jar</code> relative to the root, as well.</p><p>Beyond this, the semantics and locations associated with all other resources within
+            the extension are determined by the extension manifest alone.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="ext-manifest"></a>Extension manifest</h3></div></div></div><p>The Guacamole extension manifest is a single JSON file,
+                    <code class="filename">guac-manifest.json</code>, which describes the location of each
+                resource, the type of each resource, and the version of Guacamole that the extension
+                was built for. The manifest can contain the following properties:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Property</th><th>Description</th></tr></thead><tbody><tr><td><span class="property">guacamoleVersion</span></td><td>
+                                <p>The version string of the Guacamole release that this
+                                    extension is written for. <span class="emphasis"><em>This property is required
+                                        for all extensions.</em></span> The special version string
+                                        <code class="code">"*"</code> can be used if the extension does not
+                                    depend on a particular version of Guacamole, but be careful -
+                                    this will bypass version compatibility checks, and should never
+                                    be used if the extension does more than basic theming or
+                                    branding.</p>
+                            </td></tr><tr><td><span class="property">name</span></td><td>
+                                <p>A human-readable name for the extension. <span class="emphasis"><em>This
+                                        property is required for all extensions.</em></span> When
+                                    your extension is successfully loaded, a message acknowledging
+                                    the successful loading of your extension by name will be
+                                    logged.</p>
+                            </td></tr><tr><td><span class="property">namespace</span></td><td>
+                                <p>A unique string which identifies your extension.
+                                        <span class="emphasis"><em>This property is required for all
+                                        extensions.</em></span> This string should be unique enough
+                                    that it is unlikely to collide with the namespace of any other
+                                    extension.</p>
+                                <p>If your extension contains static resources, those resources
+                                    will be served at a path derived from the namespace provided
+                                    here.</p>
+                            </td></tr><tr><td><span class="property">authProviders</span></td><td>
+                                <p>An array of the classnames of all
+                                        <code class="classname">AuthenticationProvider</code> subclasses
+                                    provided by this extension.</p>
+                            </td></tr><tr><td><span class="property">listeners</span></td><td>
+                                <p>An array of the classnames of all
+                                        <code class="classname">Listener</code> subclasses
+                                    provided by this extension.</p>
+                            </td></tr><tr><td><span class="property">js</span></td><td>
+                                <p>An array of all JavaScript files within the extension. All
+                                    paths within this array must be relative paths, and will be
+                                    interpreted relative to the root of the archive.</p>
+                                <p>JavaScript files declared here will be automatically loaded
+                                    when the web application loads within the user's browser.</p>
+                            </td></tr><tr><td><span class="property">css</span></td><td>
+                                <p>An array of all CSS files within the extension. All paths
+                                    within this array must be relative paths, and will be
+                                    interpreted relative to the root of the archive.</p>
+                                <p>CSS files declared here will be automatically applied when the
+                                    web application loads within the user's browser.</p>
+                            </td></tr><tr><td><span class="property">html</span></td><td>
+                                <p>An array of all HTML files within the extension that should be
+                                    used to update or replace existing HTML within the Guacamole
+                                    interface. All paths within this array must be relative paths,
+                                    and will be interpreted relative to the root of the
+                                    archive.</p>
+                                <p>HTML files declared here will be automatically applied to
+                                    other HTML within the Guacamole interface when the web
+                                    application loads within the user's browser. The manner in which
+                                    the files are applied is dictated by <code class="sgmltag-element">&lt;meta ...&gt;</code>
+                                    within those same files.</p>
+                            </td></tr><tr><td><span class="property">translations</span></td><td>
+                                <p>An array of all translation files within the extension. All
+                                    paths within this array must be relative paths, and will be
+                                    interpreted relative to the root of the archive.</p>
+                                <p>Translation files declared here will be automatically added to
+                                    the available languages. If a translation file provides a
+                                    language that already exists within Guacamole, its strings will
+                                    override the strings of the existing translation.</p>
+                            </td></tr><tr><td><span class="property">resources</span></td><td>
+                                <p>An object where each property name is the name of a web
+                                    resource file, and each value is the mimetype for that resource.
+                                    All paths within this object must be relative paths, and will be
+                                    interpreted relative to the root of the archive.</p>
+                                <p>Web resources declared here will be made available to the
+                                    application at
+                                            <code class="filename">app/ext/<em class="replaceable"><code>NAMESPACE</code></em>/<em class="replaceable"><code>PATH</code></em></code>,
+                                    where <em class="replaceable"><code>NAMESPACE</code></em> is the value of the
+                                        <span class="property">namespace</span> property, and
+                                        <em class="replaceable"><code>PATH</code></em> is the declared web resource
+                                    filename.</p>
+                            </td></tr></tbody></table></div><p>The only absolutely required properties are <span class="property">guacamoleVersion</span>,
+                    <span class="property">name</span>, and <span class="property">namespace</span>, as they are used
+                to identify the extension and for compatibility checks. The most minimal
+                    <code class="filename">guac-manifest.json</code> will look something like this:</p><div class="informalexample"><pre class="programlisting">{
+    "guacamoleVersion" : "1.1.0",
+    "name" : "My Extension",
+    "namespace" : "my-extension"
+}</pre></div><p>This will allow the extension to load, but does absolutely nothing otherwise.
+                Lacking the semantic information provided by the other properties, no other files
+                within the extension will be used. A typical <code class="filename">guac-manifest.json</code>
+                for an extension providing theming or branding would be more involved:</p><div class="informalexample"><pre class="programlisting">{
+
+    "guacamoleVersion" : "1.1.0",
+
+    "name"      : "My Extension",
+    "namespace" : "my-extension",
+
+    "css" : [ "theme.css" ],
+
+    "html" : [ "loginDisclaimer.html" ],
+
+    "resources" : {
+        "images/logo.png"   : "image/png",
+        "images/cancel.png" : "image/png",
+        "images/delete.png" : "image/png"
+    }
+
+}</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="ext-patch-html"></a>Updating existing HTML</h3></div></div></div><p>The existing HTML structure of Guacamole's interface can be modified by extensions
+                through special "patch" HTML files declared by the <span class="property">html</span>
+                property in <code class="filename">guac-manifest.json</code>. These files are HTML fragments
+                and are identical to any other HTML file except that they contain Guacamole-specific
+                    <code class="sgmltag-element">meta</code> tags that instruct Guacamole to modify its own HTML in a
+                particular way. Each <code class="sgmltag-element">meta</code> tag takes the following form:</p><div class="informalexample"><pre class="programlisting">&lt;meta name="<em class="replaceable"><code>NAME</code></em>" content="<em class="replaceable"><code>SELECTOR</code></em>"&gt;</pre></div><p>where <em class="replaceable"><code>SELECTOR</code></em> is a CSS selector that matches the
+                elements within the Guacamole interface that serve as a basis for the modification,
+                and <em class="replaceable"><code>NAME</code></em> is any one of the following defined
+                modifications:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Name</th><th>Description</th></tr></thead><tbody><tr><td><span class="property">before</span></td><td>
+                                <p>Inserts the specified HTML immediately before any element
+                                    matching the CSS selector.</p>
+                            </td></tr><tr><td><span class="property">after</span></td><td>
+                                <p>Inserts the specified HTML immediately after any element
+                                    matching the CSS selector.</p>
+                            </td></tr><tr><td><span class="property">replace</span></td><td>
+                                <p>Replaces any element matching the CSS selector with the
+                                    specified HTML.</p>
+                            </td></tr><tr><td><span class="property">before-children</span></td><td>
+                                <p>Inserts the specified HTML immediately before the first child
+                                    (if any) of any element matching the CSS selector. If a matching
+                                    element has no children, the HTML simply becomes the entire
+                                    contents of the matching element.</p>
+                            </td></tr><tr><td><span class="property">after-children</span></td><td>
+                                <p>Inserts the specified HTML immediately after the last child
+                                    (if any) of any element matching the CSS selector. If a matching
+                                    element has no children, the HTML simply becomes the entire
+                                    contents of the matching element.</p>
+                            </td></tr><tr><td><span class="property">replace-children</span></td><td>
+                                <p>Replaces the entire contents of any element matching the CSS
+                                    selector with the specified HTML.</p>
+                            </td></tr></tbody></table></div><p>For example, to add a welcome message and link to some corporate privacy policy (a
+                fairly common need), you would add an HTML file like the following:</p><div class="informalexample"><pre class="programlisting">&lt;meta name="after" content=".login-ui .login-dialog"&gt;
+
+&lt;div class="welcome"&gt;
+    &lt;h2&gt;Welcome to our Guacamole server!&lt;/h2&gt;
+    &lt;p&gt;
+        Please be sure to read our &lt;a href="/path/to/some/privacy.html"&gt;privacy
+        policy&lt;/a&gt; before continuing.
+    &lt;/p&gt;
+&lt;/div&gt;</pre></div><p>After the extension is installed and Guacamole is restarted, the "welcome" div and
+                its contents will automatically be inserted directly below the login dialog (the
+                only element that would match <code class="code">.login-ui .login-dialog</code>) as if they were
+                part of Guacamole's HTML in the first place.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-environment"></a>Accessing the server configuration</h2></div></div></div><p>The configuration of the Guacamole server is exposed through the
+                <code class="classname">Environment</code> interface, specifically the
+                <code class="classname">LocalEnvironment</code> implementation of this interface. Through
+                <code class="classname">Environment</code>, you can access all properties declared within
+                <code class="filename">guacamole.properties</code>, determine the proper hostname/port of
+                <span class="package">guacd</span>, and access the contents of
+                <code class="varname">GUACAMOLE_HOME</code>.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="ext-simple-config"></a>Custom properties</h3></div></div></div><p>If your extension requires generic, unstructured configuration parameters,
+                    <code class="filename">guacamole.properties</code> is a reasonable and simple location
+                for them. The <code class="classname">Environment</code> interface provides direct access to
+                    <code class="filename">guacamole.properties</code> and simple mechanisms for reading and
+                parsing the properties therein. The value of a property can be retrieved calling
+                    <code class="methodname">getProperty()</code>, which will return
+                    <code class="constant">null</code> or a default value for undefined properties, or
+                    <code class="methodname">getRequiredProperty()</code>, which will throw an exception
+                for undefined properties.</p><p>For convenience, guacamole-ext contains several pre-defined property base classes
+                for common types:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /><col class="c3" /></colgroup><thead><tr><th>Class Name</th><th>Value Type</th><th>Interpretation</th></tr></thead><tbody><tr><td><code class="classname">BooleanGuacamoleProperty</code></td><td><code class="classname">Boolean</code></td><td>The values "true" and "false" are parsed as their corresponding
+                                    <code class="classname">Boolean</code> values. Any other value results
+                                in a parse error.</td></tr><tr><td><code class="classname">IntegerGuacamoleProperty</code></td><td><code class="classname">Integer</code></td><td>Numeric strings are parsed as <code class="classname">Integer</code>
+                                values. Non-numeric strings will result in a parse error.</td></tr><tr><td><code class="classname">LongGuacamoleProperty</code></td><td><code class="classname">Long</code></td><td>Numeric strings are parsed as <code class="classname">Long</code> values.
+                                Non-numeric strings will result in a parse error.</td></tr><tr><td><code class="classname">StringGuacamoleProperty</code></td><td><code class="classname">String</code></td><td>The property value is returned as an untouched
+                                    <code class="classname">String</code>. No parsing is performed, and
+                                parse errors cannot occur.</td></tr><tr><td><code class="classname">FileGuacamoleProperty</code></td><td><code class="classname">File</code></td><td>The property is interpreted as a filename, and a new
+                                    <code class="classname">File</code> pointing to that filename is
+                                returned. If the filename is invalid, a parse error will be thrown.
+                                Note that the file need not exist or be accessible for the filename
+                                to be valid.</td></tr></tbody></table></div><p>To use these types, you must extend the base class, implementing the
+                    <code class="methodname">getName()</code> function to identify your property.
+                Typically, you would declare these properties as static members of some class
+                containing all properties relevant to your extension:</p><div class="informalexample"><pre class="programlisting">public class MyProperties {
+
+    public static <em class="replaceable"><code>MY_PROPERTY</code></em> = new IntegerGuacamoleProperty() {
+
+        @Override
+        public String getName() { return "<em class="replaceable"><code>my-property</code></em>"; }
+
+    };
+
+}</pre></div><p>Your property can then be retrieved with <code class="methodname">getProperty()</code> or
+                    <code class="methodname">getRequiredProperty()</code>:</p><div class="informalexample"><pre class="programlisting">Integer value = environment.getProperty(<em class="replaceable"><code>MyProperties.MY_PROPERTY</code></em>);</pre></div><p>If you need more sophisticated parsing, you can also implement your own property
+                types by implementing the <code class="classname">GuacamoleProperty</code> interface. The
+                only functions to implement are <code class="methodname">getName()</code>, which returns
+                the name of the property, and <code class="methodname">parseValue()</code>, which parses a
+                given string and returns its value.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="ext-advanced-config"></a>Advanced configuration</h3></div></div></div><p>If you need more structured data than provided by simple properties, you can place
+                completely arbitrary files in a hierarchy of your choosing anywhere within
+                    <code class="varname">GUACAMOLE_HOME</code> as long as you avoid placing your files in
+                directories reserved for other purposes as described above.</p><p>The Environment interface exposes the location of
+                    <code class="varname">GUACAMOLE_HOME</code> through the
+                    <code class="methodname">getGuacamoleHome()</code> function. This function returns a
+                standard Java <code class="classname">File</code> which can then be used to locate other
+                files or directories within <code class="varname">GUACAMOLE_HOME</code>:</p><div class="informalexample"><pre class="programlisting">File myConfigFile = new File(environment.getGuacamoleHome(), "my-config.xml");</pre><p>There is no guarantee that <code class="varname">GUACAMOLE_HOME</code> or your file will
+                    exist, and you should verify this before proceeding further in your extension's
+                    configuration process, but once this is done you can simply parse your file as
+                    you see fit.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-auth-providers"></a>Authentication providers</h2></div></div></div><p>Guacamole's authentication system is driven by authentication providers, which are
+            classes which implement the <code class="classname">AuthenticationProvider</code> interface
+            defined by guacamole-ext. When any page within Guacamole is visited, the following
+            process occurs:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>All currently installed extensions are polled, in lexicographic order of their
+                    filenames, by invoking the <code class="methodname">getAuthenticatedUser()</code>
+                    function with a <code class="classname">Credentials</code> object constructed with the
+                    contents of the HTTP request.</p><p>The credentials given are abstract. While the Credentials object provides
+                    convenience access to a traditional username and password,
+                        <span class="emphasis"><em>implementations are not required to use usernames and
+                        passwords</em></span>. The entire contents of the HTTP request is at your
+                    disposal, including parameters, cookies, and SSL information.</p></li><li class="listitem"><p>If an authentication attempt fails, the extension throws either a
+                        <code class="classname">GuacamoleInsufficientCredentialsException</code> (if more
+                    credentials are needed before validity can be determined) or
+                        <code class="classname">GuacamoleInvalidCredentialsException</code> (if the
+                    credentials are technically sufficient, but are invalid as provided). If all
+                    extensions fail to authenticate the user, the contents of the exception thrown
+                    by the first extension to fail are used to produce the user login prompt.</p><p><span class="emphasis"><em>Note that this means there is no "login screen" in Guacamole per se;
+                        the prompt for credentials for unauthenticated users is determined purely
+                        based on the needs of the extension as declared within the authentication
+                        failure itself.</em></span></p><p>If an authentication attempt succeeds, the extension returns an instance of
+                        <code class="classname">AuthenticatedUser</code> describing the identity of the user
+                    that just authenticated, and no further extensions are polled.</p></li><li class="listitem"><p>If authentication has succeeded, and thus an
+                        <code class="classname">AuthenticatedUser</code> is available, that
+                        <code class="classname">AuthenticatedUser</code> is passed to the
+                        <code class="methodname">getUserContext()</code> function of all extensions'
+                    authentication providers. Each extension now has the opportunity to provide
+                    access to data for a user, even if that extension did not originally
+                    authenticate the user. If no <code class="classname">UserContext</code> is returned for
+                    the given <code class="classname">AuthenticatedUser</code>, then that extension has
+                    simply refused to provide data for that user.</p><p>The Guacamole interface will transparently unify the data from each extension,
+                    providing the user with a view of all available connections. If the user has
+                    permission to modify or administer any objects associated with an extension,
+                    access to the administrative interface will be exposed as well, again with a
+                    unified view of all applicable objects.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>Because authentication is decoupled from data storage/access, <span class="emphasis"><em>you do not
+                    need to implement full-blown data storage if you only wish to provide an
+                    additional authentication mechanism</em></span>. You can instead implement only
+                the authentication portion of an <code class="classname">AuthenticationProvider</code>, and
+                otherwise rely on the storage and features provided by other extensions, such as the
+                    <a class="link" href="jdbc-auth.html" title="Chapter 6. Database authentication">database
+                    authentication extension</a>.</p></div><p>The Guacamole web application includes a basic authentication provider implementation
+            which parses an XML file to determine which users exist, their corresponding passwords,
+            and what configurations those users have access to. This is the part of Guacamole that
+            reads the <code class="filename">user-mapping.xml</code> file. If you use a custom authentication
+            provider for your authentication, this file will probably not be required.</p><p>The community has implemented authentication providers which access databases, use
+            LDAP, or even perform no authentication at all, redirecting all users to a single
+            configuration specified in <code class="filename">guacamole.properties</code>.</p><p>A minimal authentication provider is implemented in the tutorials later, and the
+            upstream authentication provider implemented within Guacamole, as well as the
+            authentication providers implemented by the community, are good examples for how
+            authentication can be extended without having to implement a whole new web
+            application.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="ext-simple-auth"></a><code class="classname">SimpleAuthenticationProvider</code></h3></div></div></div><p>The <code class="classname">SimpleAuthenticationProvider</code> class provides a much
+                simpler means of implementing authentication when you do not require the ability to
+                add and remove users and connections. It is an abstract class and requires only one
+                function implementation:
+                <code class="methodname">getAuthorizedConfigurations()</code>.</p><p>This function is required to return a <code class="classname">Map</code> of unique IDs to
+                configurations, where these configurations are all configurations accessible with
+                the provided credentials. As before, the credentials given are abstract. You are not
+                required to use usernames and passwords.</p><p>The configurations referred to by the function name are instances of
+                    <code class="classname">GuacamoleConfiguration</code> (part of guacamole-common), which
+                is just a wrapper around a protocol name and set of parameter name/value pairs. The
+                name of the protocol to use and a set of parameters is the minimum information
+                required for other parts of the Guacamole API to complete the handshake required by
+                the Guacamole protocol.</p><p>When a class that extends <code class="classname">SimpleAuthenticationProvider</code> is
+                asked for more advanced operations by the web application,
+                    <code class="classname">SimpleAuthenticationProvider</code> simply returns that there is
+                no permission to do so. This effectively disables all administrative functionality
+                within the web interface.</p><p>If you choose to go the simple route, most of the rest of this chapter is
+                irrelevant. Permissions, security model, and various classes will be discussed that
+                are all handled for you automatically by
+                    <code class="classname">SimpleAuthenticationProvider</code>.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-user-context"></a>The <code class="classname">UserContext</code></h2></div></div></div><p>The <code class="classname">UserContext</code> is the root of all data-related operations. It
+            is used to list, create, modify, or delete users and connections, as well as to query
+            available permissions. If an extension is going to provide access to data of any sort,
+            it must do so through the <code class="classname">UserContext</code>.</p><p>The Guacamole web application uses permissions queries against the
+                <code class="classname">UserContext</code> to determine what operations to present, but
+                <span class="emphasis"><em>beware that it is up to the <code class="classname">UserContext</code> to actually
+                enforce these restrictions</em></span>. The Guacamole web application will not
+            enforce restrictions on behalf of the <code class="classname">UserContext</code>.</p><p>The <code class="classname">UserContext</code> is the sole means of entry and the sole means
+            of modification available to a logged-in user. If the <code class="classname">UserContext</code>
+            refuses to perform an operation (by throwing an exception), the user cannot perform the
+            operation at all.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-object-directories"></a><code class="classname">Directory</code> classes</h2></div></div></div><p>Access to objects beneath the <code class="classname">UserContext</code> is given through
+                <code class="classname">Directory</code> classes. These <code class="classname">Directory</code>
+            classes are similar to Java collections, but they also embody update and batching
+            semantics. Objects can be retrieved from a <code class="classname">Directory</code> using its
+                <code class="methodname">get()</code> function and added or removed with
+                <code class="methodname">add()</code> and <code class="methodname">remove()</code> respectively,
+            but objects already in the set can also be updated by passing an updated object to its
+                <code class="methodname">update()</code> function.</p><p>An implementation of a <code class="classname">Directory</code> can rely on these functions to
+            define the semantics surrounding all operations. The <code class="methodname">add()</code>
+            function is called only when creating new objects, the <code class="methodname">update()</code>
+            function is called only when updating an object previously retrieved with
+                <code class="methodname">get()</code>, and <code class="methodname">remove()</code> is called only
+            when removing an existing object by its identifier.</p><p>When implementing an <code class="classname">AuthenticationProvider</code>, you must ensure
+            that the <code class="classname">UserContext</code> will only return
+                <code class="classname">Directory</code> classes that automatically enforce the permissions
+            associated with all objects and the associated user.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-rest-resources"></a>REST resources</h2></div></div></div><p>Arbitrary REST resources may be exposed by extensions at the
+                <code class="classname">AuthenticationProvider</code> level, if the resource does not
+            require an associated authenticated user, or at the <code class="classname">UserContext</code>
+            level, if the resource should be available to authenticated users only. In both cases,
+            the REST resource is provided through implementing the
+                <code class="function">getResource()</code> function, returning an object which is annotated
+            with JAX-RS annotations (JSR 311).</p><p>The resource returned by <code class="function">getResource()</code> functions as the root
+            resource, providing access to other resources beneath itself. The root resource for the
+                <code class="classname">AuthenticationProvider</code> is exposed at
+                    <code class="uri"><em class="replaceable"><code>PATH</code></em>/api/ext/<em class="replaceable"><code>IDENTIFIER</code></em></code>,
+            and the root resource for the <code class="classname">UserContext</code> is exposed at
+                    <code class="uri"><em class="replaceable"><code>PATH</code></em>/api/session/ext/<em class="replaceable"><code>IDENTIFIER</code></em></code>,
+            where <em class="replaceable"><code>PATH</code></em> is the path to which Guacamole has been deployed
+            (typically <code class="uri">/guacamole/</code>) and <em class="replaceable"><code>IDENTIFIER</code></em> is the
+            unique identifier for the <code class="classname">AuthenticationProvider</code>, as returned by
+                <code class="function">getIdentifier()</code>.</p><p>The behavior of extension REST resources is generally left entirely to the
+            implementation, with the exception that the "token" request parameter is reserved for
+            use by Guacamole. This parameter contains the user's authentication token when the user
+            is logged in, and must be present on all requests which require authentication. Though
+            not relevant to REST resources exposed at the
+                <code class="classname">AuthenticationProvider</code> level, resources exposed at the
+                <code class="classname">UserContext</code> level inherently require the "token" parameter to
+            be present, as it is the sole means of locating the user's session.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-permissions"></a>Permissions</h2></div></div></div><p>The permissions system within guacamole-ext is an advisory system. It is the means by
+            which an authentication module describes to the web application what a user is allowed
+            to do. The body of permissions granted to a user describes which objects that user can
+            see and what they can do to those objects, and thus suggests how the Guacamole interface
+            should appear to that user.</p><p><span class="emphasis"><em>Permissions are not the means by which access is restricted</em></span>; they
+            are purely a means of describing access level. An implementation may internally use the
+            permission objects to define restrictions, but this is not required. It is up to the
+            implementation to enforce its own restrictions by throwing exceptions when an operation
+            is not allowed, and to correctly communicate the abilities of individual users through
+            these permissions.</p><p>The permissions available to a user are exposed through the
+                <code class="classname">SystemPermissionSet</code> and
+                <code class="classname">ObjectPermissionSet</code> classes which are accessible through the
+                <code class="classname">UserContext</code>. These classes also serve as the means for
+            manipulating the permissions granted to a user.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420844452544"></a>System permissions</h3></div></div></div><p>System permissions describe access to operations that manipulate the system as a
+                whole, rather than specific objects. This includes the creation of new objects, as
+                object creation directly affects the system, and per-object controls cannot exist
+                before the object is actually created.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">ADMINISTER</code></span></dt><dd><p>The user is a super-user - the Guacamole equivalent of root. They are
+                            allowed to manipulate of system-level permissions and all other objects.
+                            This permission implies all others.</p></dd><dt><span class="term"><code class="constant">CREATE_CONNECTION</code></span></dt><dd><p>The user is allowed to create new connections. If a user has this
+                            permission, the management interface will display components related to
+                            connection creation.</p></dd><dt><span class="term"><code class="constant">CREATE_CONNECTION_GROUP</code></span></dt><dd><p>The user is allowed to create new connection groups. If a user has
+                            this permission, the management interface will display components
+                            related to connection group creation.</p></dd><dt><span class="term"><code class="constant">CREATE_SHARING_PROFILE</code></span></dt><dd><p>The user is allowed to create new sharing profiles. If a user has this
+                            permission, the management interface will display components related to
+                            sharing profile creation.</p></dd><dt><span class="term"><code class="constant">CREATE_USER</code></span></dt><dd><p>The user is allowed to create other users. If a user has this
+                            permission, the management interface will display components related to
+                            user creation.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420844439360"></a>Object permissions</h3></div></div></div><p>Object permissions describe access to operations that affect a particular object.
+                Guacamole currently defines four types of objects which can be associated with
+                permissions: users, connections, connection groups, and sharing profiles. Each
+                object permission associates a single user with an action that may be performed on a
+                single object.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">ADMINISTER</code></span></dt><dd><p>The user may grant or revoke permissions involving this object.
+                            "Involving", in this case, refers to either side of the permission
+                            association, and includes both the user to whom the permission is
+                            granted and the object the permission affects.</p></dd><dt><span class="term"><code class="constant">DELETE</code></span></dt><dd><p>The user may delete this object. This is distinct from the
+                                <code class="constant">ADMINISTER</code> permission which deals only with
+                            permissions. A user with this permission will see the "Delete" button
+                            when applicable.</p></dd><dt><span class="term"><code class="constant">READ</code></span></dt><dd><p>The user may see that this object exists and read the properties of
+                            that object.</p><p>Note that the implementation is <span class="emphasis"><em>not required to divulge the
+                                true underlying properties of any object</em></span>. The parameters
+                            of a connection or sharing profile, the type or contents of a connection
+                            group, the password of a user, etc. all need not be exposed.</p><p>This is particularly important from the perspective of security when
+                            it comes to connections, as the parameters of a connection are only
+                            truly needed when a connection is being modified, and likely should not
+                            be exposed otherwise. The actual connection operation is always
+                            performed internally by the authentication provider, and thus does not
+                            require client-side knowledge of anything beyond the connection's
+                            existence.</p></dd><dt><span class="term"><code class="constant">UPDATE</code></span></dt><dd><p>The user may change the properties of this object.</p><p>In the case of users, this means the user's password can be altered.
+                                <span class="emphasis"><em>Permissions are not considered properties of a
+                                user</em></span>, nor objects in their own right, but rather
+                            associations between a user and an action which may involve another
+                            object.</p><p>The properties of a connection include its name, protocol, parent
+                            connection group, and parameters. The properties of a connection group
+                            include its name, type, parent connection group, and children. The
+                            properties of a sharing profile include its name, primary connection,
+                            and parameters.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-connections"></a>Connections</h2></div></div></div><p>Guacamole connections are organized in a hierarchy made up of connection groups, which
+            each act as folders organizing the connections themselves. The hierarchy is accessed
+            through the root-level connection group, exposed by
+                <code class="methodname">getRootConnectionGroup()</code> by the
+                <code class="classname">UserContext</code>. The connections and connection groups exposed
+            beneath the root connection group must also be accessible directly through the
+            connection and connection group directories exposed by
+                <code class="methodname">getConnectionDirectory()</code> and
+                <code class="methodname">getConnectionGroupDirectory()</code> of the
+                <code class="classname">UserContext</code>.</p><p>When a user attempts to use a connection the <code class="methodname">connect()</code> of the
+            associated <code class="classname">Connection</code> object will be invoked. It is then up to
+            the implementation of this function to establish the TCP connection to guacd, perform
+            the connection handshake (most likely via an <code class="classname">InetGuacamoleSocket</code>
+            wrapped within a <code class="classname">ConfiguredGuacamoleSocket</code>), and then return a
+                <code class="classname">GuacamoleTunnel</code> which controls access to the established
+            socket.</p><p>Extensions may maintain historical record of connection use via
+                <code class="classname">ConnectionRecord</code> objects, which are exposed both at the
+                <code class="classname">Connection</code> level and across all connections via the
+                <code class="classname">UserContext</code>. Such record maintenance is optional, and it is
+            expected that most implementations will simply return empty lists.</p><div class="important"><h3 class="title">Important</h3><p>If connection state will not be tracked by the extension, and the parameters
+                associated with the connection will be known at the time the connection object is
+                created, the <code class="classname">SimpleConnection</code> implementation of
+                    <code class="classname">Connection</code> can be used to make life easier.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-active-connections"></a>Managing/sharing active connections</h2></div></div></div><p>After a connection has been established, its underlying
+                <code class="classname">GuacamoleTunnel</code> can be exposed by a
+                <code class="classname">UserContext</code> through the <code class="classname">Directory</code>
+            returned by <code class="methodname">getActiveConnectionDirectory()</code>. The
+                <code class="classname">ActiveConnection</code> objects accessible through this
+                <code class="classname">Directory</code> are the means by which an administrator may monitor
+            or forcibly terminate another user's connection, ultimately resulting in Guacamole
+            invoking the <code class="methodname">close()</code> function of the underlying
+                <code class="classname">GuacamoleTunnel</code>, and also serve as the basis for screen
+            sharing.</p><p>Screen sharing is implemented through the use of <code class="classname">SharingProfile</code>
+            objects, exposed through yet another <code class="classname">Directory</code> beneath the
+                <code class="classname">UserContext</code>. Each sharing profile is associated with a single
+            connection that it can be used to share, referred to as the "primary connection". If a
+            user has read access to a sharing profile associated with their current connection, that
+            sharing profile will be displayed as an option within <a class="link" href="using-guacamole.html#client-share-menu" title="Sharing the connection">the share
+                menu of the Guacamole menu</a>.</p><p>The overall sharing process is as follows:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>A user, having access to a sharing profile associated with their current
+                    active connection, clicks its option within the <a class="link" href="using-guacamole.html#client-share-menu" title="Sharing the connection">share
+                        menu</a>.</p></li><li class="listitem"><p>Guacamole locates the <code class="classname">ActiveConnection</code> and invokes its
+                        <code class="methodname">getSharingCredentials()</code> function with the
+                    identifier of the sharing profile. The contents of the returned
+                        <code class="classname">UserCredentials</code> object is used by Guacamole to
+                    generate a sharing link which can be given to other users.</p></li><li class="listitem"><p>When another user visits the sharing link, the credentials embedded in the
+                    link are passed to the authentication providers associated with each installed
+                    extension. <span class="emphasis"><em>It is up to the extension that originally provided those
+                        credentials to authenticate the user and provide them with access to the
+                        shared connection.</em></span></p></li><li class="listitem"><p>When the user attempts to connect to the shared connection, the extension
+                    establishes the connection using the ID of the connection being joined.
+                        <span class="emphasis"><em>This is not the connection identifier as dictated by
+                        guacamole-ext, but rather <a class="link" href="guacamole-protocol.html#guacamole-protocol-joining" title="Joining an existing connection">the unique ID assigned by guacd as
+                            required by the Guacamole protocol</a>.</em></span> This ID can be
+                    retrieved from a <code class="methodname">ConfiguredGuacamoleSocket</code> via
+                        <code class="methodname">getConnectionID()</code>, and can be passed through a
+                        <code class="methodname">GuacamoleConfiguration</code> through
+                        <code class="methodname">setConnectionID()</code> (instead of specifying a
+                    protocol, as would be done for a brand new connection).</p></li></ol></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="guacamole-common-js.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="custom-protocols.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 21. guacamole-common-js </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 23. Adding new protocols</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/guacamole-protocol.html b/doc/1.1.0/gug/guacamole-protocol.html
new file mode 100644
index 0000000..deb8a06
--- /dev/null
+++ b/doc/1.1.0/gug/guacamole-protocol.html
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 18. The Guacamole protocol</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="next" href="libguac.html" title="Chapter 19. libguac" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 18. The Guacamole protocol</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="developers-guide.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="libguac.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="guacamole-protocol"></a>Chapter 18. The Guacamole protocol</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-design">Design</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-handshake">Handshake phase</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-joining">Joining an existing connection</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-drawing">Drawing</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-compositing">Compositing</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-images">Image data</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-copying-images">Copying image data between layers</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-graphical-primitives">Graphical primitives</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-layers">Buffers and layers</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-streaming">Streams and objects</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-events">Events</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-disconnecting">Disconnecting</a></span></dt></dl></div><a id="idm46420847424688" class="indexterm"></a><p>This chapter is an overview of the Guacamole protocol, describing its design and general
+        use. While a few instructions and their syntax will be described here, this is not an
+        exhaustive list of all available instructions. The intent is only to list the general types
+        and usage. If you are looking for the syntax or purpose of a specific instruction, consult
+        the protocol reference included with the appendices.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-design"></a>Design</h2></div></div></div><p>The Guacamole protocol consists of instructions. Each instruction is a comma-delimited
+            list followed by a terminating semicolon, where the first element of the list is the
+            instruction opcode, and all following elements are the arguments for that
+            instruction:</p><div class="informalexample"><pre class="programlisting"><em class="replaceable"><code>OPCODE</code></em>,<em class="replaceable"><code>ARG1</code></em>,<em class="replaceable"><code>ARG2</code></em>,<em class="replaceable"><code>ARG3</code></em>,<em class="replaceable"><code>...</code></em>;</pre></div><p>Each element of the list has a positive decimal integer length prefix separated by the
+            value of the element by a period. This length denotes the number of Unicode characters
+            in the value of the element, which is encoded in UTF-8:</p><div class="informalexample"><pre class="programlisting"><em class="replaceable"><code>LENGTH</code></em>.<em class="replaceable"><code>VALUE</code></em></pre></div><p>Any number of complete instructions make up a message which is sent from client to
+            server or from server to client. Client to server instructions are generally control
+            instructions (for connecting or disconnecting) and events (mouse and keyboard). Server
+            to client instructions are generally drawing instructions (caching, clipping, drawing
+            images), using the client as a remote display.</p><p>For example, a complete and valid instruction for setting the display size to 1024x768
+            would be:</p><div class="informalexample"><pre class="programlisting">4.size,1.0,4.1024,3.768;</pre></div><p>Here, the instruction would be decoded into four elements: "size", the opcode of the
+            size instruction, "0", the index of the default layer, "1024", the desired width in
+            pixels, and "768", the desired height in pixels.</p><p>The structure of the Guacamole protocol is important as it allows the protocol to be
+            streamed while also being easily parsable by JavaScript. JavaScript does have native
+            support for conceptually-similar structures like XML or JSON, but neither of those
+            formats is natively supported in a way that can be streamed; JavaScript requires the
+            entirety of the XML or JSON message to be available at the time of decoding. The
+            Guacamole protocol, on the other hand, can be parsed as it is received, and the presence
+            of length prefixes within each instruction element means that the parser can quickly
+            skip around from instruction to instruction without having to iterate over every
+            character.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-handshake"></a>Handshake phase</h2></div></div></div><p>The handshake phase is the phase of the protocol entered immediately upon connection.
+            It begins with a "select" instruction sent by the client which tells the server which
+            protocol will be loaded:</p><div class="informalexample"><pre class="programlisting">6.select,3.vnc;</pre></div><p>After receiving the "select" instruction, the server will load the associated client
+            support and respond with its protocol version and a list of accepted parameter names
+            using an "args" instruction:</p><div class="informalexample"><pre class="programlisting">4.args,13.VERSION_1_1_0,8.hostname,4.port,8.password,13.swap-red-blue,9.read-only;</pre></div><p>The protocol version is used to negotiate compatibility between differing
+            versions of client and server, allowing the two sides to negotiate the highest
+            supported version and enable or disable features associated with that version.
+            Older versions of the Guacamole Client that do not support this instruction
+            will silently ignore it as an empty connection parameter.  Valid protocol versions
+            are as follows:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /><col class="c3" /></colgroup><thead><tr><th>Version</th><th>Value</th><th>Description</th></tr></thead><tbody><tr><td>1.0.0</td><td><code class="constant">VERSION_1_0_0</code></td><td>This is the default version and applies to any
+                            versions prior to 1.1.0.  Version 1.0.0 of the protocol
+                            does not support protocol negotiation, and requires that
+                            the handshake instructions are delivered in a certain
+                            order, and that they are present (even if empty).</td></tr><tr><td>1.1.0</td><td><code class="constant">VERSION_1_1_0</code></td><td>Protocol version 1.1.0 introduces support for
+                            protocol version negotiation, arbitrary order of the
+                            handshake instructions, and support for passing the
+                            timezone instruction during the handshake.</td></tr></tbody></table></div><p>
+        </p><p>After receiving the list of arguments, the client is required to respond with the list
+            of supported audio, video, and image mimetypes, the optimal display size and resolution,
+            and the values for all arguments available, even if blank.</p><div class="informalexample"><pre class="programlisting">
+4.size,4.1024,3.768,2.96;
+5.audio,9.audio/ogg;
+5.video;
+5.image,9.image/png,10.image/jpeg;
+8.timezone,16.America/New_York;
+7.connect,13.VERSION_1_1_0,9.localhost,4.5900,0.,0.,0.;</pre></div><p>For clarity, we've put each instruction on its own line, but in the real protocol, no
+            newlines exist between instructions. In fact, if there is anything after an instruction
+            other than the start of a new instruction, the connection is closed.</p><p>The following are valid instructions during the handshake:</p><div class="informaltable"><a id="idm46420845155632" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Instruction name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>audio</code></em></td><td><p>The audio codec(s) supported by the client.  In the example
+                            above the client is specifying audio/ogg as the supported codec.</p>
+                        </td></tr><tr><td><em class="parameter"><code>connect</code></em></td><td><p>This is the final instruction of the handshake, terminating
+                            the handshake and indicating that the connection should continue.
+                            This instruction has as its parameters values for the connection
+                            parameters sent by the server in the <code class="constant">args</code>
+                            instruction.  In the example above, this is connection to localhost
+                            on port 5900, with no values for the last three connection parameters.
+                        </p></td></tr><tr><td><em class="parameter"><code>image</code></em></td><td><p>The image formats that the client supports, in order of
+                            preference.  The client in the example above is supporting both PNG
+                            and JPEG.</p></td></tr><tr><td><em class="parameter"><code>timezone</code></em></td><td><p>The timezone of the client, in IANA zone key format.  More
+                            information on this instruction is available in
+                            <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a>, under documentation related
+                            to the <code class="constant">timezone</code> connection parameters for the
+                            protocols that support it.</p>
+                        </td></tr><tr><td><em class="parameter"><code>video</code></em></td><td><p>The video codec(s) supported by the client.  The above example
+                            is a client that does not support any video codecs.</p></td></tr></tbody></table></div><p>The order of the instructions sent by the client in the handshake is arbitrary, with
+            the exception that the final instruction, connect, will end the handshake and attempt
+            to start the connection.</p><p>Once these instructions have been sent by the client, the server will attempt to
+            initialize the connection with the parameters received and, if successful, respond with
+            a "ready" instruction. This instruction contains the ID of the new client connection and
+            marks the beginning of the interactive phase. The ID is an arbitrary string, but is
+            guaranteed to be unique from all other active connections, as well as from the names of
+            all supported protocols:</p><div class="informalexample"><pre class="programlisting">5.ready,37.$260d01da-779b-4ee9-afc1-c16bae885cc7;</pre></div><p>The actual interactive phase begins immediately after the "ready" instruction is sent.
+            Drawing and event instructions pass back and forth until the connection is
+            closed.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-protocol-joining"></a>Joining an existing connection</h3></div></div></div><p>Once the handshake phase has completed, that connection is considered active and
+                can be joined by other connections if the ID is provided instead of a protocol name
+                via the "select" instruction:</p><div class="informalexample"><pre class="programlisting">6.select,37.$260d01da-779b-4ee9-afc1-c16bae885cc7;</pre><p>The rest of the handshake phase for a joining connection is identical. Just as
+                    with a new connection, the restrictions or features which apply to the joining
+                    connection are dictated by the parameter values supplied during the
+                    handshake.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-drawing"></a>Drawing</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-protocol-compositing"></a>Compositing</h3></div></div></div><p>The Guacamole protocol provides compositing operations through the use of "channel
+                masks". The term "channel mask" is simply a description of the mechanism used while
+                designing the protocol to conceptualize and fully enumerate all possible compositing
+                operations based on four different sources of image data: source image data where
+                the destination is opaque, source image data where the destination is transparent,
+                destination image data where the source is opaque, and destination image data where
+                the source is transparent. Assigning a binary value to each of these "channels"
+                creates a unique integer ID for every possible compositing operation, where these
+                operations parallel the operations described by Porter and Duff in their paper. As
+                the HTML5 canvas tag also uses Porter/Duff to describe their compositing operations
+                (as do other graphical APIs), the Guacamole protocol is conveniently similar to the
+                compositing support already present in web browsers, with some operations not yet
+                supported. The following operations are all implemented and known to work correctly
+                in all browsers:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">B out A (0x02)</span></dt><dd><p>Clears the destination where the source is opaque, but otherwise draws
+                            nothing. This is useful for masking.</p></dd><dt><span class="term">A atop B (0x06)</span></dt><dd><p>Fills with the source where the destination is opaque only.</p></dd><dt><span class="term">A xor B (0x0A)</span></dt><dd><p>As with logical XOR. Note that this is a compositing operation, not a
+                            bitwise operation. It draws the source where the destination is
+                            transparent, and draws the destination where the source is
+                            transparent.</p></dd><dt><span class="term">B over A (0x0B)</span></dt><dd><p>What you would typically expect when drawing, but reversed. The source
+                            appears only where the destination is transparent, as if you were
+                            attempting to draw the destination over the source, rather than the
+                            source over the destination.</p></dd><dt><span class="term">A over B (0x0E)</span></dt><dd><p>The most common and sensible compositing operation, this draws the
+                            source everywhere, but includes the destination where the source is
+                            transparent.</p></dd><dt><span class="term">A + B (0x0F)</span></dt><dd><p>Simply adds the components of the source image to the destination
+                            image, capping the result at pure white.</p></dd></dl></div><p>The following operations are all implemented, but may work incorrectly in WebKit
+                browsers which always include the destination image where the source is
+                transparent:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">B in A (0x01)</span></dt><dd><p>Draws the destination only where the source is opaque, clearing
+                            anywhere the source or destination are transparent.</p></dd><dt><span class="term">A in B (0x04)</span></dt><dd><p>Draws the source only where the destination is opaque, clearing
+                            anywhere the source or destination are transparent.</p></dd><dt><span class="term">A out B (0x08)</span></dt><dd><p>Draws the source only where the destination is transparent, clearing
+                            anywhere the source or destination are opaque.</p></dd><dt><span class="term">B atop A (0x09)</span></dt><dd><p>Fills with the destination where the source is opaque only.</p></dd><dt><span class="term">A (0x0C)</span></dt><dd><p>Fills with the source, ignoring the destination entirely.</p></dd></dl></div><p>The following operations are defined, but not implemented, and do not exist as
+                operations within the HTML5 canvas:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">Clear (0x00)</span></dt><dd><p>Clears all existing image data in the destination.</p></dd><dt><span class="term">B (0x03)</span></dt><dd><p>Does nothing.</p></dd><dt><span class="term">A xnor B (0x05)</span></dt><dd><p>Adds the source to the destination where the destination or source are
+                            opaque, clearing anywhere the source or destination are transparent.
+                            This is similar to A + B except the aspect of transparency is also
+                            additive.</p></dd><dt><span class="term">(A + B) atop B (0x07)</span></dt><dd><p>Adds the source to the destination where the destination is opaque,
+                            preserving the destination otherwise.</p></dd><dt><span class="term">(A + B) atop A (0x0D)</span></dt><dd><p>Adds the destination to the source where the source is opaque, copying
+                            the source otherwise.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-protocol-images"></a>Image data</h3></div></div></div><p>The Guacamole protocol, like many remote desktop protocols, provides a method of
+                sending an arbitrary rectangle of image data and placing it either within a buffer
+                or in a visible rectangle of the screen. Raw image data in the Guacamole protocol is
+                streamed as PNG, JPEG, or WebP data over a stream allocated with the "img"
+                instruction. Depending on the format used, image updates sent in this manner can be
+                RGB or RGBA (alpha transparency) and are automatically palettized if sent using
+                libguac. The streaming system used for image data is generalized and used by
+                Guacamole for other types of streams, including audio and file transfer. For more
+                information about streams in the Guacamole protocol, see <a class="xref" href="guacamole-protocol.html#guacamole-protocol-streaming" title="Streams and objects">the section called “Streams and objects”</a>.</p><p>Image data can be sent to any specified rectangle within a layer or buffer.
+                Sending the data to a layer means that the image becomes immediately visible, while
+                sending the data to a buffer allows that data to be reused later.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-protocol-copying-images"></a>Copying image data between layers</h3></div></div></div><p>Image data can be copied from one layer or buffer into another layer or buffer.
+                This is often used for scrolling (where most of the result of the graphical update
+                is identical to the previous state) or for caching parts of an image.</p><p>Both VNC and RDP provide a means of copying a region of screen data and placing it
+                somewhere else within the same screen. RDP provides an additional means of copying
+                data to a cache, or recalling data from that cache and placing it on the screen.
+                Guacamole takes this concept and reduces it further, as both on-screen and
+                off-screen image storage is the same. The Guacamole "copy" instruction allows you to
+                copy a rectangle of image data, and place it within another layer, whether that
+                layer is the same as the source layer, a different visible layer, or an off-screen
+                buffer.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-graphical-primitives"></a>Graphical primitives</h3></div></div></div><p>The Guacamole protocol provides basic graphics operations similar to those of
+                Cairo or the HTML5 canvas. In many cases, these primitives are useful for remote
+                drawing, and desirable in that they take up less bandwidth than sending
+                corresponding PNG images. Beware that excessive use of primitives leads to an
+                increase in client-side processing, which may reduce the performance of a connected
+                client, especially if that client is on a lower-performance machine like a mobile
+                phone or tablet.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-protocol-layers"></a>Buffers and layers</h3></div></div></div><p>All drawing operations in the Guacamole protocol affect a layer, and each layer
+                has an integer index which identifies it. When this integer is negative, the layer
+                is not visible, and can be used for storage or caching of image data. In this case,
+                the layer is referred to within the code and within documentation as a "buffer".
+                Layers are created automatically when they are first referenced in an
+                instruction.</p><p>There is one main layer which is always present called the "default layer". This
+                layer has an index of 0. Resizing this layer resizes the entire remote display.
+                Other layers default to the size of the default layer upon creation, while buffers
+                are always created with a size of 0x0, automatically resizing themselves to fit
+                their contents.</p><p>Non-buffer layers can be moved and nested within each other. In this way, layers
+                provide a simple means of hardware-accelerated compositing. If you need a window to
+                appear above others, or you have some object which will be moving or you need the
+                data beneath it automatically preserved, a layer is a good way of accomplishing
+                this. If a layer is nested within another layer, its position is relative to that of
+                its parent. When the parent is moved or reordered, the child moves with it. If the
+                child extends beyond the parents bounds, it will be clipped.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-streaming"></a>Streams and objects</h2></div></div></div><p>Guacamole supports transfer of clipboard contents, audio, video, and image data, as
+            well as files and arbitrary named pipes.</p><p>Streams are allocated directly with instructions that associate the new stream with
+            particular semantics and metadata, such as the "audio" or "video" instructions used for
+            playing media, the "file" instruction used for file transfer, and the "pipe" instruction
+            for transfer of completely  arbitrary data between client and server. In some cases, the
+            availability and semantics of streams may be explicitly advertised using structured sets
+            of named streams known as "objects".</p><p>Once a stream is allocated, data is sent along the stream in chunks using "blob"
+            instructions, which may be acknowledged by the receiving end by "ack" instructions. The
+            end of the stream is finally signalled with an "end" instruction.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-events"></a>Events</h2></div></div></div><p>When something changes on either side, client or server, such as a key being pressed,
+            the mouse moving, or clipboard data changing, an instruction describing the event is
+            sent.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-disconnecting"></a>Disconnecting</h2></div></div></div><p>The server and client can end the connection at any time. There is no requirement for
+            the server or the client to communicate that the connection needs to terminate. When the
+            client or server wish to end the connection, and the reason is known, they can use the
+            "disconnect" or "error" instructions.</p><p>The disconnect instruction is sent by the client when it is disconnecting. This is
+            largely out of politeness, and the server must be written knowing that the disconnect
+            instruction may not always be sent in time (guacd is written this way).</p><p>If the client does something wrong, or the server detects a problem with the client
+            plugin, the server sends an error instruction, including a description of the problem in
+            the parameters. This informs the client that the connection is being closed.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="developers-guide.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="libguac.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part II. Developer's Guide </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 19. libguac</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/gug.css b/doc/1.1.0/gug/gug.css
new file mode 100644
index 0000000..370de3e
--- /dev/null
+++ b/doc/1.1.0/gug/gug.css
@@ -0,0 +1,179 @@
+
+body {
+
+    color: black;
+    background: white;
+
+    font-family: 'FreeSans', 'Liberation Sans', 'Arial', 'Helvetica', sans-serif;
+    text-align: justify;
+    text-rendering: optimizeLegibility;
+    line-height: 125%;
+
+    margin: 0;
+    padding: 0;
+
+}
+
+/* Green links */
+a[href]         { color: #080; }
+a[href]:visited { color: #884; }
+
+div#content {
+
+    margin-top: 0;
+    margin-bottom: 0;
+    margin-left: auto;
+    margin-right: auto;
+
+    max-width: 25cm;
+    padding: 1em;
+
+}
+
+/* DOCBOOK */
+
+.navheader hr, .navfooter hr {
+    border: 0;
+    border-bottom: 1px solid black;
+}
+
+.chapter div.toc,
+.appendix div.toc {
+    border: 1px solid #BCBCBC;
+    background: #FBFBFB;
+    margin: 2em;
+    padding: 0 1em;
+    font-size: 0.75em;
+}
+
+.programlisting, .screen {
+    padding: 1em;
+}
+
+.replaceable {
+    color: #008;
+    background: rgba(0, 0, 0, 0.05);
+    border: 1px solid rgba(0, 0, 0, 0.05);
+    font-style: normal;
+    padding: 0 0.25em;
+}
+
+pre .emphasis em {
+    font-style: normal;
+    font-weight: bold;
+}
+
+.book .titlepage {
+    text-align: center;
+    padding: 2em;
+}
+
+.titlepage hr {
+    display: none;
+}
+
+.titlepage .legalnotice {
+    text-align: left;
+}
+
+.mediaobject {
+    text-align: center;
+    float: none;
+    margin: 1em;
+}
+
+.mediaobject img {
+    width: auto;
+    max-width: 100%;
+}
+
+.screenshot img {
+    border: 1px solid black;
+}
+
+.caption {
+    font-size: 0.8em;
+    font-style: italic;
+}
+
+.navfooter, .section {
+    clear: both;
+}
+
+.table-contents, .informaltable {
+    margin: 1em;
+}
+
+.table-contents table,
+.informaltable table {
+    border: 1px solid #BCBCBC;
+    border-collapse: collapse;
+    font-size: 10pt;
+}
+
+.table-contents th, .informaltable th {
+    background: #FBFBFB;
+}
+
+.table-contents td, .table-contents th,
+.informaltable td, .informaltable th {
+    border: 1px solid #BCBCBC;
+    padding: 0.5em;
+    min-width: 1.5in;
+}
+
+.table-contents table table,
+.informaltable table table {
+    border: none;
+}
+
+.table-contents table table td,
+.table-contents table table th,
+.informaltable table table td,
+.informaltable table table th {
+    background: none;
+    padding: 0.25em;
+}
+
+dl.variablelist {
+    margin-left: 1em;
+}
+
+.variablelist .term {
+    font-weight: bold;
+}
+
+blockquote {
+    border-left: 1px solid rgba(0, 0, 0, 0.25);
+    padding: 1px 1em;
+    font-style: oblique;
+    color: rgba(0, 0, 0, 0.75);
+}
+
+div.important {
+    background: #FFFFE8;
+    border: 1px solid rgba(0, 0, 0, 0.25);
+    padding: 0 1em;
+    margin: 2em;
+}
+
+/* Printable styles */
+
+@media print {
+
+    .navheader, .navfooter, .chapter .toc {
+        display: none
+    }
+
+    body {
+        font-size: 10pt;
+    }
+
+    .chapter > .titlepage {
+        margin: 2em 0;
+        font-size: 1.5em;
+        text-align: center; 
+    }
+
+}
+
diff --git a/doc/1.1.0/gug/header-auth.html b/doc/1.1.0/gug/header-auth.html
new file mode 100644
index 0000000..6b5dbb1
--- /dev/null
+++ b/doc/1.1.0/gug/header-auth.html
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 10. HTTP header authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="totp-auth.html" title="Chapter 9. TOTP two-factor authentication" /><link rel="next" href="cas-auth.html" title="Chapter 11. CAS Authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 10. HTTP header authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="totp-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="cas-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="header-auth"></a>Chapter 10. HTTP header authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="header-auth.html#header-downloading">Downloading the HTTP header authentication extension</a></span></dt><dt><span class="section"><a href="header-auth.html#installing-header-auth">Installing HTTP header authentication</a></span></dt><dd><dl><dt><span class="section"><a href="header-auth.html#guac-header-config">Configuring Guacamole for HTTP header authentication</a></span></dt><dt><span class="section"><a href="header-auth.html#completing-header-install">Completing the installation</a></span></dt></dl></dd></dl></div><a id="idm46420849422992" class="indexterm"></a><p>Guacamole supports delegating authentication to an arbitrary external service, relying on
+        the presence of an HTTP header which contains the username of the authenticated user. This
+        authentication method must be layered on top of some other authentication extension, such as
+        those available from the main project website, in order to provide access to actual
+        connections.</p><div class="important"><h3 class="title">Important</h3><p>All external requests must be properly sanitized if this extension is used. The chosen
+            HTTP header must be stripped from untrusted requests, such that the authentication
+            service is the only possible source of that header. <span class="emphasis"><em>If such sanitization is
+                not performed, it will be trivial for malicious users to add this header manually,
+                and thus gain unrestricted access.</em></span></p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="header-downloading"></a>Downloading the HTTP header authentication extension</h2></div></div></div><p>The HTTP header authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The HTTP header authentication extension is packaged as a <code class="filename">.tar.gz</code>
+            file containing only the extension itself,
+                <code class="filename">guacamole-auth-header-1.1.0.jar</code>, which must
+            ultimately be placed in <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-header-auth"></a>Installing HTTP header authentication</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory.
+                <span class="emphasis"><em>If you are unsure where <code class="varname">GUACAMOLE_HOME</code> is located on
+                your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before
+                proceeding.</em></span></p><p>To install the HTTP header authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-header-1.1.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use HTTP header authentication, as described
+                    below.</p></li></ol></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-header-config"></a>Configuring Guacamole for HTTP header authentication</h3></div></div></div><a id="idm46420848418672" class="indexterm"></a><a id="idm46420849597792" class="indexterm"></a><p>The HTTP header authentication extension provides only one configuration property,
+                and it is optional. By default, the extension will pull the username of the
+                authenticated user from the <code class="constant">REMOTE_USER</code> header, if present. If
+                your authentication system uses a different HTTP header, you will need to override
+                this by specifying the <span class="property">http-auth-header</span> property within <a class="link" href="configuring-guacamole.html#initial-setup" title="guacamole.properties"><code class="filename">guacamole.properties</code></a>:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">http-auth-header</span></span></dt><dd><p>The HTTP header containing the username of the authenticated user.
+                            This property is optional. If not specified,
+                                <code class="constant">REMOTE_USER</code> will be used by default.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="completing-header-install"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before HTTP header authentication can be used. <span class="emphasis"><em>Doing this will
+                    disconnect all active users, so be sure that it is safe to do so prior to
+                    attempting installation.</em></span> When ready, restart your servlet container
+                and give the new authentication a try.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="totp-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="cas-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 9. TOTP two-factor authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 11. CAS Authentication</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/images/duo-add-guacamole.png b/doc/1.1.0/gug/images/duo-add-guacamole.png
new file mode 100644
index 0000000..e90039c
--- /dev/null
+++ b/doc/1.1.0/gug/images/duo-add-guacamole.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/duo-auth-factor-1.png b/doc/1.1.0/gug/images/duo-auth-factor-1.png
new file mode 100644
index 0000000..3a82976
--- /dev/null
+++ b/doc/1.1.0/gug/images/duo-auth-factor-1.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/duo-auth-factor-2.png b/doc/1.1.0/gug/images/duo-auth-factor-2.png
new file mode 100644
index 0000000..8c35648
--- /dev/null
+++ b/doc/1.1.0/gug/images/duo-auth-factor-2.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/duo-copy-details.png b/doc/1.1.0/gug/images/duo-copy-details.png
new file mode 100644
index 0000000..d7faa7a
--- /dev/null
+++ b/doc/1.1.0/gug/images/duo-copy-details.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/duo-rename-guacamole.png b/doc/1.1.0/gug/images/duo-rename-guacamole.png
new file mode 100644
index 0000000..7c63d4e
--- /dev/null
+++ b/doc/1.1.0/gug/images/duo-rename-guacamole.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/edit-connection.png b/doc/1.1.0/gug/images/edit-connection.png
new file mode 100644
index 0000000..5d5f023
--- /dev/null
+++ b/doc/1.1.0/gug/images/edit-connection.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/edit-group-memberships.png b/doc/1.1.0/gug/images/edit-group-memberships.png
new file mode 100644
index 0000000..3845373
--- /dev/null
+++ b/doc/1.1.0/gug/images/edit-group-memberships.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/edit-group.png b/doc/1.1.0/gug/images/edit-group.png
new file mode 100644
index 0000000..458aaac
--- /dev/null
+++ b/doc/1.1.0/gug/images/edit-group.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/edit-sharing-profile.png b/doc/1.1.0/gug/images/edit-sharing-profile.png
new file mode 100644
index 0000000..77d34f3
--- /dev/null
+++ b/doc/1.1.0/gug/images/edit-sharing-profile.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/edit-user-group.png b/doc/1.1.0/gug/images/edit-user-group.png
new file mode 100644
index 0000000..16dbae8
--- /dev/null
+++ b/doc/1.1.0/gug/images/edit-user-group.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/edit-user-membership.png b/doc/1.1.0/gug/images/edit-user-membership.png
new file mode 100644
index 0000000..ef7d5d9
--- /dev/null
+++ b/doc/1.1.0/gug/images/edit-user-membership.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/edit-user.png b/doc/1.1.0/gug/images/edit-user.png
new file mode 100644
index 0000000..eb53c40
--- /dev/null
+++ b/doc/1.1.0/gug/images/edit-user.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/file-browser.png b/doc/1.1.0/gug/images/file-browser.png
new file mode 100644
index 0000000..f531374
--- /dev/null
+++ b/doc/1.1.0/gug/images/file-browser.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/file-transfers.png b/doc/1.1.0/gug/images/file-transfers.png
new file mode 100644
index 0000000..3566bc5
--- /dev/null
+++ b/doc/1.1.0/gug/images/file-transfers.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/guac-arch.png b/doc/1.1.0/gug/images/guac-arch.png
new file mode 100644
index 0000000..a38b12c
--- /dev/null
+++ b/doc/1.1.0/gug/images/guac-arch.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/guac-menu-disconnect.png b/doc/1.1.0/gug/images/guac-menu-disconnect.png
new file mode 100644
index 0000000..4875712
--- /dev/null
+++ b/doc/1.1.0/gug/images/guac-menu-disconnect.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/guac-menu-share-link.png b/doc/1.1.0/gug/images/guac-menu-share-link.png
new file mode 100644
index 0000000..eedebbb
--- /dev/null
+++ b/doc/1.1.0/gug/images/guac-menu-share-link.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/guac-menu-share.png b/doc/1.1.0/gug/images/guac-menu-share.png
new file mode 100644
index 0000000..8ceaead
--- /dev/null
+++ b/doc/1.1.0/gug/images/guac-menu-share.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/guacamole-client-interface.png b/doc/1.1.0/gug/images/guacamole-client-interface.png
new file mode 100644
index 0000000..57c1dc7
--- /dev/null
+++ b/doc/1.1.0/gug/images/guacamole-client-interface.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/guacamole-drive-download.png b/doc/1.1.0/gug/images/guacamole-drive-download.png
new file mode 100644
index 0000000..1b16ca0
--- /dev/null
+++ b/doc/1.1.0/gug/images/guacamole-drive-download.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/guacamole-drive.png b/doc/1.1.0/gug/images/guacamole-drive.png
new file mode 100644
index 0000000..8395e4b
--- /dev/null
+++ b/doc/1.1.0/gug/images/guacamole-drive.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/guacamole-home-screen.png b/doc/1.1.0/gug/images/guacamole-home-screen.png
new file mode 100644
index 0000000..ae95880
--- /dev/null
+++ b/doc/1.1.0/gug/images/guacamole-home-screen.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/guacamole-preferences.png b/doc/1.1.0/gug/images/guacamole-preferences.png
new file mode 100644
index 0000000..b751e8d
--- /dev/null
+++ b/doc/1.1.0/gug/images/guacamole-preferences.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/guacamole-settings-sections.png b/doc/1.1.0/gug/images/guacamole-settings-sections.png
new file mode 100644
index 0000000..18055bb
--- /dev/null
+++ b/doc/1.1.0/gug/images/guacamole-settings-sections.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/manage-button.png b/doc/1.1.0/gug/images/manage-button.png
new file mode 100644
index 0000000..c1d8cf0
--- /dev/null
+++ b/doc/1.1.0/gug/images/manage-button.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/manage-connections.png b/doc/1.1.0/gug/images/manage-connections.png
new file mode 100644
index 0000000..76e4c2f
--- /dev/null
+++ b/doc/1.1.0/gug/images/manage-connections.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/manage-groups.png b/doc/1.1.0/gug/images/manage-groups.png
new file mode 100644
index 0000000..b7126f5
--- /dev/null
+++ b/doc/1.1.0/gug/images/manage-groups.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/manage-history.png b/doc/1.1.0/gug/images/manage-history.png
new file mode 100644
index 0000000..c25ec5b
--- /dev/null
+++ b/doc/1.1.0/gug/images/manage-history.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/manage-sessions.png b/doc/1.1.0/gug/images/manage-sessions.png
new file mode 100644
index 0000000..c6d8325
--- /dev/null
+++ b/doc/1.1.0/gug/images/manage-sessions.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/manage-users.png b/doc/1.1.0/gug/images/manage-users.png
new file mode 100644
index 0000000..d00b71c
--- /dev/null
+++ b/doc/1.1.0/gug/images/manage-users.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/session-filter-example-1.png b/doc/1.1.0/gug/images/session-filter-example-1.png
new file mode 100644
index 0000000..a72bbb6
--- /dev/null
+++ b/doc/1.1.0/gug/images/session-filter-example-1.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/session-filter-example-2.png b/doc/1.1.0/gug/images/session-filter-example-2.png
new file mode 100644
index 0000000..11be992
--- /dev/null
+++ b/doc/1.1.0/gug/images/session-filter-example-2.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/totp-auth-factor-1.png b/doc/1.1.0/gug/images/totp-auth-factor-1.png
new file mode 100644
index 0000000..3a82976
--- /dev/null
+++ b/doc/1.1.0/gug/images/totp-auth-factor-1.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/totp-auth-factor-2.png b/doc/1.1.0/gug/images/totp-auth-factor-2.png
new file mode 100644
index 0000000..c2a649f
--- /dev/null
+++ b/doc/1.1.0/gug/images/totp-auth-factor-2.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/totp-enroll-detail.png b/doc/1.1.0/gug/images/totp-enroll-detail.png
new file mode 100644
index 0000000..afde141
--- /dev/null
+++ b/doc/1.1.0/gug/images/totp-enroll-detail.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/totp-enroll.png b/doc/1.1.0/gug/images/totp-enroll.png
new file mode 100644
index 0000000..97474b6
--- /dev/null
+++ b/doc/1.1.0/gug/images/totp-enroll.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/touchpad.png b/doc/1.1.0/gug/images/touchpad.png
new file mode 100644
index 0000000..fa9df42
--- /dev/null
+++ b/doc/1.1.0/gug/images/touchpad.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/touchscreen.png b/doc/1.1.0/gug/images/touchscreen.png
new file mode 100644
index 0000000..85d669c
--- /dev/null
+++ b/doc/1.1.0/gug/images/touchscreen.png
Binary files differ
diff --git a/doc/1.1.0/gug/index.html b/doc/1.1.0/gug/index.html
new file mode 100644
index 0000000..c41cc6f
--- /dev/null
+++ b/doc/1.1.0/gug/index.html
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Guacamole Manual</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="next" href="preface.html" title="Introduction" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Guacamole Manual</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="preface.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="idm46420850062688"></a>Guacamole Manual</h1></div><div><div class="legalnotice"><a id="idm46420857822688"></a><p>Licensed to the Apache Software Foundation (ASF) under one or more contributor
+                license agreements. See the <a class="link" href="https://raw.githubusercontent.com/apache/guacamole-manual/master/NOTICE" target="_top"><code class="filename">NOTICE</code></a> file distributed with this work for
+                additional information regarding copyright ownership. The ASF licenses this file to
+                you under the Apache License, Version 2.0 (the "License"); you may not use this file
+                except in compliance with the License. You may obtain a copy of the License
+                at:</p><p><a class="link" href="http://www.apache.org/licenses/LICENSE-2.0" target="_top"><code class="uri">http://www.apache.org/licenses/LICENSE-2.0</code></a></p><p>Unless required by applicable law or agreed to in writing, software distributed
+                under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+                CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
+                language governing permissions and limitations under the License.</p></div></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="preface"><a href="preface.html">Introduction</a></span></dt><dt><span class="part"><a href="users-guide.html">I. User's Guide</a></span></dt><dd><dl><dt><span class="chapter"><a href="guacamole-architecture.html">1. Implementation and architecture</a></span></dt><dt><span class="chapter"><a href="installing-guacamole.html">2. Installing Guacamole natively</a></span></dt><dt><span class="chapter"><a href="guacamole-docker.html">3. Installing Guacamole with Docker</a></span></dt><dt><span class="chapter"><a href="proxying-guacamole.html">4. Proxying Guacamole</a></span></dt><dt><span class="chapter"><a href="configuring-guacamole.html">5. Configuring Guacamole</a></span></dt><dt><span class="chapter"><a href="jdbc-auth.html">6. Database authentication</a></span></dt><dt><span class="chapter"><a href="ldap-auth.html">7. LDAP authentication</a></span></dt><dt><span class="chapter"><a href="duo-auth.html">8. Duo two-factor authentication</a></span></dt><dt><span class="chapter"><a href="totp-auth.html">9. TOTP two-factor authentication</a></span></dt><dt><span class="chapter"><a href="header-auth.html">10. HTTP header authentication</a></span></dt><dt><span class="chapter"><a href="cas-auth.html">11. CAS Authentication</a></span></dt><dt><span class="chapter"><a href="openid-auth.html">12. OpenID Connect Authentication</a></span></dt><dt><span class="chapter"><a href="radius-auth.html">13. RADIUS Authentication</a></span></dt><dt><span class="chapter"><a href="adhoc-connections.html">14. Ad-hoc Connections</a></span></dt><dt><span class="chapter"><a href="using-guacamole.html">15. Using Guacamole</a></span></dt><dt><span class="chapter"><a href="administration.html">16. Administration</a></span></dt><dt><span class="chapter"><a href="troubleshooting.html">17. Troubleshooting</a></span></dt></dl></dd><dt><span class="part"><a href="developers-guide.html">II. Developer's Guide</a></span></dt><dd><dl><dt><span class="chapter"><a href="guacamole-protocol.html">18. The Guacamole protocol</a></span></dt><dt><span class="chapter"><a href="libguac.html">19. libguac</a></span></dt><dt><span class="chapter"><a href="guacamole-common.html">20. <span class="package">guacamole-common</span></a></span></dt><dt><span class="chapter"><a href="guacamole-common-js.html">21. guacamole-common-js</a></span></dt><dt><span class="chapter"><a href="guacamole-ext.html">22. guacamole-ext</a></span></dt><dt><span class="chapter"><a href="custom-protocols.html">23. Adding new protocols</a></span></dt><dt><span class="chapter"><a href="custom-auth.html">24. Custom authentication</a></span></dt><dt><span class="chapter"><a href="event-listeners.html">25. Event listeners</a></span></dt><dt><span class="chapter"><a href="writing-you-own-guacamole-app.html">26. Writing your own Guacamole application</a></span></dt></dl></dd><dt><span class="part"><a href="appendices.html">III. Appendices</a></span></dt><dd><dl><dt><span class="appendix"><a href="faq.html">A. FAQ</a></span></dt><dt><span class="appendix"><a href="protocol-reference.html">B. Guacamole protocol reference</a></span></dt><dt><span class="index"><a href="book-index.html">Index</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="preface.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Introduction</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/installing-guacamole.html b/doc/1.1.0/gug/installing-guacamole.html
new file mode 100644
index 0000000..704b9f2
--- /dev/null
+++ b/doc/1.1.0/gug/installing-guacamole.html
@@ -0,0 +1,444 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 2. Installing Guacamole natively</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="guacamole-architecture.html" title="Chapter 1. Implementation and architecture" /><link rel="next" href="guacamole-docker.html" title="Chapter 3. Installing Guacamole with Docker" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 2. Installing Guacamole natively</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="guacamole-architecture.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="guacamole-docker.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="installing-guacamole"></a>Chapter 2. Installing Guacamole natively</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="installing-guacamole.html#building-guacamole-server">Building <span class="package">guacamole-server</span></a></span></dt><dd><dl><dt><span class="section"><a href="installing-guacamole.html#required-dependencies">Required dependencies</a></span></dt><dt><span class="section"><a href="installing-guacamole.html#optional-dependencies">Optional dependencies</a></span></dt><dt><span class="section"><a href="installing-guacamole.html#guacamole-server-source">Obtaining the source code</a></span></dt><dt><span class="section"><a href="installing-guacamole.html#guacamole-server-build-process">The build process</a></span></dt><dt><span class="section"><a href="installing-guacamole.html#guacamole-server-installation">Installation</a></span></dt></dl></dd><dt><span class="section"><a href="installing-guacamole.html#building-guacamole-client"><span class="package">guacamole-client</span></a></span></dt><dt><span class="section"><a href="installing-guacamole.html#deploying-guacamole">Deploying Guacamole</a></span></dt><dd><dl><dt><span class="section"><a href="installing-guacamole.html#idm46420848897680">What about WebSocket?</a></span></dt></dl></dd></dl></div><a id="idm46420849611936" class="indexterm"></a><a id="idm46420849611040" class="indexterm"></a><p>Guacamole is separated into two pieces: <span class="package">guacamole-server</span>, which
+        provides the <span class="package">guacd</span> proxy and related libraries, and
+            <span class="package">guacamole-client</span>, which provides the client to be served by your
+        servlet container, usually <a class="link" href="http://tomcat.apache.org/" target="_top">Tomcat</a>.</p><p><span class="package">guacamole-client</span> is available in binary form, but
+            <span class="package">guacamole-server</span> must be built from source. Don't be discouraged:
+        building the components of Guacamole from source is <span class="emphasis"><em>not</em></span> as difficult as
+        it sounds, and the build process is automated. You just need to be sure you have the
+        necessary tools installed ahead of time. With the necessary dependencies in place, building
+        Guacamole only takes a few minutes.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="building-guacamole-server"></a>Building <span class="package">guacamole-server</span></h2></div></div></div><a id="idm46420849572592" class="indexterm"></a><a id="idm46420849571120" class="indexterm"></a><a id="idm46420849569776" class="indexterm"></a><a id="idm46420849568432" class="indexterm"></a><a id="idm46420849567088" class="indexterm"></a><a id="idm46420849565744" class="indexterm"></a><a id="idm46420849564400" class="indexterm"></a><a id="idm46420849562928" class="indexterm"></a><a id="idm46420849561456" class="indexterm"></a><a id="idm46420849559984" class="indexterm"></a><a id="idm46420849558512" class="indexterm"></a><a id="idm46420849557072" class="indexterm"></a><p><span class="package">guacamole-server</span> contains all the native, server-side components
+            required by Guacamole to connect to remote desktops. It provides a common C library,
+                <span class="package">libguac</span>, which all other native components depend on, as well as
+            separate libraries for each supported protocol, and <span class="package">guacd</span>, the heart
+            of Guacamole.</p><p><span class="package">guacd</span> is the proxy daemon that runs on your Guacamole server,
+            accepts users' connections that are tunneled through the Guacamole web application, and
+            then connects to remote desktops on their behalf. Building <span class="package">guacd</span>
+            creates an executable called <code class="filename">guacd</code> which can be run manually or, if
+            you wish, automatically when your computer starts up.</p><p>To build <span class="package">guacamole-server</span>, you will need a C compiler (such as
+                <span class="package">gcc</span>) and the libraries that <span class="package">guacamole-server</span>
+            depends on. Some dependencies are absolutely required, while others are optional. The
+            presence of optional dependencies enables additional features.</p><div class="important"><h3 class="title">Important</h3><p>Many Linux distributions separate library packages into binary and "development"
+                packages; <span class="emphasis"><em>you will need to install the development packages</em></span>.
+                These will usually end in a "-dev" or "-devel" suffix.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="required-dependencies"></a>Required dependencies</h3></div></div></div><p>In order to build <span class="package">guacamole-server</span>, you will need
+                    <span class="package">Cairo</span>, <span class="package">libjpeg</span>, <span class="package">libpng</span>,
+                and the OSSP UUID library. These libraries are strictly required <span class="emphasis"><em>in all
+                    cases</em></span> - Guacamole cannot be built without them.</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="lib-name" /><col class="features" /></colgroup><thead><tr><th>Library name</th><th>Features</th></tr></thead><tbody><tr><td><a class="link" href="http://cairographics.org/" target="_top">Cairo</a></td><td>
+                                <p>Cairo is used by libguac for graphics rendering. Guacamole
+                                    cannot function without Cairo installed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libcairo2-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">cairo-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://libjpeg-turbo.virtualgl.org/" target="_top">libjpeg-turbo</a></td><td>
+                                <p>libjpeg-turbo is used by libguac to provide JPEG support.
+                                    Guacamole will not build without this library present:</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian package</th><td><span class="package">libjpeg62-turbo-dev</span></td></tr><tr><th>Ubuntu package</th><td><span class="package">libjpeg-turbo8-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libjpeg-turbo-devel</span></td></tr></tbody></table></div>
+                                <p>If libjpeg-turbo is unavailable on your platform, and you do
+                                    not wish to build it from source, <a class="link" href="http://www.ijg.org/" target="_top">libjpeg</a> will work as
+                                    well, though it will not be quite as fast:</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libjpeg62-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libjpeg-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://www.libpng.org/pub/png/libpng.html" target="_top">libpng</a></td><td>
+                                <p>libpng is used by libguac to write PNG images, the core image
+                                    type used by the Guacamole protocol. Guacamole cannot function
+                                    without libpng.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libpng12-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libpng-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="https://www.gnu.org/software/libtool/manual/libtool.html" target="_top">libtool</a></td><td>
+                                <p>libtool is used during the build process. 
+                                libtool creates compiled libraries needed for Guacamole.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libtool-bin</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libtool</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://www.ossp.org/pkg/lib/uuid/" target="_top">OSSP
+                                    UUID</a></td><td>
+                                <p>OSSP UUID is used by libguac to assign unique IDs to each
+                                    Guacamole connection. These unique IDs are the basis for
+                                    connection sharing support.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libossp-uuid-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">uuid-devel</span></td></tr></tbody></table></div>
+                            </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="optional-dependencies"></a>Optional dependencies</h3></div></div></div><p>The optional dependencies of Guacamole dictate which parts of
+                    <span class="package">guacamole-server</span> will be built. This includes the support for
+                various remote desktop protocols, as well as any additional features of those
+                protocols:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>VNC support depends on the <span class="package">libvncclient</span> library, which
+                        is part of <span class="package">libVNCServer</span>.</p></li><li class="listitem"><p>RDP support depends on a recent version of <span class="package">FreeRDP</span> (1.0
+                        or higher, but please <a class="link" href="https://github.com/FreeRDP/FreeRDP/issues/2839" target="_top">not a
+                            non-release version from git</a>).</p></li><li class="listitem"><p>SSH support depends on <span class="package">libssh2</span>, <span class="package">OpenSSL</span>
+                        and <span class="package">Pango</span> (a font rendering and text layout library, used
+                        by Guacamole's built-in terminal emulator).</p></li><li class="listitem"><p>Telnet depends on <span class="package">libtelnet</span> and
+                            <span class="package">Pango</span>.</p></li><li class="listitem"><p>Kubernetes support depends on <span class="package">libwebsockets</span>,
+                            <span class="package">OpenSSL</span>, and <span class="package">Pango</span>.</p></li></ul></div><p>The <span class="command"><strong>guacenc</strong></span> utility, provided by
+                    <span class="package">guacamole-server</span> to translate screen recordings into video,
+                depends on FFmpeg, and will only be built if at least the
+                    <span class="package">libavcodec</span>, <span class="package">libavutil</span>, and
+                    <span class="package">libswscale</span> libraries provided by FFmpeg are installed.</p><div class="important"><h3 class="title">Important</h3><p>If you lack these dependencies, <span class="emphasis"><em>then the features or protocols which
+                        depend on them will not be enabled</em></span>. Please read this section
+                    carefully before deciding not to install an optional dependency.</p></div><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="lib-name" /><col class="features" /></colgroup><thead><tr><th>Library name</th><th>Features</th></tr></thead><tbody><tr><td><a class="link" href="https://ffmpeg.org/" target="_top">FFmpeg</a></td><td>
+                                <p>The <span class="package">libavcodec</span>,
+                                        <span class="package">libavutil</span>, and
+                                        <span class="package">libswscale</span> libraries provided by FFmpeg
+                                    are used by <span class="command"><strong>guacenc</strong></span> to encode video streams
+                                    when translating recordings of Guacamole sessions. Without
+                                    FFmpeg, the <span class="command"><strong>guacenc</strong></span> utility will simply not
+                                    be built.</p>
+                                <p>If you do not wish to make graphical recordings of Guacamole
+                                    sessions, or do not wish to translate such recordings into
+                                    video, then FFmpeg is not needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td>
+                                                  <p><span class="package">libavcodec-dev</span>,
+                                                  <span class="package">libavutil-dev</span>,
+                                                  <span class="package">libswscale-dev</span></p>
+                                                </td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">ffmpeg-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://www.freerdp.com/" target="_top">FreeRDP</a></td><td>
+                                <p>FreeRDP 2.0.0 or later is required for RDP support. If you do
+                                    not wish to build RDP support, this library is not
+                                    needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">freerdp2-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">freerdp-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://www.pango.org/" target="_top">Pango</a></td><td>
+                                <p>Pango is a text layout library which Guacamole uses to render
+                                    text for protocols that require a terminal (Kubernetes, SSH, and
+                                    telnet). If you do not wish to build any terminal-based protocol
+                                    support, this library is not needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libpango1.0-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">pango-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://www.libssh2.org/" target="_top">libssh2</a></td><td>
+                                <p>libssh2 is required for SSH support. If you do not wish to
+                                    build SSH support, this library is not needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libssh2-1-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libssh2-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="https://github.com/seanmiddleditch/libtelnet" target="_top">libtelnet</a></td><td>
+                                <p>libtelnet is required for telnet support. If you do not wish
+                                    to build telnet support, this library is not needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libtelnet-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libtelnet-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://libvnc.github.io/" target="_top">libVNCServer</a></td><td>
+                                <p>libVNCServer provides libvncclient, which is required for VNC
+                                    support. If you do not wish to build VNC support, this library
+                                    is not needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libvncserver-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libvncserver-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="https://libwebsockets.org/" target="_top">libwebsockets</a></td><td>
+                                <p>libwebsockets is required for Kubernetes support. If you do
+                                    not wish to build Kubernetes support, this library is not
+                                    needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libwebsockets-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libwebsockets-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://www.freedesktop.org/wiki/Software/PulseAudio/" target="_top">PulseAudio</a></td><td>
+                                <p>PulseAudio provides libpulse, which is used by Guacamole's VNC
+                                    support to provide experimental audio support. If you are not
+                                    going to be using the experimental audio support for VNC, you do
+                                    not need this library.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libpulse-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">pulseaudio-libs-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="https://www.openssl.org/" target="_top">OpenSSL</a></td><td>
+                                <p>OpenSSL provides support for SSL and TLS - two common
+                                    encryption schemes that make up the majority of encrypted web
+                                    traffic.</p>
+                                <p>If you have libssl installed, guacd will be built with SSL
+                                    support, allowing communication between the web application and
+                                    guacd to be encrypted. This library is also required for SSH
+                                    support, for manipulating public/private keys, and for
+                                    Kubernetes support, for SSL/TLS connections to the Kubernetes
+                                    server.</p>
+                                <p>Without SSL support, there will be no option to encrypt
+                                    communication to guacd, and support for SSH and Kubernetes
+                                    cannot be built.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libssl-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">openssl-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://xiph.org/vorbis/" target="_top">libvorbis</a></td><td>
+                                <p>libvorbis provides support for Ogg Vorbis - a free and open
+                                    standard for sound compression. If installed, libguac will be
+                                    built with support for Ogg Vorbis, and protocols supporting
+                                    audio will use Ogg Vorbis compression when possible.</p>
+                                <p>Otherwise, sound will only be encoded as WAV (uncompressed),
+                                    and will only be available if your browser also supports
+                                    WAV.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libvorbis-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libvorbis-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="https://developers.google.com/speed/webp/" target="_top">libwebp</a></td><td>
+                                <p>libwebp is used by libguac to write WebP images. Though
+                                    support for WebP is not mandated by the Guacamole protocol, WebP
+                                    images will be used if supported by both the browser and by
+                                    libguac.</p>
+                                <p>Lacking WebP support, Guacamole will simply use JPEG in cases
+                                    that it would have preferred WebP.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libwebp-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libwebp-devel</span></td></tr></tbody></table></div>
+                            </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-server-source"></a>Obtaining the source code</h3></div></div></div><p>You can obtain a copy of the <span class="package">guacamole-server</span> source from the
+                Guacamole project web site. These releases are stable snapshots of the latest code
+                which have undergone enough testing that the Guacamole team considers them fit for
+                public consumption. Source downloaded from the project web site will take the form
+                of a <code class="filename">.tar.gz</code> archive which you can extract from the command
+                line:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>tar -xzf guacamole-server-1.1.0.tar.gz</code></strong>
+<code class="prompt">$</code> <strong class="userinput"><code>cd guacamole-server-1.1.0/</code></strong>
+<code class="prompt">$</code></pre></div><p>If you want the absolute latest code, and don't care that the code hasn't been as
+                rigorously tested as the code in stable releases, you can also clone the Guacamole
+                team's git repository on GitHub:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>git clone <code class="uri">git://github.com/apache/guacamole-server.git</code></code></strong>
+<code class="computeroutput">Cloning into 'guacamole-server'...
+remote: Counting objects: 6769, done.
+remote: Compressing objects: 100% (2244/2244), done.
+remote: Total 6769 (delta 3058), reused 6718 (delta 3008)
+Receiving objects: 100% (6769/6769), 2.32 MiB | 777 KiB/s, done.
+Resolving deltas: 100% (3058/3058), done.</code>
+<code class="prompt">$</code></pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-server-build-process"></a>The build process</h3></div></div></div><p>Once the <span class="package">guacamole-server</span> source has been downloaded and
+                extracted, you need to run <code class="filename">configure</code>. This is a shell script
+                automatically generated by GNU Autotools, a popular build system used by the
+                Guacamole project for <span class="package">guacamole-server</span>. Running
+                    <code class="filename">configure</code> will determine which libraries are available on
+                your system and will select the appropriate components for building depending on
+                what you actually have installed.</p><div class="important"><h3 class="title">Important</h3><p>Source downloaded directly from git will not contain this
+                        <code class="filename">configure</code> script, as autogenerated code is not included
+                    in the project's repositories. If you downloaded the code from the project's git
+                    repositories directly, you will need to generate <code class="filename">configure</code>
+                    manually:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>cd guacamole-server/</code></strong>
+<code class="prompt">$</code> <strong class="userinput"><code>autoreconf -fi</code></strong>
+<code class="prompt">$</code></pre><p>Doing this requires GNU Autotools to be installed.</p><p>Source archives downloaded from the project website contain the
+                            <code class="filename">configure</code> script and all other necessary build
+                        files, and thus do not require GNU Autotools to be installed on the build
+                        machine.</p></div></div><p>Once you run <code class="filename">configure</code>, you can see what a listing of what
+                libraries were found and what it has determined should be built:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>./configure --with-init-dir=<em class="replaceable"><code>/etc/init.d</code></em></code></strong>
+<code class="computeroutput">checking for a BSD-compatible install... /usr/bin/install -c
+checking whether build environment is sane... yes
+...
+
+------------------------------------------------
+guacamole-server version 1.1.0
+------------------------------------------------
+
+   Library status:
+
+     freerdp2 ............ yes
+     pango ............... yes
+     libavcodec .......... yes
+     libavutil ........... yes
+     libssh2 ............. yes
+     libssl .............. yes
+     libswscale .......... yes
+     libtelnet ........... yes
+     libVNCServer ........ yes
+     libvorbis ........... yes
+     libpulse ............ yes
+     libwebsockets ....... yes
+     libwebp ............. yes
+     wsock32 ............. no
+
+   Protocol support:
+
+      Kubernetes .... yes
+      RDP ........... yes
+      SSH ........... yes
+      Telnet ........ yes
+      VNC ........... yes
+
+   Services / tools:
+
+      guacd ...... yes
+      guacenc .... yes
+      guaclog .... yes
+
+   Init scripts: /etc/init.d
+   Systemd units: no
+
+Type "make" to compile guacamole-server.
+</code>
+<code class="prompt">$</code></pre></div><p><a id="idm46420848980576" class="indexterm"></a>The <code class="option">--with-init-dir=/etc/init.d</code> shown above prepares
+                the build to install a startup script for <span class="package">guacd</span> into the
+                    <code class="filename">/etc/init.d</code> directory, such that we can later easily
+                configure <span class="package">guacd</span> to start automatically on boot. If you do not
+                wish guacd to start automatically at boot, leave off the
+                    <code class="option">--with-init-dir</code> option. If the directory containing your
+                distribution's startup scripts differs from the common
+                    <code class="filename">/etc/init.d</code>, replace <code class="filename">/etc/init.d</code> with
+                the proper directory here. You may need to consult your distribution's
+                documentation, or do a little digging in <code class="filename">/etc</code>, to determine the
+                proper location.</p><p>Here, <code class="filename">configure</code> has found everything, including all optional
+                libraries, and will build all protocol support, even support for Ogg Vorbis sound in
+                RDP. If you are missing some libraries, some of the
+                    "<code class="computeroutput">yes</code>" answers above will read
+                    "<code class="computeroutput">no</code>". If a library which is strictly required
+                is missing, the script will fail outright, and you will need to install the missing
+                dependency. If, after running <code class="filename">configure</code>, you find support for
+                something you wanted is missing, simply install the corresponding dependencies and
+                run <code class="filename">configure</code> again.</p><div class="important"><h3 class="title">Important</h3><p>All protocols that require a terminal (Kubernetes, SSH, and telnet) require
+                    that fonts are installed on the Guacamole server in order to function, as output
+                    from the terminal cannot be rendered otherwise. Support for these protocols will
+                    build just fine if fonts are not installed, but it will fail to connect when
+                    used:</p><div class="informalexample"><pre class="screen">Aug 23 14:09:45 my-server guacd[5606]: Unable to get font "monospace"</pre></div><p>If terminal-based connections are not working and you see such a message in
+                    syslog, you should make sure fonts are installed and try again.</p></div><p>Once <code class="filename">configure</code> is finished, just type
+                    "<strong class="userinput"><code>make</code></strong>", and it will <span class="package">guacamole-server</span>
+                will compile:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>make</code></strong>
+<code class="computeroutput">Making all in src/libguac
+make[1]: Entering directory `/home/zhz/guacamole/guacamole-server/src/libguac'
+...
+make[1]: Leaving directory `/home/zhz/guacamole/guacamole-server/src/protocols/vnc'
+make[1]: Entering directory `/home/zhz/guacamole/guacamole-server'
+make[1]: Nothing to be done for `all-am'.
+make[1]: Leaving directory `/home/zhz/guacamole/guacamole-server'</code>
+<code class="prompt">$</code></pre></div><p>Quite a bit of output will scroll up the screen as all the components are
+                compiled.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-server-installation"></a>Installation</h3></div></div></div><p>Once everything finishes, all you have left to do is type "<strong class="userinput"><code>make
+                    install</code></strong>" to install the components that were built, and then
+                    "<strong class="userinput"><code>ldconfig</code></strong>" to update your system's cache of installed
+                libraries:</p><div class="informalexample"><pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make install</code></strong>
+<code class="computeroutput">Making install in src/libguac
+make[1]: Entering directory `/home/zhz/guacamole/guacamole-server/src/libguac'
+make[2]: Entering directory `/home/zhz/guacamole/guacamole-server/src/libguac'
+...
+----------------------------------------------------------------------
+Libraries have been installed in:
+   /usr/local/lib
+
+If you ever happen to want to link against installed libraries
+in a given directory, LIBDIR, you must either use libtool, and
+specify the full pathname of the library, or use the `-LLIBDIR'
+flag during linking and do at least one of the following:
+   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
+     during execution
+   - add LIBDIR to the `LD_RUN_PATH' environment variable
+     during linking
+   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
+   - have your system administrator add LIBDIR to `/etc/ld.so.conf'
+
+See any operating system documentation about shared libraries for
+more information, such as the ld(1) and ld.so(8) manual pages.
+----------------------------------------------------------------------
+make[2]: Nothing to be done for `install-data-am'.
+make[2]: Leaving directory `/home/zhz/guacamole/guacamole-server/src/protocols/vnc'
+make[1]: Leaving directory `/home/zhz/guacamole/guacamole-server/src/protocols/vnc'
+make[1]: Entering directory `/home/zhz/guacamole/guacamole-server'
+make[2]: Entering directory `/home/zhz/guacamole/guacamole-server'
+make[2]: Nothing to be done for `install-exec-am'.
+make[2]: Nothing to be done for `install-data-am'.
+make[2]: Leaving directory `/home/zhz/guacamole/guacamole-server'
+make[1]: Leaving directory `/home/zhz/guacamole/guacamole-server'</code>
+<code class="prompt">#</code> <strong class="userinput"><code>ldconfig</code></strong>
+<code class="prompt">#</code>   </pre></div><p>At this point, everything is installed, but <span class="package">guacd</span> is not
+                running. You will need to run guacd in order to use Guacamole once the client
+                components are installed as well.</p><p>Beware that even after installing <span class="package">guacd</span> and its startup script,
+                you will likely still have to activate the service for it to start automatically.
+                Doing this varies by distribution, but each distribution will have documentation
+                describing how to do so.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="building-guacamole-client"></a><span class="package">guacamole-client</span></h2></div></div></div><a id="idm46420848952608" class="indexterm"></a><a id="idm46420848951136" class="indexterm"></a><div class="important"><h3 class="title">Important</h3><p>Normally, you don't need to build <span class="package">guacamole-client</span>, as it is
+                written in Java and is cross-platform. You can easily obtain the latest version of
+                    <span class="package">guacamole-client</span> from the release archives of the Guacamole
+                project web site, including all supported extensions, without having to build it
+                yourself.</p><p>If you do not want to build guacamole-client from source, just download
+                    <code class="filename">guacamole.war</code> from the project web site, along with any
+                desired extensions, and skip ahead to <a class="xref" href="installing-guacamole.html#deploying-guacamole" title="Deploying Guacamole">the section called “Deploying Guacamole”</a>.</p></div><p><span class="package">guacamole-client</span> contains all Java and JavaScript components of
+            Guacamole (<span class="package">guacamole</span>, <span class="package">guacamole-common</span>,
+                <span class="package">guacamole-ext</span>, and <span class="package">guacamole-common-js</span>). These
+            components ultimately make up the web application that will serve the HTML5 Guacamole
+            client to users that connect to your server. This web application will then connect to
+                <span class="package">guacd</span>, part of <span class="package">guacamole-server</span>, on behalf of
+            connected users in order to serve them any remote desktop they are authorized to
+            access.</p><p>To compile <span class="package">guacamole-client</span>, all you need is Apache Maven and a
+            copy of the Java JDK. Most, if not all, Linux distributions will provide packages for
+            these.</p><p>You can obtain a copy of the <span class="package">guacamole-client</span> source from the
+            Guacamole project web site. These releases are stable snapshots of the latest code which
+            have undergone enough testing that the Guacamole team considers them fit for public
+            consumption. Source downloaded from the project web site will take the form of a
+                <code class="filename">.tar.gz</code> archive which you can extract from the command
+            line:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>tar -xzf guacamole-client-1.1.0.tar.gz</code></strong>
+<code class="prompt">$</code> <strong class="userinput"><code>cd guacamole-client-1.1.0/</code></strong>
+<code class="prompt">$</code></pre></div><p>As with <span class="package">guacamole-server</span>, if you want the absolute latest code, and
+            don't care that the code hasn't been as rigorously tested as the code in stable
+            releases, you can also clone the Guacamole team's git repository on GitHub:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>git clone <code class="uri">git://github.com/apache/guacamole-client.git</code></code></strong>
+<code class="computeroutput">Cloning into 'guacamole-client'...
+remote: Counting objects: 12788, done.
+remote: Compressing objects: 100% (4183/4183), done.
+remote: Total 12788 (delta 3942), reused 12667 (delta 3822)
+Receiving objects: 100% (12788/12788), 3.23 MiB | 799 KiB/s, done.
+Resolving deltas: 100% (3942/3942), done.</code>
+<code class="prompt">$</code></pre></div><p>Unlike <span class="package">guacamole-server</span>, even if you grab the code from the git
+            repositories, you won't need to run anything before building. There are no scripts that
+            need to be generated before building - all Maven needs is the
+                <code class="filename">pom.xml</code> file provided with the source.</p><p>To build <span class="package">guacamole-client</span>, just run "<strong class="userinput"><code>mvn
+                package</code></strong>". This will invoke Maven to automatically build and package all
+            components, producing a single <code class="filename">.war</code> file, which contains the entire
+            web application:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>mvn package</code></strong>
+<code class="computeroutput">[INFO] Scanning for projects...
+[INFO] ------------------------------------------------------------------------
+[INFO] Reactor Build Order:
+[INFO] 
+[INFO] guacamole-common
+[INFO] guacamole-ext
+[INFO] guacamole-common-js
+[INFO] guacamole
+[INFO] guacamole-auth-cas
+[INFO] guacamole-auth-duo
+[INFO] guacamole-auth-header
+[INFO] guacamole-auth-jdbc
+[INFO] guacamole-auth-jdbc-base
+[INFO] guacamole-auth-jdbc-mysql
+[INFO] guacamole-auth-jdbc-postgresql
+[INFO] guacamole-auth-jdbc-sqlserver
+[INFO] guacamole-auth-jdbc-dist
+[INFO] guacamole-auth-ldap
+[INFO] guacamole-auth-openid
+[INFO] guacamole-auth-quickconnect
+[INFO] guacamole-auth-totp
+[INFO] guacamole-example
+[INFO] guacamole-playback-example
+[INFO] guacamole-client
+...
+[INFO] ------------------------------------------------------------------------
+[INFO] Reactor Summary:
+[INFO] 
+[INFO] guacamole-common ................................... SUCCESS [ 21.852 s]
+[INFO] guacamole-ext ...................................... SUCCESS [  9.055 s]
+[INFO] guacamole-common-js ................................ SUCCESS [  1.988 s]
+[INFO] guacamole .......................................... SUCCESS [ 18.040 s]
+[INFO] guacamole-auth-cas ................................. SUCCESS [  4.203 s]
+[INFO] guacamole-auth-duo ................................. SUCCESS [  2.251 s]
+[INFO] guacamole-auth-header .............................. SUCCESS [  1.399 s]
+[INFO] guacamole-auth-jdbc ................................ SUCCESS [  1.396 s]
+[INFO] guacamole-auth-jdbc-base ........................... SUCCESS [  3.266 s]
+[INFO] guacamole-auth-jdbc-mysql .......................... SUCCESS [  4.665 s]
+[INFO] guacamole-auth-jdbc-postgresql ..................... SUCCESS [  3.764 s]
+[INFO] guacamole-auth-jdbc-sqlserver ...................... SUCCESS [  3.738 s]
+[INFO] guacamole-auth-jdbc-dist ........................... SUCCESS [  1.214 s]
+[INFO] guacamole-auth-ldap ................................ SUCCESS [  1.991 s]
+[INFO] guacamole-auth-openid .............................. SUCCESS [  2.204 s]
+[INFO] guacamole-auth-quickconnect ........................ SUCCESS [  2.983 s]
+[INFO] guacamole-auth-totp ................................ SUCCESS [  8.154 s]
+[INFO] guacamole-example .................................. SUCCESS [  0.895 s]
+[INFO] guacamole-playback-example ......................... SUCCESS [  0.795 s]
+[INFO] guacamole-client ................................... SUCCESS [  7.478 s]
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESS
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 01:41 min
+[INFO] Finished at: 2018-10-15T17:08:29-07:00
+[INFO] Final Memory: 42M/379M
+[INFO] ------------------------------------------------------------------------</code>
+<code class="prompt">$</code></pre></div><p>Once the Guacamole web application is built, there will be a .war file in the
+                <code class="filename">guacamole/target/</code> subdirectory of the current directory (the
+            directory you were in when you ran <span class="application">mvn</span>), ready to be deployed
+            to a servlet container like Tomcat.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="deploying-guacamole"></a>Deploying Guacamole</h2></div></div></div><a id="idm46420848921088" class="indexterm"></a><p>The web application portion of Guacamole is packaged as a fully self-contained
+                <code class="filename">.war</code> file. If you downloaded Guacamole from the main project
+            web site, this file will be called <code class="filename">guacamole.war</code>. Deploying this
+            involves copying the file into the directory your servlet container uses for
+                <code class="filename">.war</code> files. In the case of Tomcat, this will be
+                    <code class="filename"><em class="replaceable"><code>CATALINA_HOME</code></em>/webapps/</code>. The
+            location of <code class="envar">CATALINA_HOME</code> will vary by how Tomcat was installed, but is
+            commonly <code class="filename">/var/lib/tomcat</code>, <code class="filename">/var/lib/tomcat7</code>, or
+            similar:</p><div class="informalexample"><pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>cp guacamole.war <em class="replaceable"><code>/var/lib/tomcat</code></em>/webapps</code></strong>
+<code class="prompt">#</code></pre></div><p>If you have built guacamole-client from source, the required <code class="filename">.war</code>
+            file will be within the <code class="filename">guacamole/target/</code> directory and will
+            contain an additional version suffix. As Tomcat will determine the location of the web
+            application from the name of the <code class="filename">.war</code> file, you will likely want to
+            rename this to simply <code class="filename">guacamole.war</code> while copying:</p><div class="informalexample"><pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>cp guacamole/target/guacamole-1.1.0.war <em class="replaceable"><code>/var/lib/tomcat/webapps</code></em>/guacamole.war</code></strong>
+<code class="prompt">#</code></pre></div><p>Again, if you are using a different servlet container or if Tomcat is installed to a
+            different location, you will need to check the documentation of your servlet container,
+            distribution, or both to determine the proper location for deploying
+                <code class="filename">.war</code> files like <code class="filename">guacamole.war</code>.</p><p>Once the <code class="filename">.war</code> file is in place, you may need to restart Tomcat to
+            force Tomcat to deploy the new web application, and the <span class="package">guacd</span> daemon
+            must be started if it isn't running already. The command to restart Tomcat and
+                <span class="package">guacd</span> will vary by distribution. Typically, you can do this by
+            running the corresponding init scripts with the "restart" option:</p><div class="informalexample"><pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>/etc/init.d/tomcat7 restart</code></strong>
+<code class="computeroutput">Stopping Tomcat... OK
+Starting Tomcat... OK</code>
+<code class="prompt">#</code> <strong class="userinput"><code>/etc/init.d/guacd start</code></strong>
+<code class="computeroutput">Starting guacd: SUCCESS
+guacd[6229]: INFO:  Guacamole proxy daemon (guacd) version 1.1.0 started</code>
+<code class="prompt">#</code></pre></div><div class="important"><h3 class="title">Important</h3><p>If you want Guacamole to start on boot, you will need to configure the Tomcat and
+                    <span class="package">guacd</span> services to run automatically. Your distribution will
+                provide documentation for doing this.</p></div><p>After restarting Tomcat and starting <span class="package">guacd</span>, Guacamole is
+            successfully installed, though it will not be fully running. In its current state, it is
+            completely unconfigured, and further steps are required to add at least one Guacamole
+            user and a few connections. This is covered in <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a>.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420848897680"></a>What about WebSocket?</h3></div></div></div><a id="idm46420848896944" class="indexterm"></a><p>Guacamole will use WebSocket automatically if supported by the browser and your
+                servlet container. In the event that Guacamole cannot connect using WebSocket, it
+                will immediately and transparently fall back to using HTTP.</p><p>WebSocket is supported in Guacamole for Tomcat 7.0.37 or higher, Jetty 8 or
+                higher, and any servlet container supporting JSR 356, the standardized Java API for
+                WebSocket.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="guacamole-architecture.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="guacamole-docker.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 1. Implementation and architecture </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 3. Installing Guacamole with Docker</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/jdbc-auth.html b/doc/1.1.0/gug/jdbc-auth.html
new file mode 100644
index 0000000..08b28f9
--- /dev/null
+++ b/doc/1.1.0/gug/jdbc-auth.html
@@ -0,0 +1,910 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 6. Database authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole" /><link rel="next" href="ldap-auth.html" title="Chapter 7. LDAP authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 6. Database authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="configuring-guacamole.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="ldap-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="jdbc-auth"></a>Chapter 6. Database authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="jdbc-auth.html#idm46420848531088">Downloading the database authentication extension</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-database-creation">Creating the Guacamole database</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-mysql">MySQL</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-postgresql">PostgreSQL</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-sqlserver">SQL Server</a></span></dt></dl></dd><dt><span class="section"><a href="jdbc-auth.html#idm46420849413472">Upgrading an existing Guacamole database</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#idm46420847663760">Granting Guacamole access to the database</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc-auth.html#idm46420847659008">MySQL</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#idm46420847248864">PostgreSQL</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#idm46420848090912">SQL Server</a></span></dt></dl></dd><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-installation">Installing database authentication</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-configuration">Configuring Guacamole for database authentication</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-restrict">Restricting authentication to database users only</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#idm46420848067232">Completing the installation</a></span></dt></dl></dd><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-default-user">Logging in</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema">Modifying data manually</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-entities">Entities</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-users">Users</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-groups">User groups</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-connections">Connections and parameters</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-sharing-profiles">Sharing profiles and parameters</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-connection-groups">Connection groups</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-permissions">Permissions</a></span></dt></dl></dd></dl></div><a id="idm46420848123776" class="indexterm"></a><a id="idm46420848122880" class="indexterm"></a><a id="idm46420848121984" class="indexterm"></a><p>Guacamole supports authentication via MySQL, PostgreSQL, or SQL Server databases through
+        extensions available from the project website. Using a database for authentication provides
+        additional features, such as the ability to use load balancing groups of connections and a
+        web-based administrative interface. Unlike the default, XML-driven authentication module, all
+        changes to users and connections take effect immediately; users need not logout and back in
+        to see new connections.</p><p>While most authentication extensions function independently, the database authentication
+        can act in a subordinate role, allowing users and user groups from other authentication
+        extensions to be associated with connections within the database. Users and groups are
+        considered identical to those within the database if they have the same names, and the
+        authentication result of another extension will be trusted if it succeeds. A user with an
+        account under multiple systems will thus be able to see data from each system after
+        successfully logging in. For more information on using the database authentication alongside
+        other mechanisms, see <a class="xref" href="ldap-auth.html#ldap-and-database" title="Associating LDAP with a database">the section called “Associating LDAP with a database”</a> within <a class="xref" href="ldap-auth.html" title="Chapter 7. LDAP authentication">Chapter 7, <em>LDAP authentication</em></a>.</p><p>To use the database authentication extension, you will need:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>A supported database - currently MariaDB, MySQL, PostgreSQL, or SQL Server.</p></li><li class="listitem"><p>Sufficient permission to create new databases, to create new users, and to grant
+                those users permissions.</p></li><li class="listitem"><p>Network access to the database from the Guacamole server.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>This chapter involves modifying the contents of <code class="varname">GUACAMOLE_HOME</code> -
+            the Guacamole configuration directory. If you are unsure where
+                <code class="varname">GUACAMOLE_HOME</code> is located on your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before proceeding.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="idm46420848531088"></a>Downloading the database authentication extension</h2></div></div></div><p>The database authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The database authentication extension is packaged as a <code class="filename">.tar.gz</code>
+            file containing:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="filename">mysql/</code></span></dt><dd><p>Contains the MySQL/MariaDB authentication extension,
+                            <code class="filename">guacamole-auth-jdbc-mysql-1.1.0.jar</code>, along with a
+                            <code class="filename">schema/</code> directory containing MySQL-specific SQL
+                        scripts required to set up the database. The
+                            <code class="filename">guacamole-auth-jdbc-mysql-1.1.0.jar</code> file will
+                        ultimately need to be placed within
+                            <code class="filename">GUACAMOLE_HOME/extensions</code>, while the MySQL JDBC
+                        driver must be placed within <code class="filename">GUACAMOLE_HOME/lib</code>.</p><p><span class="emphasis"><em>The MySQL JDBC driver is not included with the
+                            extension.</em></span> You must obtain the JDBC driver
+                            <code class="filename">.jar</code> yourself from <a class="link" href="http://dev.mysql.com/downloads/connector/j/" target="_top">MySQL's
+                            website</a>. The driver is known as "Connector/J", and the required
+                            <code class="filename">.jar</code> will be within a <code class="filename">.tar.gz</code>
+                        archive.</p></dd><dt><span class="term"><code class="filename">postgresql/</code></span></dt><dd><p>Contains the PostgreSQL authentication extension,
+                            <code class="filename">guacamole-auth-jdbc-postgresql-1.1.0.jar</code>, along
+                        with a <code class="filename">schema/</code> directory containing PostgreSQL-specific
+                        SQL scripts required to set up the database. The
+                            <code class="filename">guacamole-auth-jdbc-postgresql-1.1.0.jar</code> file will
+                        ultimately need to be placed within
+                            <code class="filename">GUACAMOLE_HOME/extensions</code>, while the PostgreSQL
+                        JDBC driver must be placed within
+                        <code class="filename">GUACAMOLE_HOME/lib</code>.</p><p><span class="emphasis"><em>The PostgreSQL JDBC driver is not included with the
+                            extension.</em></span> You must obtain the JDBC driver
+                            <code class="filename">.jar</code> yourself from <a class="link" href="https://jdbc.postgresql.org/download.html#current" target="_top">PostgreSQL's website</a>. The proper <code class="filename">.jar</code> file
+                        depends on the version of Java you have installed. </p></dd><dt><span class="term"><code class="filename">sqlserver/</code></span></dt><dd><p>Contains the SQL Server authentication extension,
+                            <code class="filename">guacamole-auth-jdbc-sqlserver-1.1.0.jar</code>, along with
+                        a <code class="filename">schema/</code> directory contains SQL Server-specific
+                        scripts requires to set up the database. The JAR extension file will need to
+                        be placed within the <code class="filename">GUACAMOLE_HOME/extensions</code> folder,
+                        while the SQL Server JDBC driver must be placed within the
+                            <code class="filename">GUACAMOLE_HOME/lib</code> directory.</p><p><span class="emphasis"><em>The SQL Server JDBC driver is not included with the extension.</em></span>  You
+                        must obtain the JDBC driver <code class="filename">.jar</code> yourself and place it in the directory.
+                        Furthermore, the SQL Server authentication extension supports a number of TDS-compatible
+                        drivers, so you must make sure the one you choose is supported by the extension, that the
+                        extension is configured properly, and that the <code class="filename">.jar</code> is in the correct
+                        directory.  Microsoft's JDBC driver can be downloaded from Microsoft's <a class="link" href="https://docs.microsoft.com/en-us/sql/connect/sql-connection-libraries#anchor-20-drivers-relational-access" target="_top">
+                        SQL Connection Libraries</a> page.</p><p>In addition to the various parameters mentioned below, the SQL Server driver has a
+                        unique parameter available to control the driver compatibility of the JDBC module:
+                        <span class="property">sqlserver-driver</span>.  This parameter allows you to choose the compatibility
+                        mode of the module with various TDS-comptabile drivers such that it can be used with different
+                        versions of SQL Server and even non-Microsoft SQL Server databases.  The following options are available
+                        for the <span class="property">sqlserver-driver</span> property:
+                        </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">microsoft2005</span></dt><dd><p>The current Microsoft driver, supporting SQL Server 2005 and later.</p></dd><dt><span class="term">microsoft</span></dt><dd><p>The legacy SQL Server support.</p></dd><dt><span class="term">jtds</span></dt><dd><p>The open source JTDS driver.</p></dd><dt><span class="term">datadirect</span></dt><dd><p>The Progress Sybase driver.</p></dd></dl></div><p>
+                    </p></dd></dl></div><p>Only one of the directories within the archive will be applicable to you, depending on
+            whether you are using MariaDB, MySQL, PostgreSQL, or SQL Server.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="jdbc-auth-database-creation"></a>Creating the Guacamole database</h2></div></div></div><p>The database authentication module will need a database to store authentication data
+            and a user to use only for data access and manipulation. You can use an existing
+            database and existing user, but for the sake of simplicity and security, these
+            instructions assume you will be creating a new database and new user that will be used
+            only by Guacamole and only for this authentication module.</p><p>You need MariaDB, MySQL, PostgreSQL, or SQL Server installed, and must have sufficient
+            access to create and administer databases. If this is not the case, install your database
+            of choice now. Most distributions will provide a convenient MySQL or PostgreSQL package
+            which will set up everything for you, including the root database user, if
+            applicable.  If you're using SQL Server, you need to install the packages on your platform
+            of choice, and also make sure that you obtain the proper licensing for the version
+            and edition of SQL Server you are running.</p><p>For the sake of clarity, these instructions will refer to the database as
+            "guacamole_db", but the database can be named whatever you like.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-mysql"></a>MySQL</h3></div></div></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>ls schema/</code></strong>
+<code class="computeroutput">001-create-schema.sql  002-create-admin-user.sql  upgrade</code>
+<code class="prompt">$</code> <strong class="userinput"><code>cat schema/*.sql | mysql -u root -p <em class="replaceable"><code>guacamole_db</code></em></code></strong>
+<code class="prompt">Enter password:</code> <strong class="userinput"><code><em class="replaceable"><code>password</code></em></code></strong>
+<code class="prompt">$</code></pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-postgresql"></a>PostgreSQL</h3></div></div></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>createdb <em class="replaceable"><code>guacamole_db</code></em></code></strong>
+<code class="prompt">$</code> <strong class="userinput"><code>ls schema/</code></strong>
+<code class="computeroutput">001-create-schema.sql  002-create-admin-user.sql</code>
+<code class="prompt">$</code> <strong class="userinput"><code>cat schema/*.sql | psql -d <em class="replaceable"><code>guacamole_db</code></em> -f -</code></strong>
+<code class="computeroutput">CREATE TYPE
+CREATE TYPE
+CREATE TYPE
+CREATE TABLE
+CREATE INDEX</code>
+...
+<code class="computeroutput">INSERT 0 1
+INSERT 0 4
+INSERT 0 3</code>
+<code class="prompt">$</code></pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-sqlserver"></a>SQL Server</h3></div></div></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -d <em class="replaceable"><code>guacamole_db</code></em> -i schema/001-create-schema.sql</code></strong>
+<code class="prompt">Password:</code> <strong class="userinput"><code><em class="replaceable"><code>password</code></em></code></strong>
+<code class="computeroutput">Rule bound to data type.
+The new rule has been bound to column(s) of the specified user data type.
+Rule bound to data type.
+The new rule has been bound to column(s) of the specified user data type.</code>
+<code class="prompt">$</code> <strong class="userinput"><code>/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -d <em class="replaceable"><code>guacamole_db</code></em> -i schema/002-create-admin-user.sql</code></strong>
+<code class="prompt">Password:</code> <strong class="userinput"><code><em class="replaceable"><code>password</code></em></code></strong>
+<code class="computeroutput">
+(1 rows affected)
+
+(3 rows affected)
+                        
+(5 rows affected)</code>
+</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="idm46420849413472"></a>Upgrading an existing Guacamole database</h2></div></div></div><p>If you are upgrading from an older version of Guacamole, you may need to run one or
+            more database schema upgrade scripts located within the
+                <code class="filename">schema/upgrade/</code> directory. Each of these scripts is named
+                    <code class="filename">upgrade-pre-<em class="replaceable"><code>VERSION</code></em>.sql</code> where
+                <em class="replaceable"><code>VERSION</code></em> is the version of Guacamole where those changes
+            were introduced. They need to be run when you are upgrading from a version of Guacamole
+            older than <em class="replaceable"><code>VERSION</code></em>.</p><p>If there are no
+                <code class="filename">upgrade-pre-<em class="replaceable"><code>VERSION</code></em>.sql</code> scripts
+            present in the <code class="filename">schema/upgrade/</code> directory which apply to your
+            existing Guacamole database, then the schema has not changed between your version and
+            the version your are installing, and there is no need to run any database upgrade
+            scripts.</p><p>These scripts are incremental and, when relevant, <span class="emphasis"><em>must be run in
+                order</em></span>. For example, if you are upgrading an existing database from
+            version 0.9.13-incubating to version 1.0.0, you would need to run the
+                <code class="filename">upgrade-pre-0.9.14.sql</code> script (because 0.9.13-incubating is
+            older than 0.9.14), followed by the <code class="filename">upgrade-pre-1.0.0.sql</code> script
+            (because 0.9.13-incubating is also older than 1.0.0).</p><div class="important"><h3 class="title"><a id="jdbc-auth-postgresql-upgrade"></a>Important</h3><p>Because the permissions granted to the Guacamole-specific PostgreSQL user when the
+                database was first created will not automatically be granted for any new tables and
+                sequences, you will also need to re-grant those permissions after applying any
+                upgrade relevant scripts:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>psql -d <em class="replaceable"><code>guacamole_db</code></em></code></strong>
+<code class="computeroutput">psql (9.3.6)
+Type "help" for help.
+</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>GRANT SELECT,INSERT,UPDATE,DELETE ON ALL TABLES IN SCHEMA public TO <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="computeroutput">GRANT</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>GRANT SELECT,USAGE ON ALL SEQUENCES IN SCHEMA public TO <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="computeroutput">GRANT</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>\q</code></strong>
+<code class="prompt">$</code></pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="idm46420847663760"></a>Granting Guacamole access to the database</h2></div></div></div><p>For Guacamole to be able to execute queries against the database, you must create a
+            new user for the database and grant that user sufficient privileges to manage the
+            contents of all tables in the database. The user created for Guacamole needs only
+                <code class="code">SELECT</code>, <code class="code">UPDATE</code>, <code class="code">INSERT</code>, and
+                <code class="code">DELETE</code> permissions on all Guacamole tables. Additionally, if using
+            PostgreSQL, the user will need <code class="code">SELECT</code> and <code class="code">USAGE</code> permission on
+            all sequences within all Guacamole tables. <span class="emphasis"><em>No other permissions should be
+                granted.</em></span></p><p>These instructions will refer to the user as "guacamole_user" but the user can be
+            named whatever you like. Naturally, you should also choose a real password for your user
+            rather than the string "some_password" used as a placeholder below.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420847659008"></a>MySQL</h3></div></div></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> mysql -u root -p
+<code class="prompt">Enter password:</code> <strong class="userinput"><code><em class="replaceable"><code>password</code></em></code></strong>
+<code class="computeroutput">Welcome to the MySQL monitor.  Commands end with ; or \g.
+Your MySQL connection id is 233
+Server version: 5.5.29-0ubuntu0.12.10.1 (Ubuntu)
+
+Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+
+Oracle is a registered trademark of Oracle Corporation and/or its
+affiliates. Other names may be trademarks of their respective
+owners.
+
+Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
+</code>
+<code class="prompt">mysql&gt;</code> <strong class="userinput"><code>CREATE DATABASE <em class="replaceable"><code>guacamole_db</code></em>;</code></strong>
+<code class="computeroutput">Query OK, 1 row affected (0.00 sec)</code>
+
+<code class="prompt">mysql&gt;</code> <strong class="userinput"><code>CREATE USER '<em class="replaceable"><code>guacamole_user'</code></em>@'localhost' IDENTIFIED BY '<em class="replaceable"><code>some_password</code></em>';</code></strong>
+<code class="computeroutput">Query OK, 0 rows affected (0.00 sec)</code>
+
+<code class="prompt">mysql&gt;</code> <strong class="userinput"><code>GRANT SELECT,INSERT,UPDATE,DELETE ON <em class="replaceable"><code>guacamole_db</code></em>.* TO '<em class="replaceable"><code>guacamole_user'</code></em>@'localhost';</code></strong>
+<code class="computeroutput">Query OK, 0 rows affected (0.00 sec)</code>
+
+<code class="prompt">mysql&gt;</code> <strong class="userinput"><code>FLUSH PRIVILEGES;</code></strong>
+<code class="computeroutput">Query OK, 0 rows affected (0.02 sec)</code>
+
+<code class="prompt">mysql&gt;</code> <strong class="userinput"><code>quit</code></strong>
+<code class="computeroutput">Bye</code>
+<code class="prompt">$</code></pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420847248864"></a>PostgreSQL</h3></div></div></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>psql -d <em class="replaceable"><code>guacamole_db</code></em></code></strong>
+<code class="computeroutput">psql (9.3.6)
+Type "help" for help.
+</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>CREATE USER <em class="replaceable"><code>guacamole_user</code></em> WITH PASSWORD '<em class="replaceable"><code>some_password</code></em>';</code></strong>
+<code class="computeroutput">CREATE ROLE</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>GRANT SELECT,INSERT,UPDATE,DELETE ON ALL TABLES IN SCHEMA public TO <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="computeroutput">GRANT</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>GRANT SELECT,USAGE ON ALL SEQUENCES IN SCHEMA public TO <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="computeroutput">GRANT</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>\q</code></strong>
+<code class="prompt">$</code></pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420848090912"></a>SQL Server</h3></div></div></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>/opt/mssql-tools/bin/sqlcmd -S localhost -U SA</code></strong>
+<code class="prompt">Password:</code> <strong class="userinput"><code><em class="replaceable"><code>password</code></em></code></strong>
+<code class="prompt">1&gt;</code> <strong class="userinput"><code>CREATE DATABASE <em class="replaceable"><code>guacamole_db</code></em>;</code></strong>
+<code class="prompt">2&gt;</code> <strong class="userinput"><code>GO</code></strong>
+<code class="prompt">1&gt;</code> <strong class="userinput"><code>CREATE LOGIN <em class="replaceable"><code>guacamole_user</code></em> WITH PASSWORD = '<em class="replaceable"><code>some_password</code></em>';</code></strong>
+<code class="prompt">2&gt;</code> <strong class="userinput"><code>GO</code></strong>
+<code class="prompt">1&gt;</code> <strong class="userinput"><code>USE <em class="replaceable"><code>guacamole_db</code></em>;</code></strong>
+<code class="prompt">2&gt;</code> <strong class="userinput"><code>GO</code></strong>
+<code class="prompt">1&gt;</code> <strong class="userinput"><code>CREATE USER <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="prompt">2&gt;</code> <strong class="userinput"><code>GO</code></strong>
+<code class="prompt">1&gt;</code> <strong class="userinput"><code>ALTER ROLE db_datawriter ADD MEMBER <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="prompt">2&gt;</code> <strong class="userinput"><code>ALTER ROLE db_datareader ADD MEMBER <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="prompt">3&gt;</code> <strong class="userinput"><code>GO</code></strong></pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="jdbc-auth-installation"></a>Installing database authentication</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory. To install
+            the database authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-jdbc-mysql-1.1.0.jar</code>
+                    <span class="emphasis"><em>or</em></span>
+                    <code class="filename">guacamole-auth-jdbc-postgresql-1.1.0.jar</code>
+                    <span class="emphasis"><em>or</em></span>
+                    <code class="filename">guacamole-auth-jdbc-sqlserver-1.1.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>, depending on whether you are
+                    using MySQL/MariaDB, PostgreSQL, or SQL Server.</p></li><li class="step"><p>Copy the JDBC driver for your database to
+                        <code class="filename">GUACAMOLE_HOME/lib</code>. Without a JDBC driver for your
+                    database, Guacamole will not be able to connect and authenticate users.</p></li><li class="step"><p>Configure Guacamole to use database authentication, as described below.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>You will need to restart Guacamole by restarting your servlet container in order
+                to complete the installation. Doing this will disconnect all active users, so be
+                sure that it is safe to do so prior to attempting installation. If you do not
+                configure the database authentication properly, Guacamole will not start up again
+                until the configuration is fixed.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-configuration"></a>Configuring Guacamole for database authentication</h3></div></div></div><p>Additional properties must be added to <code class="filename">guacamole.properties</code>
+                for Guacamole to properly connect to your database. These properties are specific to
+                the database being used, and must be set correctly for authentication to
+                work.</p><p>To use a MySQL database, you will need to specify the following:</p><div class="informalexample"><pre class="programlisting"># MySQL properties
+mysql-hostname: localhost
+mysql-port: 3306
+mysql-database: <em class="replaceable"><code>guacamole_db</code></em>
+mysql-username: <em class="replaceable"><code>guacamole_user</code></em>
+mysql-password: <em class="replaceable"><code>some_password</code></em>
+                </pre></div><p>For PostgreSQL, the properties are similar, but with different prefixes:</p><div class="informalexample"><pre class="programlisting"># PostgreSQL properties
+postgresql-hostname: localhost
+postgresql-port: 5432
+postgresql-database: <em class="replaceable"><code>guacamole_db</code></em>
+postgresql-username: <em class="replaceable"><code>guacamole_user</code></em>
+postgresql-password: <em class="replaceable"><code>some_password</code></em>
+                </pre></div><p>The SQL Server properties follow the same format:</p><div class="informalexample"><pre class="programlisting"># SQL Server properties
+sqlserver-hostname: localhost
+sqlserver-port: 1433
+sqlserver-database: <em class="replaceable"><code>guacamole_db</code></em>
+sqlserver-username: <em class="replaceable"><code>guacamole_user</code></em>
+sqlserver-password: <em class="replaceable"><code>some_password</code></em>
+sqlserver-driver: microsoft2005
+                </pre></div><p>The properties absolutely required by the database authentication extension are
+                relatively few and self-explanatory, describing only how the connection to the
+                database is to be established, and how Guacamole will authenticate when querying the
+                database:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /><col class="c3" /><col class="c4" /></colgroup><thead><tr><th>MySQL/MariaDB Property</th><th>PostgreSQL Property</th><th>SQL Server Property</th><th>Description</th></tr></thead><tbody><tr><td><span class="property">mysql-hostname</span></td><td><span class="property">postgresql-hostname</span></td><td><span class="property">sqlserver-hostname</span></td><td>
+                                <p>The hostname or IP address of the server hosting your
+                                    database.</p>
+                            </td></tr><tr><td><span class="property">mysql-port</span></td><td><span class="property">postgresql-port</span></td><td><span class="property">sqlserver-port</span></td><td>
+                                <p>The port number of the database to connect to. For MySQL and
+                                    MariaDB, this will likely be 3306. For PostgreSQL, this will
+                                    likely be 5432.</p>
+                            </td></tr><tr><td><span class="property">mysql-database</span></td><td><span class="property">postgresql-database</span></td><td><span class="property">sqlserver-database</span></td><td>
+                                <p>The name of the database that you created for Guacamole. This
+                                    is given as "guacamole_db" in the examples given in this
+                                    chapter.</p>
+                            </td></tr><tr><td><span class="property">mysql-username</span></td><td><span class="property">postgresql-username</span></td><td><span class="property">sqlserver-username</span></td><td>
+                                <p>The username of the user that Guacamole should use to connect
+                                    to the database. This is given as "guacamole_user" in the
+                                    examples given in this chapter.</p>
+                            </td></tr><tr><td><span class="property">mysql-password</span></td><td><span class="property">postgresql-password</span></td><td><span class="property">sqlserver-password</span></td><td>
+                                <p>The password Guacamole should provide when authenticating with
+                                    the database. This is given as "some_password" in the examples
+                                    given in this chapter.</p>
+                            </td></tr></tbody></table></div><p>Be sure to specify the correct username and password for the database user you
+                created, and to specify the correct database. Authentication will not work if these
+                parameters are not correct.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420847149552"></a>Enforcing password policies</h4></div></div></div><p>Configuration options are available for enforcing rules intended to encourage
+                    password complexity and regular changing of passwords. None of these options are
+                    enabled by default, but can be selectively enabled through additional properties
+                    in <code class="filename">guacamole.properties</code>.</p><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm46420847147616"></a>Password complexity</h5></div></div></div><p>Administrators can require that passwords have a certain level of
+                        complexity, such as having both uppercase and lowercase letters ("multiple
+                        case"), at least one digit, or at least one symbol, and can prohibit
+                        passwords from containing the user's own username.</p><p>With respect to password content, the database authentication defines a
+                        "digit" as any numeric character and a "symbol" is any non-alphanumeric
+                        character. This takes non-English languages into account, thus a digit is
+                        not simply "0" through "9" but rather <a class="link" href="https://en.wikipedia.org/wiki/Numerals_in_Unicode" target="_top">any
+                            character defined in Unicode as numeric</a>, and a symbol is any
+                        character which Unicode does not define as alphabetic or numeric.</p><p>The check for whether a password contains the user's own username is
+                        performed in a case-insensitive manner. For example, if the user's username
+                        is "phil", the passwords "ch!0roPhil" and "PHIL-o-dendr0n" would still be
+                        prohibited.</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-user-password-min-length: <em class="replaceable"><code>8</code></em>
+mysql-user-password-require-multiple-case: true
+mysql-user-password-require-symbol: true
+mysql-user-password-require-digit: true
+mysql-user-password-prohibit-username: true
+
+# PostgreSQL
+postgresql-user-password-min-length: <em class="replaceable"><code>8</code></em>
+postgresql-user-password-require-multiple-case: true
+postgresql-user-password-require-symbol: true
+postgresql-user-password-require-digit: true
+postgresql-user-password-prohibit-username: true
+
+# SQL Server
+sqlserver-user-password-min-length: <em class="replaceable"><code>8</code></em>
+sqlserver-user-password-require-multiple-case: true
+sqlserver-user-password-require-symbol: true
+sqlserver-user-password-require-digit: true
+sqlserver-user-password-prohibit-username: true</pre></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm46420847140976"></a>Password age / expiration</h5></div></div></div><p>"Password age" refers to two separate concepts:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Requiring users to change their password after a certain amount of
+                                time has elapsed since the last password change (maximum password
+                                age).</p></li><li class="listitem"><p>Preventing users from changing their password too frequently
+                                (minimum password age).</p></li></ol></div><p>While it may seem strange to prevent users from changing their password
+                        too frequently, it does make sense if you are concerned that rapid password
+                        changes may defeat password expiration (users could immediately change the
+                        password back) or tracking of password history (users could cycle through
+                        passwords until the history is exhausted and their old password is usable
+                        again).</p><p>By default, the database authentication does not apply any limits to
+                        password age, and users with permission to change their passwords may do so
+                        as frequently or infrequently as they wish. Password age limits can be
+                        enabled using a pair of properties, each accepting values given in units of
+                        days:</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-user-password-min-age: <em class="replaceable"><code>7</code></em>
+mysql-user-password-max-age: <em class="replaceable"><code>90</code></em>
+
+# PostgreSQL
+postgresql-user-password-min-age: <em class="replaceable"><code>7</code></em>
+postgresql-user-password-max-age: <em class="replaceable"><code>90</code></em>
+
+# SQL Server
+sqlserver-user-password-min-age: <em class="replaceable"><code>7</code></em>
+sqlserver-user-password-max-age: <em class="replaceable"><code>90</code></em></pre></div><div class="important"><h3 class="title">Important</h3><p>So that administrators can always intervene in the case that a
+                            password needs to be reset despite restrictions, the minimum age
+                            restriction does not apply to any user with permission to administer the
+                            system.</p></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm46420847458864"></a>Preventing password reuse</h5></div></div></div><p>If desired, Guacamole can keep track of each user's most recently used
+                        passwords, and will prohibit reuse of those passwords until the password has
+                        been changed sufficiently many times. By default, Guacamole will not keep
+                        track of old passwords.</p><p>Note that these passwords are hashed in the same manner as each user's
+                        current password. When a user's password is changed, the hash, salt, etc.
+                        currently stored for that user is actually just copied verbatim (along with
+                        a timestamp) into a list of historical passwords, with older entries from
+                        this list being automatically deleted.</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-user-password-history-size: <em class="replaceable"><code>6</code></em>
+
+# PostgreSQL
+postgresql-user-password-history-size: <em class="replaceable"><code>6</code></em>
+
+# SQL Server
+sqlserver-user-password-history-size: <em class="replaceable"><code>6</code></em></pre></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-concurrency"></a>Concurrent use of Guacamole connections</h4></div></div></div><p>The database authentication module provides configuration options to restrict
+                    concurrent use of connections or connection groups. These options are set
+                    through <code class="filename">guacamole.properties</code> and specify the default
+                    concurrency policies for connections and connection groups. The values set
+                    through the properties can be overridden later on a per-connection basis using
+                    the administrative interface:</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-default-max-connections: 1
+mysql-default-max-group-connections: 1
+
+# PostgreSQL
+postgresql-default-max-connections: 1
+postgresql-default-max-group-connections: 1
+
+# SQL Server
+sqlserver-default-max-connections: 1
+sqlserver-default-max-group-connections: 1</pre></div><p>These properties are not required, but with the above properties in place,
+                    users attempting to use a connection or group that is already in use will be
+                    denied access. By default, concurrent access is allowed.</p><p>Concurrent access can also be restricted such that a particular user may only
+                    use a connection or group a certain number of times. By default, per-user
+                    concurrent use is limited for connection groups (to avoid allowing a single user
+                    to exhaust the contents of the group) but otherwise unrestricted. This default
+                    behavior can be modified through <code class="filename">guacamole.properties</code> or
+                    the per-connection settings exposed in the administrative interface:</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-default-max-connections-per-user: 0
+mysql-default-max-group-connections-per-user: 0
+
+# PostgreSQL
+postgresql-default-max-connections-per-user: 0
+postgresql-default-max-group-connections-per-user: 0
+
+# SQL Server
+sqlserver-default-max-connections-per-user: 0
+sqlserver-default-max-group-connections-per-user: 0</pre></div><p>If you wish to impose an absolute limit on the number of connections that can
+                    be established through Guacamole, ignoring which users or connections are
+                    involved, this can be done as well. By default, Guacamole will impose no such
+                    limit:</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-absolute-max-connections: 0
+
+# PostgreSQL
+postgresql-absolute-max-connections: 0
+
+# SQL Server
+sqlserver-absolute-max-connections: 0</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-restrict"></a>Restricting authentication to database users only</h3></div></div></div><p>By default, users will be allowed access to Guacamole as long as they are
+                authenticated by at least one extension. If database authentication is in use, and a
+                user is not associated with the database, then that user will be allowed access to
+                Guacamole if another extension grants this access, and will be provided with a view
+                of the data exposed by other extensions for that user account.</p><p>In some situations, such as when <a class="link" href="ldap-auth.html#ldap-and-database" title="Associating LDAP with a database">combining LDAP
+                    with a database</a>, it would be preferable to let the database have the last
+                word regarding whether a user should be allowed into the system: restricting access
+                to only those users which exist in the database, and explicitly denying
+                authentication through all other means unless that user has been associated with the
+                database as well. This behavior can be forced by setting properties which declare
+                that database user accounts are required:</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-user-required: true
+
+# PostgreSQL
+postgresql-user-required: true
+
+# SQL Server
+sqlserver-user-required: true</pre></div><p>With the above properties set, successful authentication attempts for users which
+                are not associated with the database will be vetoed by the database authentication.
+                Guacamole will report that the login is invalid, as if the user does not exist at
+                all.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420848067232"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before the database authentication will take effect. Restart your servlet
+                container and give the new authentication a try.</p><p>
+                </p><div class="important"><h3 class="title">Important</h3><p>You only need to restart your servlet container. <span class="emphasis"><em>You do not need
+                            to restart <span class="package">guacd</span></em></span>.</p><p><span class="package">guacd</span> is completely independent of the web application
+                        and does not deal with <code class="filename">guacamole.properties</code> or the
+                        authentication system in any way. Since you are already restarting the
+                        servlet container, restarting <span class="package">guacd</span> as well technically
+                        won't hurt anything, but doing so is completely pointless.</p></div><p>
+            </p><p>If Guacamole does not come back online after restarting your servlet container,
+                check the logs. Problems in the configuration of the database authentication
+                extension will prevent Guacamole from starting up, and any such errors will be
+                recorded in the logs of your servlet container.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="jdbc-auth-default-user"></a>Logging in</h2></div></div></div><a id="idm46420848059040" class="indexterm"></a><a id="idm46420848058144" class="indexterm"></a><p>The default Guacamole user created by the provided SQL scripts is
+                "<code class="systemitem">guacadmin</code>", with a default password of
+                "<code class="systemitem">guacadmin</code>". Once you have verified that the database
+            authentication is working, <span class="emphasis"><em>you should change your password
+                immediately</em></span>.</p><p>More detailed instructions for managing users and connections is given in <a class="xref" href="administration.html" title="Chapter 16. Administration">Chapter 16, <em>Administration</em></a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="jdbc-auth-schema"></a>Modifying data manually</h2></div></div></div><a id="idm46420848052880" class="indexterm"></a><p>If necessary, it is possible to modify the data backing the authentication module
+            manually by executing SQL statements against the database. In general use, this will not
+            be common, but if you need to bulk-insert a large number of users or connections, or you
+            wish to translate an existing configuration automatically, you will need to know how
+            everything is laid out at a high level.</p><p>This section assumes knowledge of SQL and your chosen database, and that whatever you
+            need to do can be accomplished if only you had high-level information about Guacamole's
+            SQL schema.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-entities"></a>Entities</h3></div></div></div><a id="idm46420848169472" class="indexterm"></a><p>Every user and user group has a corresponding entry in the
+                    <code class="classname">guacamole_entity</code> table which serves as the basis for
+                assignment of a unique name, permissions, as well as relations which are common to
+                both users and groups like group membership. Each entity has a corresponding name
+                which is unique across all other entities of the same type.</p><p>If deleting a user or user group, the corresponding entity should also be deleted.
+                As any user or group which points to the entity will be deleted automatically when
+                the entity is deleted through cascading deletion, <span class="emphasis"><em>it is advisable to use
+                    the entity as the basis for any delete operation</em></span>.</p><p>The <code class="classname">guacamole_entity</code> table contains the following
+                columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The unique integer associated with each entity (user or user group).
+                            This value is generated automatically when a new entry is inserted into
+                            the <code class="classname">guacamole_entity</code> table and is distinct from
+                            the unique integer associated with the user entry in <a class="link" href="jdbc-auth.html#jdbc-auth-schema-users" title="Users"><code class="classname">guacamole_user</code></a> or the user group
+                            entry in <a class="link" href="jdbc-auth.html#jdbc-auth-schema-groups" title="User groups"><code class="classname">guacamole_user_group</code></a>.</p></dd><dt><span class="term"><span class="property">name</span></span></dt><dd><p>The unique name associated with each user or group. This value must be
+                            specified manually, and must be different from any existing user or
+                            group in the table. The name need only be unique relative to the names
+                            of other entities having the same type (a user may have the same name as
+                            a group).</p></dd><dt><span class="term"><span class="property">type</span></span></dt><dd><p>The type of this entity. This can be either <span class="type">USER</span> or
+                                <span class="type">USER_GROUP</span>.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-users"></a>Users</h3></div></div></div><a id="idm46420848154192" class="indexterm"></a><p>Every user has a corresponding entry in the <code class="classname">guacamole_user</code>
+                and <a class="link" href="jdbc-auth.html#jdbc-auth-schema-entities" title="Entities"><code class="classname">guacamole_entity</code></a> tables. Each user has a
+                corresponding unique username, specified via
+                <code class="classname">guacamole_entity</code>, and salted password. The salted password is
+                split into two columns: one containing the salt, and the other containing the
+                password hashed with SHA-256.</p><p>If deleting a user, the <a class="link" href="jdbc-auth.html#jdbc-auth-schema-entities" title="Entities">corresponding
+                    entity</a> should also be deleted. As any user which points to the entity
+                will be deleted automatically when the entity is deleted through cascading deletion,
+                    <span class="emphasis"><em>it is advisable to use the entity as the basis for any delete
+                    operation</em></span>.</p><p>The <code class="classname">guacamole_user</code> table contains the following
+                columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">user_id</span></span></dt><dd><p>The unique integer associated with each user. This value is generated
+                            automatically when a new entry is inserted into the
+                                <code class="classname">guacamole_user</code> table.</p></dd><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                <code class="classname">guacamole_entity</code> entry representing this
+                            user.</p></dd><dt><span class="term"><span class="property">password_hash</span></span></dt><dd><p>The result of hashing the user's password concatenated with the
+                            contents of <span class="property">password_salt</span> using SHA-256. The salt
+                            is appended to the password prior to hashing.</p><p>Although passwords set through Guacamole will always be salted, it is
+                            possible to use unsalted password hashes when inserted manually or
+                            through an external system. If <span class="property">password_salt</span> is
+                                <code class="constant">NULL</code>, the <span class="property">password_hash</span>
+                            will be handled as a simple unsalted hash of the password.</p></dd><dt><span class="term"><span class="property">password_salt</span></span></dt><dd><p>A 32-byte random value. When a new user is created from the web
+                            interface, this value is randomly generated using a
+                            cryptographically-secure random number generator.</p><p>This will always be set for users whose passwords are set through
+                            Guacamole, but it is possible to use unsalted password hashes when
+                            inserted manually or through an external system. If
+                                <span class="property">password_salt</span> is <code class="constant">NULL</code>, the
+                                <span class="property">password_hash</span> will be handled as a simple
+                            unsalted hash of the password.</p></dd><dt><span class="term"><span class="property">password_date</span></span></dt><dd><p>The date (and time) that the password was last changed. When a
+                            password is changed via the Guacamole interface, this value is updated.
+                            This, along with the contents of the
+                                <code class="classname">guacamole_user_password_history</code> table, is
+                            used to enforce password policies.</p></dd><dt><span class="term"><span class="property">disabled</span></span></dt><dd><p>Whether login attempts as this user account should be rejected. If
+                            this column is set to <code class="constant">TRUE</code> or
+                                <code class="constant">1</code>, login attempts by this user will be rejected
+                            as if the user did not exist. By default, user accounts are not
+                            disabled, and login attempts will succeed if the user provides the
+                            correct password.</p></dd><dt><span class="term"><span class="property">expired</span></span></dt><dd><p>If set to <code class="constant">TRUE</code> or <code class="constant">1</code>,
+                            requires that the user reset their password prior to fully logging in.
+                            The user will be presented with a password reset form, and will not be
+                            allowed to log into Guacamole until the password has been changed. By
+                            default, user accounts are not expired, and no password reset will be
+                            required upon login.</p></dd><dt><span class="term"><span class="property">access_window_start</span></span></dt><dd><p>The time of day (not date) after which this user account may be used.
+                            If <code class="constant">NULL</code>, this restriction does not apply. If set to
+                                non-<code class="constant">NULL</code>, attempts to log in after the
+                            specified time will be allowed, while attempts to log in before the
+                            specified time will be denied.</p></dd><dt><span class="term"><span class="property">access_window_end</span></span></dt><dd><p>The time of day (not date) after which this user account may
+                                <span class="emphasis"><em>not</em></span> be used. If <code class="constant">NULL</code>, this
+                            restriction does not apply. If set to non-<code class="constant">NULL</code>,
+                            attempts to log in after the specified time will be denied, while
+                            attempts to log in before the specified time will be allowed.</p></dd><dt><span class="term"><span class="property">valid_from</span></span></dt><dd><p>The date (not time of day) after which this user account may be used.
+                            If <code class="constant">NULL</code>, this restriction does not apply. If set to
+                                non-<code class="constant">NULL</code>, attempts to log in after the
+                            specified date will be allowed, while attempts to log in before the
+                            specified date will be denied.</p></dd><dt><span class="term"><span class="property">valid_until</span></span></dt><dd><p>The date (not time of day) after which this user account may
+                                <span class="emphasis"><em>not</em></span> be used. If <code class="constant">NULL</code>, this
+                            restriction does not apply. If set to non-<code class="constant">NULL</code>,
+                            attempts to log in after the specified date will be denied, while
+                            attempts to log in before the specified date will be allowed.</p></dd><dt><span class="term"><span class="property">timezone</span></span></dt><dd><p>The time zone to use when interpreting the
+                                <span class="property">access_window_start</span>,
+                                <span class="property">access_window_end</span>,
+                                <span class="property">valid_from</span>, and
+                                <span class="property">valid_until</span> values. This value may be any Java
+                                <code class="classname">TimeZone</code> ID, as defined by <a class="link" href="http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html#getAvailableIDs()" target="_top"><code class="methodname">getAvailableIDs()</code></a>, though the
+                            Guacamole management interface will only present a subset of these time
+                            zones.</p></dd><dt><span class="term"><span class="property">full_name</span></span></dt><dd><p>The user's full name. Unlike the username, this name need not be
+                            unique; it is optional and is meant for display purposes only. Defining
+                            this value has no bearing on user identity, which is dictated purely by
+                            the username. User accounts with no associated full name should have
+                            this column set to <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">email_address</span></span></dt><dd><p>The user's email address, if any. This value is optional, need not be
+                            unique relative to other defined users, and is meant for display
+                            purposes only. Defining this value has no bearing on user identity,
+                            which is dictated purely by the username. If the user has no associated
+                            email address, this column should be set to
+                            <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">organization</span></span></dt><dd><p>The name of the organization, company, etc. that the user is
+                            affiliated with. This value is optional and is meant for display
+                            purposes only. Defining this value has no bearing on user identity,
+                            which is dictated purely by the username. Users with no associated
+                            organization should have this column set to
+                            <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">organizational_role</span></span></dt><dd><p>The role or title of the user at the organization described by the
+                                <span class="property">organization</span> column. This value is optional and
+                            is used for display purposes only. Defining this value has no bearing on
+                            user identity, which is dictated purely by the username. Users with no
+                            associated organization (or specific role/title at that organization)
+                            should have this column set to <code class="constant">NULL</code>.</p></dd></dl></div><div class="important"><h3 class="title">Important</h3><p>If you choose to manually set unsalted password hashes, please be sure you
+                    understand the security implications of doing so.</p><p>In the event that your database is compromised, finding the password for a
+                        <span class="emphasis"><em>salted</em></span> hash is computationally infeasible, but finding
+                    the password for an <span class="emphasis"><em>unsalted</em></span> hash is often not. In many
+                    cases, the password which corresponds to an unsalted hash can be found simply by
+                    entering the hash into a search engine like Google.</p></div><p>If creating a user manually, the main complication is the salt, which must be
+                determined before the <span class="command"><strong>INSERT</strong></span> statement can be constructed, but
+                this can be dealt with using variables. For MySQL:</p><div class="informalexample"><pre class="programlisting">-- Generate salt
+SET @salt = UNHEX(SHA2(UUID(), 256));
+
+-- Create base entity entry for user
+INSERT INTO guacamole_entity (name, type)
+VALUES ('<em class="replaceable"><code>myuser</code></em>', 'USER');
+
+-- Create user and hash password with salt
+INSERT INTO guacamole_user (
+    entity_id,
+    password_salt,
+    password_hash,
+    password_date
+)
+SELECT
+    entity_id,
+    @salt,
+    UNHEX(SHA2(CONCAT('<em class="replaceable"><code>mypassword</code></em>', HEX(@salt)), 256)),
+    CURRENT_TIMESTAMP
+FROM guacamole_entity
+WHERE
+    name = '<em class="replaceable"><code>myuser</code></em>'
+    AND type = 'USER';</pre></div><p>This sort of statement is useful for both creating new users or for changing
+                passwords, especially if all administrators have forgotten theirs.</p><p>If you are not using MySQL, or you are using a version of MySQL that lacks the
+                    <code class="methodname">SHA2</code> function, you will need to calculate the SHA-256
+                value manually (by using the <span class="command"><strong>sha256sum</strong></span> command, for
+                example).</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-password-history"></a>Password history</h4></div></div></div><a id="idm46420848519264" class="indexterm"></a><p>When a user's password is changed, a copy of the previous password's hash and
+                    salt is made within the <code class="classname">guacamole_user_password_history</code>.
+                    Each entry in this table is associated with the user whose password changed,
+                    along with the date that password first applied.</p><p>Old entries within this table are automatically deleted on a per-user basis
+                    depending on the requirements of the password policy. For example, if the
+                    password policy has been configured to require that users not reuse any of their
+                    previous six passwords, then there will be no more than six entries in this
+                    table for each user.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">password_history_id</span></span></dt><dd><p>The unique integer associated with each password history record.
+                                This value is generated automatically when a new entry is inserted
+                                into the <code class="classname">guacamole_user_password_history</code>
+                                table.</p></dd><dt><span class="term"><span class="property">user_id</span></span></dt><dd><p>The value of the <span class="property">user_id</span> column from the
+                                entry in <code class="classname">guacamole_user</code> associated with the
+                                user who previously had this password.</p></dd><dt><span class="term"><span class="property">password_hash</span></span></dt><dd><p>The hashed password specified within the
+                                    <span class="property">password_hash</span> column of
+                                    <code class="classname">guacamole_user</code> prior to the password
+                                being changed.</p><p>In most cases, this will be a salted hash, though it is possible
+                                to force the use of unsalted hashes when making changes to the
+                                database manually or through an external system.</p></dd><dt><span class="term"><span class="property">password_salt</span></span></dt><dd><p>The salt value specified within the
+                                    <span class="property">password_salt</span> column of
+                                    <code class="classname">guacamole_user</code> prior to the password
+                                being changed.</p><p>This will always be set for users whose passwords are set through
+                                Guacamole, but it is possible to use unsalted password hashes when
+                                inserted manually or through an external system, in which case this
+                                may be <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">password_date</span></span></dt><dd><p>The date (and time) that the password was set. The time that the
+                                password ceased being used is recorded either by the password_date
+                                of the next related entry in
+                                    <code class="classname">guacamole_user_password_history</code> or
+                                    <span class="property">password_date</span> of
+                                    <code class="classname">guacamole_user</code> (if there is no such
+                                history entry).</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-login-history"></a>Login history</h4></div></div></div><a id="idm46420848325632" class="indexterm"></a><p>When a user logs in or out, a corresponding entry in the
+                        <code class="classname">guacamole_user_history</code> table is created or updated
+                    respectively. Each entry is associated with the user that logged in and the time
+                    their session began. If the user has logged out, the time their session ended is
+                    also stored.</p><p>It is very unlikely that a user will need to update this table, but knowing
+                    the structure is potentially useful if you wish to generate a report of
+                    Guacamole usage. The <code class="classname">guacamole_user_history</code> table has the
+                    following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">history_id</span></span></dt><dd><p>The unique integer associated with each history record. This value
+                                is generated automatically when a new entry is inserted into the
+                                    <code class="classname">guacamole_user_history</code> table.</p></dd><dt><span class="term"><span class="property">user_id</span></span></dt><dd><p>The value of the <span class="property">user_id</span> from the entry in
+                                    <code class="classname">guacamole_user</code> associated with the user
+                                that logged in. If the user no longer exists, this will be
+                                    <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">username</span></span></dt><dd><p>The username associated with the user at the time that they logged
+                                in. This username value is not guaranteed to uniquely identify a
+                                user, as the original user may be subsequently renamed or
+                                deleted.</p></dd><dt><span class="term"><span class="property">remote_host</span></span></dt><dd><p>The hostname or IP address of the machine that the user logged in
+                                from, if known. If unknown, this will be
+                                <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">start_date</span></span></dt><dd><p>The time at which the user logged in. Despite its name, this
+                                column also stores time information in addition to the date.</p></dd><dt><span class="term"><span class="property">end_date</span></span></dt><dd><p>The time at which the user logged out. If the user is still
+                                active, the value in this column will be <code class="constant">NULL</code>.
+                                Despite its name, this column also stores time information in
+                                addition to the date.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-groups"></a>User groups</h3></div></div></div><a id="idm46420847186848" class="indexterm"></a><p>Similar to <a class="link" href="jdbc-auth.html#jdbc-auth-schema-users" title="Users">users</a>, every user group
+                has a corresponding entry in the <code class="classname">guacamole_user_group</code> and
+                    <a class="link" href="jdbc-auth.html#jdbc-auth-schema-entities" title="Entities"><code class="classname">guacamole_entity</code></a> tables. Each user group has
+                a corresponding unique name specified via
+                <code class="classname">guacamole_entity</code>.</p><p>If deleting a user group, the <a class="link" href="jdbc-auth.html#jdbc-auth-schema-entities" title="Entities">corresponding entity</a> should also be deleted. As any user group which
+                points to the entity will be deleted automatically when the entity is deleted
+                through cascading deletion, <span class="emphasis"><em>it is advisable to use the entity as the basis
+                    for any delete operation</em></span>.</p><p>The <code class="classname">guacamole_user_group</code> table contains the following
+                columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">user_group_id</span></span></dt><dd><p>The unique integer associated with each user group. This value is
+                            generated automatically when a new entry is inserted into the
+                                <code class="classname">guacamole_user_group</code> table.</p></dd><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                <code class="classname">guacamole_entity</code> entry representing this user
+                            group.</p></dd><dt><span class="term"><span class="property">disabled</span></span></dt><dd><p>Whether membership within this group should be taken into account when
+                            determining the permissions granted to a particular user. If this column
+                            is set to <code class="constant">TRUE</code> or <code class="constant">1</code>,
+                            membership in this group will have no effect on user permissions,
+                            whether those permissions are granted to this group directly or
+                            indirectly through the groups that this group is a member of. By
+                            default, user groups are not disabled, and permissions granted to a user
+                            through the group will be taken into account.</p></dd></dl></div><a id="idm46420847170544" class="indexterm"></a><p>Membership within a user group is dictated through entries in the
+                    <code class="classname">guacamole_user_group_member</code> table. As both users and user
+                groups may be members of groups, each entry associates the containing group with the
+                entity of the member.</p><p>The <code class="classname">guacamole_user_group_member</code> table contains the
+                following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">user_group_id</span></span></dt><dd><p>The <span class="property">user_group_id</span> value of the user group having
+                            the specified member.</p></dd><dt><span class="term"><span class="property">member_entity_id</span></span></dt><dd><p>The <span class="property">entity_id</span> value of the user or user group
+                            that is a member of the specified group.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-connections"></a>Connections and parameters</h3></div></div></div><a id="idm46420847876752" class="indexterm"></a><a id="idm46420847875728" class="indexterm"></a><p>Each connection has an entry in the <code class="classname">guacamole_connection</code>
+                table, with a one-to-many relationship to parameters, stored as name/value pairs in
+                the <code class="classname">guacamole_connection_parameter</code> table.</p><p>The <code class="classname">guacamole_connection</code> table is simply a pairing of a
+                unique and descriptive name with the protocol to be used for the connection. It
+                contains the following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">connection_id</span></span></dt><dd><p>The unique integer associated with each connection. This value is
+                            generated automatically when a new entry is inserted into the
+                                <code class="classname">guacamole_connection</code> table.</p></dd><dt><span class="term"><span class="property">connection_name</span></span></dt><dd><p>The unique name associated with each connection. This value must be
+                            specified manually, and must be different from any existing connection
+                            name in the same connection group. References to connections in other
+                            tables use the value from <span class="property">connection_id</span>, not
+                                <span class="property">connection_name</span>.</p></dd><dt><span class="term"><span class="property">protocol</span></span></dt><dd><p>The protocol to use with this connection. This is the name of the
+                            protocol that should be sent to <span class="package">guacd</span> when
+                            connecting, for example "<code class="constant">vnc</code>" or
+                                "<code class="constant">rdp</code>".</p></dd><dt><span class="term"><span class="property">parent_id</span></span></dt><dd><p>The unique integer associated with the connection group containing
+                            this connection, or <code class="constant">NULL</code> if this connection is
+                            within the root group.</p></dd><dt><span class="term"><span class="property">max_connections</span></span></dt><dd><p>The maximum number of concurrent connections to allow to this
+                            connection at any one time <span class="emphasis"><em>regardless of user</em></span>.
+                                <code class="constant">NULL</code> will use the default value specified in
+                                <code class="filename">guacamole.properties</code> with the
+                                <span class="property">mysql-default-max-connections</span> or
+                                <span class="property">postgresql-default-max-connections</span> properties,
+                            and a value of <code class="constant">0</code> denotes unlimited.</p></dd><dt><span class="term"><span class="property">max_connections_per_user</span></span></dt><dd><p>The maximum number of concurrent connections to allow to this
+                            connection at any one time <span class="emphasis"><em>from a single user</em></span>.
+                                <code class="constant">NULL</code> will use the default value specified in
+                                <code class="filename">guacamole.properties</code> with the
+                                <span class="property">mysql-default-max-connections</span> or
+                                <span class="property">postgresql-default-max-connections</span> properties,
+                            and a value of <code class="constant">0</code> denotes unlimited.</p></dd><dt><span class="term"><span class="property">proxy_hostname</span></span></dt><dd><p>The hostname or IP address of the Guacamole proxy daemon
+                                (<span class="package">guacd</span>) which should be used for this connection.
+                            If <code class="constant">NULL</code>, the value defined with the
+                                <span class="property">guacd-hostname</span> property in
+                                <code class="filename">guacamole.properties</code> will be used.</p></dd><dt><span class="term"><span class="property">proxy_port</span></span></dt><dd><p>The TCP port number of the Guacamole proxy daemon
+                                (<span class="package">guacd</span>) which should be used for this connection.
+                            If <code class="constant">NULL</code>, the value defined with the
+                                <span class="property">guacd-port</span> property in
+                                <code class="filename">guacamole.properties</code> will be used.</p></dd><dt><span class="term"><span class="property">proxy_encryption_method</span></span></dt><dd><p>The encryption method which should be used when communicating with the
+                            Guacamole proxy daemon (<span class="package">guacd</span>) for this connection.
+                            This can be either <code class="constant">NONE</code>, for no encryption, or
+                                <code class="constant">SSL</code>, for SSL/TLS. If <code class="constant">NULL</code>,
+                            the encryption method will be dictated by the
+                                <span class="property">guacd-ssl</span> property in
+                                <code class="filename">guacamole.properties</code>.</p></dd><dt><span class="term"><span class="property">connection_weight</span></span></dt><dd><p>The weight for a connection, used for applying weighted load balancing
+                        algorithms when connections are part of a BALANCING group.  This is an
+                        integer value, where values <code class="constant">1</code> or greater will weight 
+                        the connection relative to other connections in that group, and values 
+                        below <code class="constant">1</code> cause the connection to be disabled in the 
+                        group.  If <code class="constant">NULL</code>, the connection will be assigned a 
+                        default weight of <code class="constant">1</code>.</p></dd><dt><span class="term"><span class="property">failover_only</span></span></dt><dd><p>Whether this connection should be used for failover situations only,
+                            also known as a "hot spare". If this column is set to
+                                <code class="constant">TRUE</code> or <code class="constant">1</code>, this connection
+                            will be used only when another connection within the same
+                                <span class="type">BALANCING</span> connection group has failed due to an error
+                            within the remote desktop. </p><p><span class="emphasis"><em>Connection groups will always transparently switch to the
+                                next available connection in the event of remote desktop failure,
+                                regardless of the value of this column.</em></span> This column
+                            simply dictates whether a particular connection should be
+                                <span class="emphasis"><em>reserved</em></span> for such situations, and left unused
+                            otherwise.</p><p>This column only has an effect on connections within
+                                <span class="type">BALANCING</span> groups.</p></dd></dl></div><p>As there are potentially multiple parameters per connection, where the names of
+                each parameter are completely arbitrary and determined only by the protocol in use,
+                every parameter for a given connection has an entry in table
+                    <code class="classname">guacamole_connection_parameter</code> table associated with its
+                corresponding connection. This table contains the following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">connection_id</span></span></dt><dd><p>The <span class="property">connection_id</span> value from the connection this
+                            parameter is for.</p></dd><dt><span class="term"><span class="property">parameter_name</span></span></dt><dd><p>The name of the parameter to set. This is the name listed in the
+                            documentation for the protocol specified in the associated
+                            connection.</p></dd><dt><span class="term"><span class="property">parameter_value</span></span></dt><dd><p>The value to assign to the parameter named. While this value is an
+                            arbitrary string, it must conform to the requirements of the protocol as
+                            documented for the connection to be successful.</p></dd></dl></div><p>Adding a connection and corresponding parameters is relatively easy compared to
+                adding a user as there is no salt to generate nor password to hash:</p><div class="informalexample"><pre class="programlisting">-- Create connection
+INSERT INTO guacamole_connection (connection_name, protocol) VALUES ('<em class="replaceable"><code>test</code></em>', '<em class="replaceable"><code>vnc</code></em>');
+
+-- Determine the connection_id
+SELECT * FROM guacamole_connection WHERE connection_name = '<em class="replaceable"><code>test</code></em>' AND parent_id IS NULL;
+
+-- Add parameters to the new connection
+INSERT INTO guacamole_connection_parameter VALUES (<em class="replaceable"><code>1</code></em>, 'hostname', '<em class="replaceable"><code>localhost</code></em>');
+INSERT INTO guacamole_connection_parameter VALUES (<em class="replaceable"><code>1</code></em>, 'port', '<em class="replaceable"><code>5901</code></em>');</pre></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-connection-history"></a>Usage history</h4></div></div></div><a id="idm46420848249248" class="indexterm"></a><p>When a connection is initiated or terminated, a corresponding entry in the
+                        <code class="classname">guacamole_connection_history</code> table is created or
+                    updated respectively. Each entry is associated with the user using the
+                    connection, the connection itself, the  <a class="link" href="jdbc-auth.html#jdbc-auth-schema-sharing-profiles" title="Sharing profiles and parameters">sharing profile</a> in use
+                    (if the connection is being shared), and the time the connection started. If the
+                    connection has ended, the end time is also stored.</p><p>It is very unlikely that a user will need to update this table, but knowing
+                    the structure is potentially useful if you wish to generate a report of
+                    Guacamole usage. The <code class="classname">guacamole_connection_history</code> table
+                    has the following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">history_id</span></span></dt><dd><p>The unique integer associated with each history record. This value
+                                is generated automatically when a new entry is inserted into the
+                                    <code class="classname">guacamole_connection_history</code>
+                                table.</p></dd><dt><span class="term"><span class="property">user_id</span></span></dt><dd><p>The value of the <span class="property">user_id</span> from the entry in
+                                    <code class="classname">guacamole_user</code> associated with the user
+                                using the connection. If the user no longer exists, this will be
+                                    <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">username</span></span></dt><dd><p>The username associated with the user at the time that they used
+                                the connection. This username value is not guaranteed to uniquely
+                                identify a user, as the original user may be subsequently renamed or
+                                deleted.</p></dd><dt><span class="term"><span class="property">connection_id</span></span></dt><dd><p>The value of the <span class="property">connection_id</span> from the entry
+                                in <code class="classname">guacamole_connection</code> associated the
+                                connection being used. If the connection associated with the history
+                                record no longer exists, this will be
+                                <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">connection_name</span></span></dt><dd><p>The name associated with the connection at the time that it was
+                                used.</p></dd><dt><span class="term"><span class="property">sharing_profile_id</span></span></dt><dd><p>The value of the <span class="property">sharing_profile_id</span> from the
+                                entry in <code class="classname">guacamole_sharing_profile</code> associated
+                                the sharing profile being used to access the connection. If the
+                                connection is not being shared (no sharing profile is being used),
+                                or if the sharing profile associated with the history record no
+                                longer exists, this will be <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">sharing_profile_name</span></span></dt><dd><p>The name associated with the sharing profile being used to access
+                                the connection at the time this history entry was recorded. If the
+                                connection is not being shared, this will be
+                                    <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">start_date</span></span></dt><dd><p>The time at which the connection was started by the user
+                                specified. Despite its name, this column also stores time
+                                information in addition to the date.</p></dd><dt><span class="term"><span class="property">end_date</span></span></dt><dd><p>The time at which the connection ended. If the connection is still
+                                active, the value in this column will be <code class="constant">NULL</code>.
+                                Despite its name, this column also stores time information in
+                                addition to the date.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-sharing-profiles"></a>Sharing profiles and parameters</h3></div></div></div><a id="idm46420847600832" class="indexterm"></a><a id="idm46420847599792" class="indexterm"></a><p>Each sharing profile has an entry in the
+                    <code class="classname">guacamole_sharing_profile</code> table, with a one-to-many
+                relationship to parameters, stored as name/value pairs in the
+                    <code class="classname">guacamole_sharing_profile_parameter</code> table.</p><p>The <code class="classname">guacamole_sharing_profile</code> table is simply a pairing of
+                a unique and descriptive name with the connection that can be shared using the
+                sharing profile, also known as the "primary connection". It contains the following
+                columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">sharing_profile_id</span></span></dt><dd><p>The unique integer associated with each sharing profile. This value is
+                            generated automatically when a new entry is inserted into the
+                                <code class="classname">guacamole_sharing_profile</code> table.</p></dd><dt><span class="term"><span class="property">sharing_profile_name</span></span></dt><dd><p>The unique name associated with each sharing profile. This value must
+                            be specified manually, and must be different from any existing sharing
+                            profile name associated with the same primary connection. References to
+                            sharing profiles in other tables use the value from
+                                <span class="property">sharing_profile_id</span>, not
+                                <span class="property">sharing_profile_name</span>.</p></dd><dt><span class="term"><span class="property">primary_connection_id</span></span></dt><dd><p>The unique integer associated with the primary connection. The
+                            "primary connection" is the connection which can be shared using this
+                            sharing profile.</p></dd></dl></div><p>As there are potentially multiple parameters per sharing profile, where the names
+                of each parameter are completely arbitrary and determined only by the protocol
+                associated with the primary connection, every parameter for a given sharing profile
+                has an entry in the <code class="classname">guacamole_sharing_profile_parameter</code> table
+                associated with its corresponding sharing profile. This table contains the following
+                columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">sharing_profile_id</span></span></dt><dd><p>The <span class="property">sharing_profile_id</span> value from the entry in
+                            the <code class="classname">guacamole_sharing_profile</code> table for the
+                            sharing profile this parameter applies to.</p></dd><dt><span class="term"><span class="property">parameter_name</span></span></dt><dd><p>The name of the parameter to set. This is the name listed in the
+                            documentation for the protocol of the primary connection of the
+                            associated sharing profile.</p></dd><dt><span class="term"><span class="property">parameter_value</span></span></dt><dd><p>The value to assign to the parameter named. While this value is an
+                            arbitrary string, it must conform to the requirements of the protocol as
+                            documented.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-connection-groups"></a>Connection groups</h3></div></div></div><a id="idm46420847350912" class="indexterm"></a><p>Each connection group has an entry in the
+                    <code class="classname">guacamole_connection_group</code> table, with a one-to-many
+                relationship to other groups and connections.</p><p>The <code class="classname">guacamole_connection_group</code> table is simply a pairing of
+                a unique and descriptive name with a group type, which can be either
+                    <span class="type">ORGANIZATIONAL</span> or <span class="type">BALANCING</span>. It contains the following
+                columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">connection_group_id</span></span></dt><dd><p>The unique integer associated with each connection group. This value
+                            is generated automatically when a new entry is inserted into the
+                                <code class="classname">guacamole_connection_group</code> table.</p></dd><dt><span class="term"><span class="property">connection_group_name</span></span></dt><dd><p>The unique name associated with each connection group. This value must
+                            be specified manually, and must be different from any existing
+                            connection group name in the same connection group. References to
+                            connections in other tables use the value from
+                                <span class="property">connection_group_id</span>, not
+                                <span class="property">connection_group_name</span>.</p></dd><dt><span class="term"><span class="property">type</span></span></dt><dd><p>The type of this connection group. This can be either
+                                <span class="type">ORGANIZATIONAL</span> or <span class="type">BALANCING</span>.</p></dd><dt><span class="term"><span class="property">parent_id</span></span></dt><dd><p>The unique integer associated with the connection group containing
+                            this connection group, or <code class="constant">NULL</code> if this connection
+                            group is within the root group.</p></dd><dt><span class="term"><span class="property">max_connections</span></span></dt><dd><p>The maximum number of concurrent connections to allow to this
+                            connection group at any one time <span class="emphasis"><em>regardless of
+                            user</em></span>. <code class="constant">NULL</code> will use the default value
+                            specified in <code class="filename">guacamole.properties</code> with the
+                                <span class="property">mysql-default-max-connections</span> or
+                                <span class="property">postgresql-default-max-connections</span> properties,
+                            and a value of <code class="constant">0</code> denotes unlimited. This only has
+                            an effect on <span class="type">BALANCING</span> groups.</p></dd><dt><span class="term"><span class="property">max_connections_per_user</span></span></dt><dd><p>The maximum number of concurrent connections to allow to this
+                            connection group at any one time <span class="emphasis"><em>from a single
+                            user</em></span>. <code class="constant">NULL</code> will use the default value
+                            specified in <code class="filename">guacamole.properties</code> with the
+                                <span class="property">mysql-default-max-connections</span> or
+                                <span class="property">postgresql-default-max-connections</span> properties,
+                            and a value of <code class="constant">0</code> denotes unlimited. This only has
+                            an effect on <span class="type">BALANCING</span> groups.</p></dd><dt><span class="term"><span class="property">enable_session_affinity</span></span></dt><dd><p>Whether session affinity should apply to this connection group. If
+                            this column is set to <code class="constant">TRUE</code> or
+                                <code class="constant">1</code>, users will be consistently routed to the
+                            same underlying connection until they log out. The normal balancing
+                            behavior will only apply for each user's first connection attempt during
+                            any one Guacamole session. By default, session affinity is not enabled,
+                            and connections will always be balanced across the entire connection
+                            group. This only has an effect on <span class="type">BALANCING</span> groups.</p></dd></dl></div><p>Adding a connection group is even simpler than adding a new connection as there
+                are no associated parameters stored in a separate table:</p><div class="informalexample"><pre class="programlisting">-- Create connection group
+INSERT INTO guacamole_connection_group (connection_group_name, type)
+     VALUES ('<em class="replaceable"><code>test</code></em>', '<em class="replaceable"><code>ORGANIZATIONAL</code></em>');</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-permissions"></a>Permissions</h3></div></div></div><p>There are several permissions tables in the schema which correspond to the types
+                of permissions in Guacamole's authentication model: system permissions, which
+                control operations that affect the system as a whole, and permissions which control
+                operations that affect specific objects within the system, such as users,
+                connections, or groups.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-system-permissions"></a>lSystem permissions</h4></div></div></div><a id="idm46420847315120" class="indexterm"></a><p>System permissions are defined by entries in the
+                        <code class="classname">guacamole_system_permission</code> table. Each entry grants
+                    permission for a specific user or user group to perform a specific system
+                    operation.</p><p>The <code class="classname">guacamole_system_permission</code> table contains the
+                    following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                entry associated with the user or user group owning this
+                                permission.</p></dd><dt><span class="term"><span class="property">permission</span></span></dt><dd><p>The permission being granted. This column can have one of six
+                                possible values: <code class="constant">ADMINISTER</code>, which grants the
+                                ability to administer the entire system (essentially a wildcard
+                                permission), <code class="constant">CREATE_CONNECTION</code>, which grants
+                                the ability to create connections,
+                                    <code class="constant">CREATE_CONNECTION_GROUP</code>, which grants the
+                                ability to create connections groups,
+                                    <code class="constant">CREATE_SHARING_PROFILE</code>, which grants the
+                                ability to create sharing profiles,
+                                <code class="constant">CREATE_USER</code>, which grants the ability to create
+                                users, or <code class="constant">CREATE_USER_GROUP</code>, which grants the
+                                ability to create user groups.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-user-permissions"></a>User permissions</h4></div></div></div><a id="idm46420847550192" class="indexterm"></a><p>User permissions are defined by entries in the
+                        <code class="classname">guacamole_user_permission</code> table. Each entry grants
+                    permission for a specific user or user group to perform a specific operation on
+                    an existing user.</p><p>The <code class="classname">guacamole_user_permission</code> table contains the
+                    following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                entry associated with the user or user group owning this
+                                permission.</p></dd><dt><span class="term"><span class="property">affected_user_id</span></span></dt><dd><p>The value of the <span class="property">user_id</span> column of the entry
+                                associated with the user <span class="emphasis"><em>affected</em></span> by this
+                                permission. This is the user that would be the object of the
+                                operation represented by this permission.</p></dd><dt><span class="term"><span class="property">permission</span></span></dt><dd><p>The permission being granted. This column can have one of four
+                                possible values: <code class="constant">ADMINISTER</code>, which grants the
+                                ability to add or remove permissions which affect the user,
+                                    <code class="constant">READ</code>, which grants the ability to read data
+                                associated with the user, <code class="constant">UPDATE</code>, which grants
+                                the ability to update data associated with the user, or
+                                    <code class="constant">DELETE</code>, which grants the ability to delete
+                                the user.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-group-permissions"></a>User group permissions</h4></div></div></div><a id="idm46420847535344" class="indexterm"></a><p>User group permissions are defined by entries in the
+                        <code class="classname">guacamole_user_group_permission</code> table. Each entry
+                    grants permission for a specific user or user group to perform a specific
+                    operation on an existing user group.</p><p>The <code class="classname">guacamole_user_group_permission</code> table contains the
+                    following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                entry associated with the user or user group owning this
+                                permission.</p></dd><dt><span class="term"><span class="property">affected_user_group_id</span></span></dt><dd><p>The value of the <span class="property">user_group_id</span> column of the
+                                entry associated with the user group <span class="emphasis"><em>affected</em></span>
+                                by this permission. This is the user group that would be the object
+                                of the operation represented by this permission.</p></dd><dt><span class="term"><span class="property">permission</span></span></dt><dd><p>The permission being granted. This column can have one of four
+                                possible values: <code class="constant">ADMINISTER</code>, which grants the
+                                ability to add or remove permissions which affect the user group,
+                                    <code class="constant">READ</code>, which grants the ability to read data
+                                associated with the user group, <code class="constant">UPDATE</code>, which
+                                grants the ability to update data associated with the user group, or
+                                    <code class="constant">DELETE</code>, which grants the ability to delete
+                                the user group.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-connection-permissions"></a>Connection permissions</h4></div></div></div><a id="idm46420847923264" class="indexterm"></a><p>Connection permissions are defined by entries in the
+                        <code class="classname">guacamole_connection_permission</code> table. Each entry
+                    grants permission for a specific user or user group to perform a specific
+                    operation on an existing connection.</p><p>The <code class="classname">guacamole_connection_permission</code> table contains the
+                    following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                entry associated with the user or user group owning this
+                                permission.</p></dd><dt><span class="term"><span class="property">connection_id</span></span></dt><dd><p>The value of the <span class="property">connection_id</span> column of the
+                                entry associated with the connection affected by this permission.
+                                This is the connection that would be the object of the operation
+                                represented by this permission.</p></dd><dt><span class="term"><span class="property">permission</span></span></dt><dd><p>The permission being granted. This column can have one of four
+                                possible values: <code class="constant">ADMINISTER</code>, which grants the
+                                ability to add or remove permissions which affect the connection,
+                                    <code class="constant">READ</code>, which grants the ability to read data
+                                associated with the connection (a prerequisite for connecting),
+                                    <code class="constant">UPDATE</code>, which grants the ability to update
+                                data associated with the connection, or <code class="constant">DELETE</code>,
+                                which grants the ability to delete the connection.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-sharing-profile-permissions"></a>Sharing profile permissions</h4></div></div></div><a id="idm46420847908848" class="indexterm"></a><p>Sharing profile permissions are defined by entries in the
+                        <code class="classname">guacamole_sharing_profile_permission</code> table. Each
+                    entry grants permission for a specific user or user group to perform a specific
+                    operation on an existing sharing profile.</p><p>The <code class="classname">guacamole_sharing_profile_permission</code> table contains
+                    the following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                entry associated with the user or user group owning this
+                                permission.</p></dd><dt><span class="term"><span class="property">sharing_profile_id</span></span></dt><dd><p>The value of the <span class="property">sharing_profile_id</span> column of
+                                the entry associated with the sharing profile affected by this
+                                permission. This is the sharing profile that would be the object of
+                                the operation represented by this permission.</p></dd><dt><span class="term"><span class="property">permission</span></span></dt><dd><p>The permission being granted. This column can have one of four
+                                possible values: <code class="constant">ADMINISTER</code>, which grants the
+                                ability to add or remove permissions which affect the sharing
+                                profile, <code class="constant">READ</code>, which grants the ability to read
+                                data associated with the sharing profile (a prerequisite for using
+                                the sharing profile to share an active connection),
+                                    <code class="constant">UPDATE</code>, which grants the ability to update
+                                data associated with the sharing profile, or
+                                    <code class="constant">DELETE</code>, which grants the ability to delete
+                                the sharing profile.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-connection-group-permissions"></a>Connection group permissions</h4></div></div></div><a id="idm46420847894128" class="indexterm"></a><p>Connection group permissions are defined by entries in the
+                        <code class="classname">guacamole_connection_group_permission</code> table. Each
+                    entry grants permission for a specific user or user group to perform a specific
+                    operation on an existing connection group.</p><p>The <code class="classname">guacamole_connection_group_permission</code> table
+                    contains the following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                entry associated with the user or user group owning this
+                                permission.</p></dd><dt><span class="term"><span class="property">connection_group_id</span></span></dt><dd><p>The value of the <span class="property">connection_group_id</span> column
+                                of the entry associated with the connection group affected by this
+                                permission. This is the connection group that would be the object of
+                                the operation represented by this permission.</p></dd><dt><span class="term"><span class="property">permission</span></span></dt><dd><p>The permission being granted. This column can have one of four
+                                possible values: <code class="constant">ADMINISTER</code>, which grants the
+                                ability to add or remove permissions which affect the connection
+                                group, <code class="constant">READ</code>, which grants the ability to read
+                                data associated with the connection group,
+                                    <code class="constant">UPDATE</code>, which grants the ability to update
+                                data associated with the connection group, or
+                                    <code class="constant">DELETE</code>, which grants the ability to delete
+                                the connection group (and implicitly its contents).</p></dd></dl></div></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="configuring-guacamole.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ldap-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 5. Configuring Guacamole </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 7. LDAP authentication</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/ldap-auth.html b/doc/1.1.0/gug/ldap-auth.html
new file mode 100644
index 0000000..8d76903
--- /dev/null
+++ b/doc/1.1.0/gug/ldap-auth.html
@@ -0,0 +1,305 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 7. LDAP authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="jdbc-auth.html" title="Chapter 6. Database authentication" /><link rel="next" href="duo-auth.html" title="Chapter 8. Duo two-factor authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 7. LDAP authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="jdbc-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="duo-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="ldap-auth"></a>Chapter 7. LDAP authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="ldap-auth.html#ldap-architecture">How Guacamole uses LDAP</a></span></dt><dt><span class="section"><a href="ldap-auth.html#ldap-downloading">Downloading the LDAP extension</a></span></dt><dt><span class="section"><a href="ldap-auth.html#ldap-schema-changes">Preparing your LDAP directory (optional)</a></span></dt><dd><dl><dt><span class="section"><a href="ldap-auth.html#idm46420849398608">Applying the schema changes to OpenLDAP</a></span></dt></dl></dd><dt><span class="section"><a href="ldap-auth.html#ldap-and-database">Associating LDAP with a database</a></span></dt><dt><span class="section"><a href="ldap-auth.html#installing-ldap-auth">Installing LDAP authentication</a></span></dt><dd><dl><dt><span class="section"><a href="ldap-auth.html#guac-ldap-config">Configuring Guacamole for LDAP</a></span></dt><dt><span class="section"><a href="ldap-auth.html#idm46420847197056">Completing the installation</a></span></dt></dl></dd><dt><span class="section"><a href="ldap-auth.html#ldap-auth-schema">The LDAP schema</a></span></dt><dd><dl><dt><span class="section"><a href="ldap-auth.html#idm46420848077040">Users</a></span></dt><dt><span class="section"><a href="ldap-auth.html#idm46420848075728">Connections and parameters</a></span></dt></dl></dd></dl></div><a id="idm46420848526848" class="indexterm"></a><p>Guacamole supports LDAP authentication via an extension available from the main project
+        website. This extension allows users and connections to be stored directly within an LDAP
+        directory. If you have a centralized authentication system that uses LDAP, Guacamole's LDAP
+        support can be a good way to allow your users to use their existing usernames and passwords
+        to log into Guacamole.</p><p>To use the LDAP authentication extension, you will need:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>An LDAP directory as storage for all authentication data, such as OpenLDAP.</p></li><li class="listitem"><p>The ability to modify the schema of your LDAP directory.</p></li></ol></div><p>The instructions here assume you already have an LDAP directory installed and working, and
+        do not cover the initial setup of such a directory.</p><div class="important"><h3 class="title">Important</h3><p>This chapter involves modifying the contents of <code class="varname">GUACAMOLE_HOME</code> -
+            the Guacamole configuration directory. If you are unsure where
+                <code class="varname">GUACAMOLE_HOME</code> is located on your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before proceeding.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ldap-architecture"></a>How Guacamole uses LDAP</h2></div></div></div><p>If the LDAP extension is installed, Guacamole will authenticate users against your
+            LDAP server by attempting a bind as that user. The given username and password will be
+            submitted to the LDAP server during the bind attempt.</p><p>If the bind attempt is successful, the set of available Guacamole connections is
+            queried from the LDAP directory by executing an LDAP query as the bound user. Each
+            Guacamole connection is represented within the directory as a special type of group:
+                <code class="classname">guacConfigGroup</code>. Attributes associated with the group define
+            the protocol and parameters of the connection, and users are allowed access to the
+            connection only if they are associated with that group.</p><p>This architecture has a number of benefits:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Your users can use their existing usernames and passwords to log into
+                    Guacamole.</p></li><li class="listitem"><p>You can manage Guacamole connections using the same tool that you already use
+                    to manage your LDAP directory, such as <a class="link" href="https://directory.apache.org/studio/" target="_top">Apache Directory
+                        Studio</a>.</p></li><li class="listitem"><p>Existing security restrictions can limit visibility/accessibility of Guacamole
+                    connections.</p></li><li class="listitem"><p>Access to connections can easily be granted and revoked, as each connection is
+                    represented by a group.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>Though Guacamole connections can be stored within the LDAP directory, this is not
+                required. Connection data can alternatively be stored within a database like MySQL
+                or PostgreSQL as long as the LDAP username matches the username of the database
+                user. Configuring Guacamole to use a database for authentication or connection
+                storage is covered in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a> and later in this chapter in <a class="xref" href="ldap-auth.html#ldap-and-database" title="Associating LDAP with a database">the section called “Associating LDAP with a database”</a>.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ldap-downloading"></a>Downloading the LDAP extension</h2></div></div></div><p>The LDAP authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The LDAP authentication extension is packaged as a <code class="filename">.tar.gz</code> file
+            containing:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="filename">guacamole-auth-ldap-1.1.0.jar</code></span></dt><dd><p>The Guacamole LDAP support extension itself, which must be placed in
+                            <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></dd><dt><span class="term"><code class="filename">schema/</code></span></dt><dd><p>LDAP schema files. An <code class="filename">.ldif</code> file compatible with
+                        OpenLDAP is provided, as well as a <code class="filename">.schema</code> file
+                        compliant with RFC-2252. The <code class="filename">.schema</code> file can be
+                        transformed into the <code class="filename">.ldif</code> file automatically.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ldap-schema-changes"></a>Preparing your LDAP directory (optional)</h2></div></div></div><p>Although your LDAP directory already provides a means of storing and authenticating
+            users, Guacamole also needs storage of connection configuration data, such as hostnames
+            and ports, and a means of associating users with connections that they should have
+            access to. You can do this either through modifying the LDAP directory schema, or
+            through using a database like MySQL or PostgreSQL. If you do not wish to use the LDAP
+            directory for connection storage, skip ahead to <a class="xref" href="ldap-auth.html#ldap-and-database" title="Associating LDAP with a database">the section called “Associating LDAP with a database”</a>.</p><p>If you wish to store connection data directly within the LDAP directory, the required
+            modifications to the LDAP schema are made through applying one of the provided schema
+            files. These schema files define an additional object class,
+                <code class="classname">guacConfigGroup</code>, which contains all configuration information
+            for a particular connection, and can be associated with arbitrarily-many users and
+            groups. Each connection defined by a <code class="classname">guacConfigGroup</code> will be
+            accessible only by users who are members of that group (specified with the
+                <span class="property">member</span> attribute), or who are members of associated groups
+            (specified with the <span class="property">seeAlso</span> attribute).</p><div class="important"><h3 class="title">Important</h3><p>The instructions given for applying the Guacamole LDAP schema changes are specific
+                to OpenLDAP, but other LDAP implementations, including Active Directory, will have
+                their own methods for updating the schema.</p><p>If you are not using OpenLDAP, a standards-compliant schema file is provided that
+                can be used to update the schema of any LDAP directory supporting RFC-2252. Please
+                consult the documentation of your LDAP directory to determine how such schema
+                changes can be applied.</p></div><p>The schema files are located within the <code class="filename">schema/</code> directory of the
+            archive containing the LDAP extension. You will only need one of these files:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="filename">guacConfigGroup.schema</code></span></dt><dd><p>A standards-compliant file describing the schema. This file can be used
+                        with any LDAP directory compliant with RFC-2252.</p></dd><dt><span class="term"><code class="filename">guacConfigGroup.ldif</code></span></dt><dd><p>An LDIF file compatible with OpenLDAP. This file was automatically built
+                        from the provided <code class="filename">.schema</code> file for convenience.</p></dd></dl></div><p>This chapter will cover applying <code class="filename">guacConfigGroup.ldif</code> to an
+            OpenLDAP server. If you are not using OpenLDAP, your LDAP server should provide
+            documentation for modifying its schema. If this is the case, please consult the
+            documentation of your LDAP server before proceeding.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420849398608"></a>Applying the schema changes to OpenLDAP</h3></div></div></div><p>Schema changes to OpenLDAP are applied using the <span class="command"><strong>ldapadd</strong></span>
+                utility with the provided <code class="filename">guacConfigGroup.ldif</code> file:</p><div class="informalexample"><pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>ldapadd -Q -Y EXTERNAL -H ldapi:/// -f schema/guacConfigGroup.ldif</code></strong>
+<code class="computeroutput">adding new entry "cn=guacConfigGroup,cn=schema,cn=config"
+</code>
+<code class="prompt">#</code></pre></div><p>If the <code class="classname">guacConfigGroup</code> object was added successfully, you
+                should see output as above. You can confirm the presence of the new object class
+                using <span class="command"><strong>ldapsearch</strong></span>:</p><div class="informalexample"><pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn</code></strong>
+<code class="computeroutput">dn: cn=schema,cn=config
+
+dn: cn={0}core,cn=schema,cn=config
+
+dn: cn={1}cosine,cn=schema,cn=config
+
+dn: cn={2}nis,cn=schema,cn=config
+
+dn: cn={3}inetorgperson,cn=schema,cn=config
+
+dn: cn={4}guacConfigGroup,cn=schema,cn=config
+</code>
+<code class="prompt">#</code></pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ldap-and-database"></a>Associating LDAP with a database</h2></div></div></div><p>If you install both the LDAP authentication as well as support for a database
+            (following the instructions in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>), Guacamole will
+            automatically attempt to authenticate against both systems whenever a user attempts to
+            log in. In addition to any visible objects within the LDAP directory, that user will
+            have access to any data associated with their account in the database, as well as any
+            data associated with user groups that they belong to. LDAP user accounts and groups will
+            be considered equivalent to database users and groups if their unique names are
+            identical, as determined by the attributes given for <a class="link" href="ldap-auth.html#guac-ldap-config" title="Configuring Guacamole for LDAP">the <span class="property">ldap-username-attribute</span> and
+                    <span class="property">ldap-group-name-attribute</span> properties</a>.</p><p>Data can be manually associated with LDAP user accounts or groups by creating
+            corresponding users or groups within the database which each have the same names. As
+            long as the names are identical, a successful login attempt against LDAP will be trusted
+            by the database authentication, and that user's associated data will be visible.</p><p>If an administrator account (such as the default <code class="systemitem">guacadmin</code>
+            user provided with the database authentication) has a corresponding user in the LDAP
+            directory with permission to read other LDAP users and groups, the Guacamole
+            administrative interface will include them in the lists presented to the administrator,
+            and will allow connections from the database to be associated with those users or groups
+            directly.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-ldap-auth"></a>Installing LDAP authentication</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory. To install
+            the LDAP authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-ldap-1.1.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use LDAP authentication, as described below.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>You will need to restart Guacamole by restarting your servlet container in order
+                to complete the installation. Doing this will disconnect all active users, so be
+                sure that it is safe to do so prior to attempting installation. If you do not
+                configure the LDAP authentication properly, Guacamole will not start up again until
+                the configuration is fixed.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-ldap-config"></a>Configuring Guacamole for LDAP</h3></div></div></div><a id="idm46420847161760" class="indexterm"></a><a id="idm46420847160864" class="indexterm"></a><p>Additional properties may be added to <code class="filename">guacamole.properties</code> to
+                describe how your LDAP directory is organized and how Guacamole should connect (and
+                bind) to your LDAP server. Among these properties, only the
+                    <span class="property">ldap-user-base-dn</span> property is required:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">ldap-hostname</span></span></dt><dd><p>The hostname of your LDAP server. If omitted, "localhost" will be used
+                            by default. You will need to use a different value if your LDAP server
+                            is located elsewhere.</p></dd><dt><span class="term"><span class="property">ldap-port</span></span></dt><dd><p>The port your LDAP server listens on. If omitted, the standard LDAP or
+                            LDAPS port will be used, depending on the encryption method specified
+                            with <span class="property">ldap-encryption-method</span> (if any). Unencrypted
+                            LDAP uses the standard port of 389, while LDAPS uses port 636. Unless
+                            you manually configured your LDAP server to do otherwise, your LDAP
+                            server probably listens on port 389.</p></dd><dt><span class="term"><span class="property">ldap-encryption-method</span></span></dt><dd><p>The encryption mechanism that Guacamole should use when communicating
+                            with your LDAP server. Legal values are "none" for unencrypted LDAP,
+                            "ssl" for LDAP over SSL/TLS (commonly known as LDAPS), or "starttls" for
+                            STARTTLS. If omitted, encryption will not be used.</p><p>If you do use encryption when connecting to your LDAP server, you will
+                            need to ensure that its certificate chain can be verified using the
+                            certificates in Java's trust store, often referred to as
+                                <code class="filename">cacerts</code>. If this is not the case, you will need
+                            to use Java's <span class="command"><strong>keytool</strong></span> utility to either add the
+                            necessary certificates or to create a new trust store containing those
+                            certificates.</p><p>If you will be using your own trust store and not the default
+                                <code class="filename">cacerts</code>, you will need to specify the full path
+                            to that trust store using the system property
+                                <span class="property">javax.net.ssl.trustStore</span>. Note that this is a
+                            system property and <span class="emphasis"><em>not</em></span> a Guacamole property; it
+                            must be specified when starting the JVM using the <code class="option">-D</code>
+                            option. Your servlet container will provide some means of specifying
+                            startup options for the JVM.</p></dd><dt><span class="term"><span class="property">ldap-max-search-results</span></span></dt><dd><p>The maximum number of search results that can be returned by a single
+                            LDAP query. LDAP queries which exceed this maximum will fail.
+                                <span class="emphasis"><em>This property is optional.</em></span> If omitted, each
+                            LDAP query will be limited to a maximum of 1000 results.</p></dd><dt><span class="term"><span class="property">ldap-search-bind-dn</span></span></dt><dd><p>The DN (Distinguished Name) of the user to bind as when authenticating
+                            users that are attempting to log in. If specified, Guacamole will query
+                            the LDAP directory to determine the DN of each user that logs in. If
+                            omitted, each user's DN will be derived directly using the base DN
+                            specified with <span class="property">ldap-user-base-dn</span>.</p></dd><dt><span class="term"><span class="property">ldap-search-bind-password</span></span></dt><dd><p>The password to provide to the LDAP server when binding as
+                                <span class="property">ldap-search-bind-dn</span> to authenticate other
+                            users. This property is only used if
+                                <span class="property">ldap-search-bind-dn</span> is specified. If omitted,
+                            but <span class="property">ldap-search-bind-dn</span> is specified, Guacamole
+                            will attempt to bind with the LDAP server without a password.</p></dd><dt><span class="term"><span class="property">ldap-user-base-dn</span></span></dt><dd><p>The base of the DN for all Guacamole users. <span class="emphasis"><em>This property is
+                                absolutely required in all cases.</em></span> All Guacamole users
+                            must be descendents of this base DN.</p><p>If a search DN is provided (via
+                                <span class="property">ldap-search-bind-dn</span>), then Guacamole users need
+                            only be somewhere within the subtree of the specified user base
+                            DN.</p><p>If a search DN <span class="emphasis"><em>is not</em></span> provided, then all
+                            Guacamole users must be <span class="emphasis"><em>direct descendents</em></span> of this
+                            base DN, as the base DN will be appended to the username to derive the
+                            user's DN. For example, if <span class="property">ldap-user-base-dn</span> is
+                                "<code class="systemitem">ou=people,dc=example,dc=net</code>", and
+                                <span class="property">ldap-username-attribute</span> is
+                                "<span class="property">uid</span>", then a person attempting to login as
+                                "<code class="systemitem">user</code>" would be mapped to the following
+                            full DN:
+                            "<code class="systemitem">uid=user,ou=people,dc=example,dc=net</code>".</p></dd><dt><span class="term"><span class="property">ldap-username-attribute</span></span></dt><dd><p>The attribute or attributes which contain the username within all
+                            Guacamole user objects in the LDAP directory. Usually, and by default,
+                            this will simply be "<span class="property">uid</span>". If your LDAP directory
+                            contains users whose usernames are dictated by different attributes,
+                            multiple attributes can be specified here, separated by commas, but
+                            beware: <span class="emphasis"><em>doing so requires that a search DN be provided with
+                                    <span class="property">ldap-search-bind-dn</span></em></span>.</p><p>If a search DN <span class="emphasis"><em>is not</em></span> provided, then the single
+                            username attribute specified here will be used together with the user
+                            base DN to directly derive the full DN of each user. For example, if
+                                <span class="property">ldap-user-base-dn</span> is
+                                "<code class="systemitem">ou=people,dc=example,dc=net</code>", and
+                                <span class="property">ldap-username-attribute</span> is
+                                "<span class="property">uid</span>", then a person attempting to login as
+                                "<code class="systemitem">user</code>" would be mapped to the following
+                            full DN:
+                            "<code class="systemitem">uid=user,ou=people,dc=example,dc=net</code>".</p></dd><dt><span class="term"><span class="property">ldap-member-attribute</span></span></dt><dd><p>The attribute which contains the members within all group objects in the
+                          LDAP directory. Usually, and by default, this will simply be
+                          "<span class="property">member</span>". If your LDAP directory contains groups
+                          whose members are dictated by a different attribute, it can be specified
+                          here.</p></dd><dt><span class="term"><span class="property">ldap-user-attributes</span></span></dt><dd><p>The attribute or attributes to retrieve from the LDAP directory for
+                            the currently logged-in user, separated by commas. If specified, the
+                            attributes listed here are retrieved from each authenticated user and
+                            dynamically applied to the parameters of that user's connections as
+                                <a class="link" href="configuring-guacamole.html#parameter-tokens" title="Parameter tokens">parameter tokens</a> with the
+                            prefix "<code class="varname">LDAP_</code>".</p><p>When a user authenticates with LDAP and accesses a particular
+                            Guacamole connection, the values of these tokens will be the values of
+                            their corresponding attributes at the time of authentication. If the
+                            attribute has no value for the current user, then the corresponding
+                            token is not applied. If the attribute has multiple values, then the
+                            first value of the attribute is used.</p><p>When converting an LDAP attribute name into a parameter token name,
+                            the name of the attribute is transformed into uppercase with each word
+                            separated by underscores, a naming convention referred to as "uppercase
+                            with underscores" or "<a class="link" href="https://en.wikipedia.org/wiki/Naming_convention_(programming)#Multiple-word_identifiers" target="_top">screaming snake case</a>". For example:</p><div class="table"><a id="idm46420849362480"></a><p class="title"><strong>Table 7.1. Example LDAP attribute / parameter token conversions</strong></p><div class="table-contents"><table class="table" summary="Example LDAP attribute / parameter token conversions" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>LDAP Attribute</th><th>Parameter Token</th></tr></thead><tbody><tr><td><code class="varname">lowercase-with-dashes</code></td><td><code class="varname">${LDAP_LOWERCASE_WITH_DASHES}</code></td></tr><tr><td><code class="varname">CamelCase</code></td><td><code class="varname">${LDAP_CAMEL_CASE}</code></td></tr><tr><td><code class="varname">headlessCamelCase</code></td><td><code class="varname">${LDAP_HEADLESS_CAMEL_CASE}</code></td></tr><tr><td><code class="varname">lettersAndNumbers1234</code></td><td><code class="varname">${LDAP_LETTERS_AND_NUMBERS_1234}</code></td></tr><tr><td><code class="varname">aRANDOM_mixOf-3NAMINGConventions</code></td><td><code class="varname">${LDAP_A_RANDOM_MIX_OF_3_NAMING_CONVENTIONS}</code></td></tr></tbody></table></div></div><br class="table-break" /><p>Usage of parameter tokens is discussed in more detail in <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> in <a class="xref" href="configuring-guacamole.html#parameter-tokens" title="Parameter tokens">the section called “Parameter tokens”</a>.</p></dd><dt><span class="term"><span class="property">ldap-user-search-filter</span></span></dt><dd><p>The search filter used to query the LDAP tree for users that can log
+                            into and be granted privileges in Guacamole. <span class="emphasis"><em>If this property
+                                is omitted the default of "(objectClass=*)" will be used.
+                            </em></span></p></dd><dt><span class="term"><span class="property">ldap-config-base-dn</span></span></dt><dd><p>The base of the DN for all Guacamole configurations. <span class="emphasis"><em>This
+                                property is optional.</em></span> If omitted, the configurations of
+                            Guacamole connections will simply not be queried from the LDAP
+                            directory. If specified, this base DN will be used when querying the
+                            configurations accessible by a user once they have successfully logged
+                            in.</p><p>Each configuration is analogous to a connection. Within Guacamole's
+                            LDAP support, each configuration functions as a group, having user
+                            members (via the <span class="property">member</span> attribute) and optionally
+                            group members (via the <span class="property">seeAlso</span> attribute), where
+                            each member of a particular configuration group will have access to the
+                            connection defined by that configuration.</p></dd><dt><span class="term"><span class="property">ldap-group-base-dn</span></span></dt><dd><p>The base of the DN for all user groups that may be used by other
+                            extensions to define permissions or that may referenced within Guacamole
+                            configurations using the standard <span class="property">seeAlso</span>
+                            attribute. All groups which will be used to control access to Guacamole
+                            configurations must be descendents of this base DN. <span class="emphasis"><em>If this
+                                property is omitted, the <span class="property">seeAlso</span> attribute will
+                                have no effect on Guacamole configurations.</em></span></p></dd><dt><span class="term"><span class="property">ldap-group-name-attribute</span></span></dt><dd><p>The attribute or attributes which define the unique name of user
+                            groups in the LDAP directory. Usually, and by default, this will simply
+                            be "<span class="property">cn</span>". If your LDAP directory contains groups
+                            whose names are dictated by different attributes, multiple attributes
+                            can be specified here, separated by commas.</p></dd><dt><span class="term"><span class="property">ldap-dereference-aliases</span></span></dt><dd><p>Controls whether or not the LDAP connection follows (dereferences)
+                            aliases as it searches the tree. Possible values for this property are
+                            "never" (the default) so that aliases will never be followed,
+                            "searching" to dereference during search operations after the base
+                            object is located, "finding" to dereference in order to locate the
+                            search base, but not during the actual search, and "always" to always
+                            dereference aliases.</p></dd><dt><span class="term"><span class="property">ldap-follow-referrals</span></span></dt><dd><p>This option controls whether or not the LDAP module follow referrals
+                            when processing search results from a LDAP search. Referrals can be
+                            pointers to other parts of an LDAP tree, or to a different
+                            server/connection altogether. This is a boolean parameter, with valid
+                            options of "true" or "false." The default is false. When disabled, LDAP
+                            referrals will be ignored when encounterd by the Guacamole LDAP client
+                            and the client will move on to the next result. When enabled, the LDAP
+                            client will follow the referral and process results within the referral,
+                            subject to the maximum hops parameter below.</p></dd><dt><span class="term"><span class="property">ldap-max-referral-hops</span></span></dt><dd><p>This option controls the maximum number of referrals that will be
+                            processed before the LDAP client refuses to follow any more referrals.
+                            The default is 5. If the ldap-follow-referrals property is set to false
+                            (the default), this option has no effect. If the ldap-follow-referrals
+                            option is set to true, this will limit the depth of referrals followed
+                            to the number specified.</p></dd><dt><span class="term"><span class="property">ldap-operation-timeout</span></span></dt><dd><p>This option sets the timeout, in seconds, of any single LDAP
+                            operation. The default is 30 seconds. When this timeout is reached LDAP
+                            operations will be aborted.</p></dd></dl></div><p>Again, even if the defaults are sufficient for the other properties, <span class="emphasis"><em>you
+                    must still specify the <span class="property">ldap-user-base-dn</span>
+                    property</em></span>. An absolutely minimal configuration for LDAP authentication
+                will look like the following:</p><pre class="programlisting"># LDAP properties
+ldap-user-base-dn:       <em class="replaceable"><code>ou=people,dc=example,dc=net</code></em></pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420847197056"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before the LDAP authentication will take effect. Restart your servlet
+                container and give the new authentication a try.</p><p>
+                </p><div class="important"><h3 class="title">Important</h3><p>You only need to restart your servlet container. <span class="emphasis"><em>You do not need
+                            to restart <span class="package">guacd</span></em></span>.</p><p><span class="package">guacd</span> is completely independent of the web application
+                        and does not deal with <code class="filename">guacamole.properties</code> or the
+                        authentication system in any way. Since you are already restarting the
+                        servlet container, restarting <span class="package">guacd</span> as well technically
+                        won't hurt anything, but doing so is completely pointless.</p></div><p>
+            </p><p>If Guacamole does not come back online after restarting your servlet container,
+                check the logs. Problems in the configuration of the LDAP extension will prevent
+                Guacamole from starting up, and any such errors will be recorded in the logs of your
+                servlet container. If properly configured, you will be able to log in as any user
+                within the defined <span class="property">ldap-user-base-dn</span>.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ldap-auth-schema"></a>The LDAP schema</h2></div></div></div><a id="idm46420847788464" class="indexterm"></a><p>Guacamole's LDAP support allows users and connections to be managed purely within an
+            LDAP directory defined in <code class="filename">guacamole.properties</code>. This is
+            accomplished with a minimum of changes to the standard LDAP schema - all Guacamole users
+            are traditional LDAP users and share the same mechanism of authentication. The only new
+            type of object required is a representation for Guacamole connections,
+                <code class="classname">guacConfigGroup</code>, which was added to your server's schema
+            during the install process above.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420848077040"></a>Users</h3></div></div></div><p>All Guacamole users, as far as the LDAP support is concerned, are LDAP users with
+                standard LDAP credentials. When a user signs in to Guacamole, their username and
+                password will be used to bind to the LDAP server. If this bind operation is
+                successful, the available connections are queried from the directory and the user is
+                allowed in.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420848075728"></a>Connections and parameters</h3></div></div></div><p>Each connection is represented by an instance of the
+                    <code class="classname">guacConfigGroup</code> object class, an extended version of the
+                standard LDAP <code class="classname">groupOfNames</code>, which provides a protocol and set
+                of parameters. Only members of the <code class="classname">guacConfigGroup</code> will have
+                access to the corresponding connection.</p><p>The <code class="classname">guacConfigGroup</code> object class provides two new
+                attributes in addition to those provided by
+                <code class="classname">groupOfNames</code>:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">guacConfigProtocol</span></span></dt><dd><p>The protocol associated with the connection, such as
+                                "<code class="constant">vnc</code>" or "<code class="constant">rdp</code>". This
+                            attribute is required for every <code class="classname">guacConfigGroup</code>
+                            and can be given only once.</p></dd><dt><span class="term"><span class="property">guacConfigParameter</span></span></dt><dd><p>The name and value of a parameter for the specified protocol. This is
+                            given as
+                                    <code class="code"><em class="replaceable"><code>name</code></em>=<em class="replaceable"><code>value</code></em></code>,
+                            where "name" is the name of the parameter, as defined by the
+                            documentation for the protocol specified, and "value" is any allowed
+                            value for that parameter.</p><p>This attribute can be given multiple times for the same
+                            connection.</p></dd></dl></div><p>For example, to create a new VNC connection which connects to "localhost" at port
+                5900, while granting access to <code class="systemitem">user1</code> and
+                    <code class="systemitem">user2</code>, you could create an <code class="filename">.ldif</code>
+                file like the following:</p><div class="informalexample"><pre class="programlisting">dn: cn=Example Connection,ou=groups,dc=example,dc=net
+objectClass: guacConfigGroup
+objectClass: groupOfNames
+cn: Example Connection
+guacConfigProtocol: vnc
+guacConfigParameter: hostname=localhost
+guacConfigParameter: port=5900
+guacConfigParameter: password=secret
+member: cn=user1,ou=people,dc=example,dc=net
+member: cn=user2,ou=people,dc=example,dc=net</pre></div><p>The new connection can then be created using the <span class="command"><strong>ldapadd</strong></span>
+                utility:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>ldapadd -x -D <em class="replaceable"><code>cn=admin,dc=example,dc=net</code></em> -W -f <em class="replaceable"><code>example-connection.ldif</code></em></code></strong>
+<code class="computeroutput">Enter LDAP Password:
+adding new entry "cn=Example Connection,ou=groups,dc=example,dc=net"
+</code>
+<code class="prompt">$</code></pre></div><p>Where <code class="systemitem">cn=admin,dc=example,dc=net</code> is an administrator
+                account with permission to create new entries, and
+                    <code class="filename">example-connection.ldif</code> is the name of the
+                    <code class="filename">.ldif</code> file you just created.</p><p>There is, of course, no need to use only the standard LDAP utilities to create
+                connections and users. There are useful graphical environments for manipulating LDAP
+                directories, such as <a class="link" href="https://directory.apache.org/studio/" target="_top">Apache
+                    Directory Studio</a>, which make many of the tasks given above much
+                easier.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="jdbc-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="duo-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 6. Database authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 8. Duo two-factor authentication</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/libguac.html b/doc/1.1.0/gug/libguac.html
new file mode 100644
index 0000000..b3e6548
--- /dev/null
+++ b/doc/1.1.0/gug/libguac.html
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 19. libguac</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="guacamole-protocol.html" title="Chapter 18. The Guacamole protocol" /><link rel="next" href="guacamole-common.html" title="Chapter 20. guacamole-common" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 19. libguac</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="guacamole-protocol.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="guacamole-common.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="libguac"></a>Chapter 19. libguac</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="libguac.html#libguac-error-handling">Error handling</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-client-plugins">Client plugins</a></span></dt><dd><dl><dt><span class="section"><a href="libguac.html#libguac-lifecycle-entry">Entry point</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-lifecycle-users">Joining/leaving a connection</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-lifecycle-termination">Termination</a></span></dt></dl></dd><dt><span class="section"><a href="libguac.html#libguac-layers">Layers and buffers</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-streams">Streams</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-sending-instructions">Sending instructions</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-event-handling">Event handling</a></span></dt><dd><dl><dt><span class="section"><a href="libguac.html#libguac-key-events">Key events</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-mouse-events">Mouse events</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-clipboard-events">Clipboard, file, and other stream events</a></span></dt></dl></dd></dl></div><a id="idm46420845124768" class="indexterm"></a><a id="idm46420845123424" class="indexterm"></a><p>The C API for extending and developing with Guacamole is libguac. All
+        native components produced by the Guacamole project link with this
+        library, and this library provides the common basis for extending the
+        native functionality of those native components (by implementing client
+        plugins).</p><p>libguac is used mainly for developing client plugins like
+        libguac-client-vnc or libguac-client-rdp, or for developing a proxy
+        supporting the Guacamole protocol like guacd. This chapter is intended
+        to give an overview of how libguac is used, and how to use it for
+        general communication with the Guacamole protocol.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-error-handling"></a>Error handling</h2></div></div></div><p>Most functions within libguac handle errors by returning a zero or
+            non-zero value, whichever is appropriate for the function at hand.
+            If an error is encountered, the <code class="varname">guac_error</code>
+            variable is set appropriately, and
+                <code class="varname">guac_error_message</code> contains a
+            statically-allocated human-readable string describing the context of
+            the error. These variables intentionally mimic the functionality
+            provided by <code class="varname">errno</code> and
+                <code class="filename">errno.h</code>.</p><p>Both <code class="varname">guac_error</code> and
+                <code class="varname">guac_error_message</code> are defined within
+                <code class="filename">error.h</code>. A human-readable string describing
+            the error indicated by <code class="varname">guac_error</code> can be
+            retrieved using <code class="methodname">guac_status_string()</code>, which
+            is also statically allocated.</p><p>If functions defined within client plugins set
+                <code class="varname">guac_error</code> and
+                <code class="varname">guac_error_message</code> appropriately when errors
+            are encountered, the messages logged to syslog by guacd will be more
+            meaningful for both users and developers.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-plugins"></a>Client plugins</h2></div></div></div><p>Client plugins are libraries which follow specific conventions such that they can be
+            loaded dynamically by guacd. All client plugins <span class="emphasis"><em>must</em></span>:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Follow a naming convention, where the name of the library is
+                            <span class="package">libguac-client-<em class="replaceable"><code>PROTOCOL</code></em></span>.
+                        <span class="emphasis"><em>This is necessary for guacd to locate the library for a requested
+                        protocol.</em></span></p></li><li class="listitem"><p>Be linked against libguac, the library used by guacd to handle the Guacamole
+                    protocol. The structures which are given to functions invoked by guacd are
+                    defined by libguac, and are expected to be manipulated via the functions
+                    provided by libguac or as otherwise documented within the structure itself.
+                        <span class="emphasis"><em>Communication between guacd and client plugins is only possible if
+                        they share the same core structural and functional definitions provided by
+                        libguac.</em></span></p></li><li class="listitem"><p>Implement the standard entry point for client plugins,
+                        <code class="methodname">guac_client_init()</code>, described in more detail below.
+                    It is this function which initializes the structures provided by guacd such that
+                    users can join and interact with the connection.</p></li></ol></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-lifecycle-entry"></a>Entry point</h3></div></div></div><p>All client plugins must provide a function named
+                    <code class="methodname">guac_client_init</code> which accepts, as its sole argument, a
+                pointer to a <code class="classname">guac_client</code> structure. This function is similar
+                in principle to the <code class="methodname">main()</code> function of a C program, and it
+                is the responsibility of this function to initialize the provided structure as
+                necessary to begin the actual remote desktop connection, allow users to join/leave,
+                etc.</p><p>The provided <code class="classname">guac_client</code> will already have been initialized
+                with handlers for logging, the broadcast socket, etc. The absolutely critical pieces
+                which must be provided by <code class="methodname">guac_client_init</code> are:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>A handler for users which join the connection
+                            (<span class="property">join_handler</span>). The join handler is also usually
+                        the most appropriate place for the actual remote desktop connection to be
+                        established.</p></li><li class="listitem"><p>A <code class="constant">NULL</code>-terminated set of argument names which the
+                        client plugin accepts, assigned to the <span class="property">args</span> property of
+                        the given <code class="classname">guac_client</code>. As the handshake procedure is
+                        completed for each connecting user, these argument names will be presented
+                        as part of the handshake, and the values for those arguments will be passed
+                        to the join handler once the handshake completes.</p></li><li class="listitem"><p>A handler for users leaving the connection
+                            (<span class="property">leave_handler</span>), if any cleanup, updates, etc. are
+                        required.</p></li><li class="listitem"><p>A handler for freeing the data associated with the
+                            <code class="classname">guac_client</code> after the connection has terminated
+                            (<span class="property">free_handler</span>). If your plugin will allocate any
+                        data at all, implementing the free handler is necessary to avoid memory
+                        leaks.</p></li></ol></div><p>If <code class="methodname">guac_client_init</code> returns successfully, guacd will
+                proceed with allowing the first use to join the connection, and the rest of the
+                plugin lifecycle commences.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-lifecycle-users"></a>Joining/leaving a connection</h3></div></div></div><p>Whenever a user joins a connection, including the very first user of a connection
+                (the user which is establishing the remote desktop connection in the first place),
+                the join handler of the <span class="property">guac_client</span> will be invoked. This
+                handler is provided with the <code class="classname">guac_user</code> structure representing
+                the user that just joined, along with the arguments provided during the handshake
+                procedure:</p><div class="informalexample"><pre class="programlisting">int join_handler(guac_user* user, int argc, char** argv) {
+    /* Synchronize display state, init the user, etc. */
+}
+
+...
+
+/* Within guac_client_init  */
+client-&gt;join_handler = join_handler;</pre></div><p>As the parameters and user information provided during the Guacamole protocol
+                handshake are often required to be known before the remote desktop connection can be
+                established, the join handler is usually the best place to create a thread which
+                establishes the remote desktop connection and updates the display
+                accordingly.</p><p>If necessary, the user which first established the connection can be distinguished
+                from all other users by the <span class="property">owner</span> flag of
+                    <code class="classname">guac_user</code>, which will be set to a non-zero value.</p><p>Once a user has disconnected, the leave handler of
+                    <code class="classname">guac_client</code> will be invoked. Just as with the join
+                handler, this handler is provided the <code class="classname">guac_user</code> structure of
+                the user that disconnected. The <code class="classname">guac_user</code> structure will be
+                freed immediately after the handler completes:</p><div class="informalexample"><pre class="programlisting">int leave_handler(guac_user* user) {
+    /* Free user-specific data and clean up */
+}
+
+...
+
+/* Within guac_client_init  */
+client-&gt;leave_handler = leave_handler;</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-lifecycle-termination"></a>Termination</h3></div></div></div><p>Once the last user of a connection has left, guacd will begin freeing resources
+                allocated to that connection, invoking the free handler of the
+                    <code class="classname">guac_client</code>. At this point, the "leave" handler has been
+                invoked for all previous users. All that remains is for the client plugin to free
+                any remaining data that it allocated, such that guacd can clean up the rest:</p><div class="informalexample"><pre class="programlisting">int free_handler(guac_client* client) {
+    /* Disconnect, free client-specific data, etc. */
+}
+
+...
+
+/* Within guac_client_init  */
+client-&gt;free_handler = free_handler;</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-layers"></a>Layers and buffers</h2></div></div></div><p>The main operand of all drawing instructions is the layer,
+            represented within libguac by the <code class="classname">guac_layer</code>
+            structure. Each <code class="classname">guac_layer</code> is normally
+            allocated using <code class="methodname">guac_client_alloc_layer()</code>
+            or <code class="methodname">guac_client_alloc_buffer()</code>, depending on
+            whether a layer or buffer is desired, and freed with
+                <code class="methodname">guac_client_free_layer()</code> or
+                <code class="methodname">guac_client_free_buffer()</code>.</p><div class="important"><h3 class="title">Important</h3><p>Care must be taken to invoke the allocate and free pairs of
+                each type of layer correctly.
+                    <code class="methodname">guac_client_free_layer()</code> should
+                only be used to free layers allocated with
+                    <code class="methodname">guac_client_alloc_layer()</code>, and
+                    <code class="methodname">guac_client_free_buffer()</code> should
+                only be used to free layers allocated with
+                    <code class="methodname">guac_client_alloc_buffer()</code>, all
+                called using the same instance of
+                    <code class="classname">guac_client</code>.</p><p>If these restrictions are not observed, the effect of invoking
+                these functions is undefined.</p></div><p>Using these layer management functions allows you to reuse
+            existing layers or buffers after their original purpose has expired,
+            thus conserving resources on the client side, as allocation of new
+            layers within the remote client is a relatively expensive
+            operation.</p><p>It is through layers and buffers that Guacamole provides support
+            for hardware-accelerated compositing and cached updates. Creative
+            use of layers and buffers leads to efficient updates on the client
+            side, which usually translates into speed and responsiveness.</p><p>Regardless of whether you allocate new layers or buffers, there is
+            always one layer guaranteed to be present: the default layer,
+            represented by libguac as <code class="varname">GUAC_DEFAULT_LAYER</code>. If
+            you only wish to affect to the main display of the connected client
+            somehow, this is the layer you want to use as the operand of your
+            drawing instruction.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-streams"></a>Streams</h2></div></div></div><p>In addition to drawing, the Guacamole protocol supports streaming of arbitrary data.
+            The main operand of all streaming instructions is the stream, represented within libguac
+            by the <code class="classname">guac_stream</code> structure. Each
+                <code class="classname">guac_stream</code> exists either at the user or client levels,
+            depending on whether the stream is intended to be broadcast to all users or just one,
+            and is thus allocated using either <code class="methodname">guac_client_alloc_stream()</code>
+            or <code class="methodname">guac_user_alloc_stream()</code>. Explicitly-allocated streams must
+            eventually be freed with <code class="methodname">guac_client_free_stream()</code> or
+                <code class="methodname">guac_user_free_stream()</code>.</p><div class="important"><h3 class="title">Important</h3><p>Just as with layers, care must be taken to invoke the allocate and free pairs
+                correctly for each explicitly-allocated stream.
+                    <code class="methodname">guac_client_free_stream()</code> should only be used to free
+                streams allocated with <code class="methodname">guac_client_alloc_stream()</code>, and
+                    <code class="methodname">guac_user_free_stream()</code> should only be used to free
+                streams allocated with <code class="methodname">guac_user_alloc_stream()</code>.</p><p>If these restrictions are not observed, the effect of invoking these functions is
+                undefined.</p></div><p>Streams are the means by which data is transmitted for clipboard (via the <a class="link" href="protocol-reference.html#clipboard-instruction" title="clipboard">"clipboard" instruction</a>), audio (via the <a class="link" href="protocol-reference.html#audio-stream-instruction" title="audio">"audio" instruction</a>), and even the images which make up typical drawing
+            operations (via the <a class="link" href="protocol-reference.html#img-instruction" title="img">"img" instruction</a>). They will either be allocated
+            for you, when an inbound stream is received from a user, or allocated manually, when an
+            outbound stream needs to be sent to a user. As with <code class="classname">guac_client</code>
+            and <code class="classname">guac_user</code>, each <code class="classname">guac_stream</code> has a set
+            of handlers which correspond to instructions received related to streams. These
+            instructions are documented in more detail in <a class="xref" href="guacamole-protocol.html#guacamole-protocol-streaming" title="Streams and objects">the section called “Streams and objects”</a>
+            and <a class="xref" href="protocol-reference.html" title="Appendix B. Guacamole protocol reference">Appendix B, <em>Guacamole protocol reference</em></a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-sending-instructions"></a>Sending instructions</h2></div></div></div><p>All drawing in Guacamole is accomplished through the sending of instructions to the
+            connected client using the Guacamole protocol. The same goes for streaming audio, video,
+            or file content. All features and content supported by Guacamole ultimately reduce to
+            one or more instructions which are part of the documented protocol.</p><p>Most drawing using libguac is done using Cairo functions on a
+                <code class="classname">cairo_surface_t</code> (see the Cairo API documentation) which is
+            later streamed to the client using an <code class="methodname">img</code> instruction and
+            subsequent <code class="methodname">blob</code> instructions, sent via
+                <code class="methodname">guac_client_stream_png()</code>. Cairo was chosen as a dependency
+            of libguac to provide developers an existing and stable means of drawing to image
+            buffers which will ultimately be sent as easy-to-digest PNG images.</p><p>The Guacamole protocol also supports drawing primitives similar to
+            those present in the Cairo API and HTML5's canvas tag. These
+            instructions are documented individually in the Guacamole Protocol
+            Reference in a section dedicated to drawing instructions, and like
+            all Guacamole protocol instructions, each instruction has a
+            corresponding function in libguac following the naming convention
+                    <code class="methodname">guac_protocol_send_<em class="replaceable"><code>OPCODE</code></em>()</code>.</p><p>Each protocol function takes a <code class="classname">guac_socket</code> as an argument,
+            which is the buffered I/O object used by libguac. For each active connection, there are
+            two important types of <code class="classname">guac_socket</code> instance: the broadcast
+            socket, which exists at the client level within the <code class="classname">guac_client</code>,
+            and the per-user socket, which is accessible within each
+                <code class="classname">guac_user</code>. Data sent along the client-level broadcast socket
+            will be sent to all connected users beneath that <code class="classname">guac_client</code>,
+            while data sent along a user-level socket will be sent only to that user.</p><p>For example, to send a "size" instruction to all connected users via the client-level
+            broadcast socket, you could invoke:</p><div class="informalexample"><pre class="programlisting">guac_protocol_send_size(client-&gt;socket, GUAC_DEFAULT_LAYER, 1024, 768);</pre></div><p>Or, if the instruction is only relevant to a particular user, the socket associated
+            with that user can be used instead:</p><div class="informalexample"><pre class="programlisting">guac_protocol_send_size(<span class="emphasis"><em>user</em></span>-&gt;socket, GUAC_DEFAULT_LAYER, 1024, 768);</pre></div><p>The sockets provided by libguac are threadsafe at the protocol level. Instructions
+            written to a socket by multiple threads are guaranteed to be written atomically with
+            respect to that socket.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-event-handling"></a>Event handling</h2></div></div></div><p>Generally, as guacd receives instructions from the connected client, it invokes event
+            handlers if set within the associated <code class="classname">guac_user</code> or
+                <code class="classname">guac_client</code>, depending on the nature of the event. Most
+            events are user-specific, and thus the event handlers reside within the
+                <code class="classname">guac_user</code> structure, but there are client-specific events as
+            well, such as a user joining or leaving the current connection. Event handlers typically
+            correspond to Guacamole protocol instructions received over the socket by a connected
+            user, which in turn correspond to events which occur on the client side.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-key-events"></a>Key events</h3></div></div></div><p>When keys are pressed or released on the client side, the client sends key
+                instructions to the server. These instructions are parsed and handled by calling the
+                key event handler installed in the <span class="property">key_handler</span> member of the
+                    <code class="classname">guac_user</code>. This key handler is given the keysym of the
+                key that was changed, and a boolean value indicating whether the key was pressed or
+                released.</p><div class="informalexample"><pre class="programlisting">int key_handler(guac_user* user, int keysym, int pressed) {
+    /* Do something */
+}
+
+...
+
+/* Within the "join" handler of guac_client */
+user-&gt;key_handler = key_handler;</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-mouse-events"></a>Mouse events</h3></div></div></div><p>When the mouse is moved, and buttons are pressed or released, the client sends
+                mouse instructions to the server. These instructions are parsed and handled by
+                calling the mouse event handler installed in the <span class="property">mouse_handler</span>
+                member of the <code class="classname">guac_user</code>. This mouse handler is given the
+                current X and Y coordinates of the mouse pointer, as well as a mask indicating which
+                buttons are pressed and which are released.</p><div class="informalexample"><pre class="programlisting">int mouse_handler(guac_user* user, int x, int y, int button_mask) {
+    /* Do something */
+}
+
+...
+
+/* Within the "join" handler of guac_client */
+user-&gt;mouse_handler = mouse_handler;</pre></div><p>The file <code class="filename">client.h</code> also defines the mask
+                of each button for convenience:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">GUAC_CLIENT_MOUSE_LEFT</code></span></dt><dd><p>The left mouse button, set when pressed.</p></dd><dt><span class="term"><code class="constant">GUAC_CLIENT_MOUSE_MIDDLE</code></span></dt><dd><p>The middle mouse button, set when pressed.</p></dd><dt><span class="term"><code class="constant">GUAC_CLIENT_MOUSE_RIGHT</code></span></dt><dd><p>The right mouse button, set when pressed.</p></dd><dt><span class="term"><code class="constant">GUAC_CLIENT_MOUSE_UP</code></span></dt><dd><p>The button corresponding to one scroll in the
+                            upwards direction of the mouse scroll wheel, set
+                            when scrolled.</p></dd><dt><span class="term"><code class="constant">GUAC_CLIENT_MOUSE_DOWN</code></span></dt><dd><p>The button corresponding to one scroll in the
+                            downwards direction of the mouse scroll wheel, set
+                            when scrolled.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-clipboard-events"></a>Clipboard, file, and other stream events</h3></div></div></div><p>If a connected user sends data which should be sent to the clipboard of the remote
+                desktop, guacd will trigger the clipboard handler installed in the
+                    <span class="property">clipboard_handler</span> member of the
+                    <code class="classname">guac_user</code> associated with that user.</p><div class="informalexample"><pre class="programlisting">int clipboard_handler(guac_user* user, guac_stream* stream, char* mimetype) {
+    /* Do something */
+}
+
+...
+
+/* Within the "join" handler of guac_client */
+user-&gt;clipboard_handler = clipboard_handler;</pre></div><p>The handler is expected to assign further handlers to the provided
+                    <code class="classname">guac_stream</code> as necessary, such that the <a class="link" href="protocol-reference.html#blob-instruction" title="blob">"blob"</a> and <a class="link" href="protocol-reference.html#end-instruction" title="end">"end"</a> instructions received along the stream
+                can be handled. A similar handler is provided for received files:</p><div class="informalexample"><pre class="programlisting">int file_handler(guac_user* user, guac_stream* stream,
+        char* mimetype, char* filename) {
+    /* Do something */
+}
+
+...
+
+/* Within the "join" handler of guac_client */
+user-&gt;file_handler = file_handler;</pre></div><p>This pattern continues for all other types of streams which can be received from a
+                user. The instruction which begins the stream has a corresponding handler within
+                    <code class="classname">guac_user</code>, and the metadata describing that stream and
+                provided with the instruction is included within the parameters passed to that
+                handler.</p><p>These handlers are, of course, optional. If any type of stream lacks a
+                corresponding handler, guacd will automatically close the stream and respond with an
+                    <a class="link" href="protocol-reference.html#ack-instruction" title="ack">"ack"
+                    instruction</a> and appropriate error code, informing the user's Guacamole
+                client that the stream is unsupported.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="guacamole-protocol.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="guacamole-common.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 18. The Guacamole protocol </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 20. <span class="package">guacamole-common</span></td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/openid-auth.html b/doc/1.1.0/gug/openid-auth.html
new file mode 100644
index 0000000..056dec8
--- /dev/null
+++ b/doc/1.1.0/gug/openid-auth.html
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 12. OpenID Connect Authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="cas-auth.html" title="Chapter 11. CAS Authentication" /><link rel="next" href="radius-auth.html" title="Chapter 13. RADIUS Authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 12. OpenID Connect Authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="cas-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="radius-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="openid-auth"></a>Chapter 12. OpenID Connect Authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="openid-auth.html#openid-downloading">Downloading the OpenID Connect authentication extension</a></span></dt><dt><span class="section"><a href="openid-auth.html#installing-openid-auth">Installing support for OpenID Connect</a></span></dt><dd><dl><dt><span class="section"><a href="openid-auth.html#guac-openid-config">Configuring Guacamole for single sign-on with OpenID Connect</a></span></dt><dt><span class="section"><a href="openid-auth.html#completing-openid-install">Completing the installation</a></span></dt></dl></dd></dl></div><a id="idm46420848363456" class="indexterm"></a><p><a class="link" href="http://openid.net/connect/" target="_top">OpenID Connect</a> is a widely-adopted
+        open standard for implementing single sign-on (SSO). <a class="link" href="https://oauth.net/articles/authentication/" target="_top">Not to be confused with
+            OAuth</a>, which is <span class="emphasis"><em>not</em></span> an authentication protocol, OpenID
+        Connect defines an authentication protocol in the form of a simple identity layer on top of
+        OAuth 2.0.</p><p>Guacamole's OpenID Connect support implements the "<a class="link" href="https://openid.net/specs/openid-connect-core-1_0.html#ImplicitFlowAuth" target="_top">implicit flow</a>" of the OpenID Connect standard, and allows authentication of
+        Guacamole users to be delegated to an identity provider which implements OpenID Connect,
+        removing the need for users to log into Guacamole directly. This module must be layered on
+        top of other authentication extensions that provide connection information, such as the
+            <a class="link" href="jdbc-auth.html" title="Chapter 6. Database authentication">database authentication extension</a>, as it only provides
+        user authentication.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="openid-downloading"></a>Downloading the OpenID Connect authentication extension</h2></div></div></div><p>The OpenID Connect authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The OpenID Connect authentication extension is packaged as a
+                <code class="filename">.tar.gz</code> file containing only the extension itself,
+                <code class="filename">guacamole-auth-openid-1.1.0.jar</code>, which must ultimately be
+            placed in <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-openid-auth"></a>Installing support for OpenID Connect</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory.
+                <span class="emphasis"><em>If you are unsure where <code class="varname">GUACAMOLE_HOME</code> is located on
+                your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before
+                proceeding.</em></span></p><p>To install the OpenID Connect authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-openid-1.1.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use OpenID Connect authentication, as described
+                    below.</p></li></ol></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-openid-config"></a>Configuring Guacamole for single sign-on with OpenID Connect</h3></div></div></div><a id="idm46420848220640" class="indexterm"></a><a id="idm46420848219712" class="indexterm"></a><p>Guacamole's OpenID connect support requires several properties which describe both
+                the identity provider and the Guacamole deployment. These properties are
+                    <span class="emphasis"><em>absolutely required in all cases</em></span>, as they dictate how
+                Guacamole should connect to the identity provider, how it should verify the identity
+                provider's response, and how the identity provider should redirect users back to
+                Guacamole once their identity has been confirmed:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">openid-authorization-endpoint</span></span></dt><dd><p>The authorization endpoint (URI) of the OpenID service.</p><p>This value should be provided to you by the identity provider. For
+                            identity providers that implement <a class="link" href="https://openid.net/specs/openid-connect-discovery-1_0.html" target="_top">OpenID Connect Discovery</a>, this value can be retrieved from
+                            the "<span class="property">authorization_endpoint</span>" property of the JSON
+                            file hosted at
+                                <code class="uri"><em class="replaceable"><code>https://identity-provider</code></em>/.well-known/openid-configuration</code>,
+                            where <code class="uri"><em class="replaceable"><code>https://identity-provider</code></em></code> is
+                            the base URL of the identity provider.</p></dd><dt><span class="term"><span class="property">openid-jwks-endpoint</span></span></dt><dd><p>The endpoint (URI) of the JWKS service which defines how received ID
+                            tokens (<a class="link" href="https://jwt.io/" target="_top">JSON Web Tokens</a> or
+                            JWTs) shall be validated.</p><p>This value should be provided to you by the identity provider. For
+                            identity providers that implement <a class="link" href="https://openid.net/specs/openid-connect-discovery-1_0.html" target="_top">OpenID Connect Discovery</a>, this value can be retrieved from
+                            the "<span class="property">jwks_uri</span>" property of the JSON file hosted at
+                                    <code class="uri"><em class="replaceable"><code>https://identity-provider</code></em>/.well-known/openid-configuration</code>,
+                            where <code class="uri"><em class="replaceable"><code>https://identity-provider</code></em></code> is
+                            the base URL of the identity provider.</p></dd><dt><span class="term"><span class="property">openid-issuer</span></span></dt><dd><p>The issuer to expect for all received ID tokens.</p><p>This value should be provided to you by the identity provider. For
+                            identity providers that implement <a class="link" href="https://openid.net/specs/openid-connect-discovery-1_0.html" target="_top">OpenID Connect Discovery</a>, this value can be retrieved from
+                            the "<span class="property">issuer</span>" property of the JSON file hosted at
+                                    <code class="uri"><em class="replaceable"><code>https://identity-provider</code></em>/.well-known/openid-configuration</code>,
+                            where <code class="uri"><em class="replaceable"><code>https://identity-provider</code></em></code> is
+                            the base URL of the identity provider.</p></dd><dt><span class="term"><span class="property">openid-client-id</span></span></dt><dd><p>The OpenID client ID which should be submitted to the OpenID service
+                            when necessary. This value is typically provided to you by the OpenID
+                            service when OpenID credentials are generated for your
+                            application.</p></dd><dt><span class="term"><span class="property">openid-redirect-uri</span></span></dt><dd><p>The URI that should be submitted to the OpenID service such that they
+                            can redirect the authenticated user back to Guacamole after the
+                            authentication process is complete. This must be the full URL that a
+                            user would enter into their browser to access Guacamole.</p></dd></dl></div><p>Additional optional properties are available to control how claims within received
+                ID tokens are used to derive the user's Guacamole username, the OpenID scopes
+                requested when user identities are confirmed, and to control the maximum amount of
+                time allowed for various aspects of the conversation with the identity
+                provider:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">openid-username-claim-type</span></span></dt><dd><p>The claim type which contains the authenticated user's username within
+                            any valid JWT. By default, the "<code class="constant">email</code>" is
+                            used.</p></dd><dt><span class="term"><span class="property">openid-scope</span></span></dt><dd><p>The space-separated list of OpenID scopes to request.  OpenID scopes
+                            determine the information returned within the OpenID token, and thus
+                            affect what values can be used as an authenticated user's username. To
+                            be compliant with OpenID, at least "<code class="constant">openid profile</code>"
+                            must be requested. By default, "<code class="constant">openid email
+                                profile</code>" is used.</p></dd><dt><span class="term"><span class="property">openid-allowed-clock-skew</span></span></dt><dd><p>The amount of clock skew tolerated for timestamp comparisons between
+                            the Guacamole server and OpenID service clocks, in seconds. By default,
+                            clock skew of up to 30 seconds is tolerated.</p></dd><dt><span class="term"><span class="property">openid-max-token-validity</span></span></dt><dd><p>The maximum amount of time that an OpenID token should remain valid,
+                            in minutes. By default, each OpenID token remains valid for 300 minutes
+                            (5 hours).</p></dd><dt><span class="term"><span class="property">openid-max-nonce-validity</span></span></dt><dd><p>The maximum amount of time that a nonce generated by the Guacamole
+                            server should remain valid, in minutes. As each OpenID request has a
+                            unique nonce value, this imposes an upper limit on the amount of time
+                            any particular OpenID request can result in successful authentication
+                            within Guacamole. By default, each generated nonce expires after 10
+                            minutes.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="completing-openid-install"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before OpenID Connect authentication can be used. <span class="emphasis"><em>Doing this
+                    will disconnect all active users, so be sure that it is safe to do so prior to
+                    attempting installation.</em></span> When ready, restart your servlet container
+                and give the new authentication a try.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="cas-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="radius-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 11. CAS Authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 13. RADIUS Authentication</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/preface.html b/doc/1.1.0/gug/preface.html
new file mode 100644
index 0000000..9c62740
--- /dev/null
+++ b/doc/1.1.0/gug/preface.html
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Introduction</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="index.html" title="Guacamole Manual" /><link rel="prev" href="index.html" title="Guacamole Manual" /><link rel="next" href="users-guide.html" title="Part I. User's Guide" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Introduction</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="users-guide.html">Next</a></td></tr></table><hr /></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a id="preface"></a>Introduction</h1></div></div></div><p>This book is the official Apache Guacamole manual, written by the upstream developers
+            of the Guacamole project. It is also the official general documentation, and an online
+            version at <a class="link" href="http://guacamole.apache.org/" target="_top">http://guacamole.apache.org/</a>. It is a work in progress which will
+            be continuously updated as Guacamole changes with each release.</p><p>We decided to maintain the documentation for Guacamole as a book, as there is an awful
+            lot that can be done with the Guacamole web application, and even more that can be done
+            with the API. This book is intended to explore the possibilities of Guacamole as an
+            application, and to provide documentation necessary to install, maintain, and use
+            Guacamole.</p><p>For the sake of users and administrators, we have provided a high-level overview of
+            Guacamole's architecture and technical design, as well as basic usage instructions and
+            installation instructions for common platforms.</p><p>For the sake of developers, we have provided a protocol reference and tutorials for
+            common tasks (implementing protocol support, integrating Guacamole into your own
+            application, etc.) to give a good starting point beyond simply looking at the Guacamole
+            codebase.</p><p>This particular edition of the <em class="citetitle">Guacamole Manual</em> covers
+            Guacamole version 1.1.0. New releases which create new features or break
+            compatibility will result in new editions of the user's guide, as will any necessary
+            corrections. As the official documentation for the project, this book will always be
+            freely available in its entirety online.</p><a id="idm46420849661696" class="indexterm"></a><div class="simplesect"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="what-is-guac"></a>What is Guacamole?</h2></div></div></div><a id="idm46420849659600" class="indexterm"></a><p>Guacamole is an HTML5 web application that provides access to desktop environments
+                using remote desktop protocols (such as VNC or RDP). Guacamole is also the project
+                that produces this web application, and provides an API that drives it. This API can
+                be used to power other similar applications or services.</p><p>"Guacamole" is most commonly used to refer to the web application produced by the
+                Guacamole project using their API. This web application is part of a stack that
+                provides a protocol-agnostic remote desktop gateway. Written in JavaScript and using
+                only HTML5 and other standards, the client part of Guacamole requires nothing more
+                than a modern web browser or web-enabled device when accessing any of the desktops
+                served.</p><a id="idm46420849657312" class="indexterm"></a><p>Historically, Guacamole was an HTML5 VNC client, and before that, a JavaScript
+                Telnet client called <span class="application"><a class="application" href="http://sourceforge.net/projects/realmint" target="_top">RealMint</a></span>
+                ("RealMint" is an anagram for "terminal"), but this is no longer the case.
+                Guacamole's architecture has grown to encompass remote desktop in general, and can
+                be used as a gateway for any number of computers. Originally a proof-of-concept,
+                Guacamole is now performant enough for daily use, and all Guacamole development is
+                done over Guacamole.</p><p>As an API, Guacamole provides a common and efficient means of streaming text data
+                over a JavaScript-based tunnel using either HTTP or WebSocket, and a client
+                implementation which supports the Guacamole protocol and renders the remote display
+                when combined with a Guacamole protocol stream from the tunnel.</p><p>It provides cross-browser mouse and keyboard events, an XML-driven on-screen
+                keyboard, and synchronized nestable layers with hardware-accelerated compositing.
+                Projects that wish to provide remote desktop support over HTML5 can leverage the
+                years of research and development that went into Guacamole by incorporating the API
+                into their application or service.</p></div><div class="simplesect"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="access-from-anywhere"></a>Why use Guacamole?</h2></div></div></div><p>The principle reason to use Guacamole is constant, world-wide, unfettered access
+                to your computers.</p><p>Guacamole allows access one or more desktops from anywhere remotely, without
+                having to install a client, particularly when installing a client is not possible.
+                By setting up a Guacamole server, you can provide access to any other computer on
+                the network from virtually any other computer on the internet, anywhere in the
+                world. Even mobile phones or tablets can be used, without having to install
+                anything.</p><p>As a true web application whose communication is over HTTP or HTTPS only,
+                Guacamole allows you to access your machines from anywhere without violating the
+                policy of your workplace, and without requiring the installation of special clients.
+                The presence of a proxy or corporate firewall does not prevent Guacamole use.</p></div><div class="simplesect"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="access-from-anything"></a>Access your computers from any device</h2></div></div></div><p>As Guacamole requires only a reasonably-fast, standards-compliant browser,
+                Guacamole will run on many devices, including mobile phones and tablets.</p><p>Guacamole is specifically designed to not care whether you have a mouse, keyboard,
+                touchscreen, or any combination of those.</p><p>One of the major design philosophies behind Guacamole is that it should never
+                assume you have a particular device (ie: a mobile phone) just because your browser
+                has or is missing a specific feature (ie: touch events or a smallish screen).
+                Guacamole's codebase provides support for both mouse and touch events
+                simultaneously, without choosing one over the other, while the interface is intended
+                to be usable regardless of screen size.</p><p>Barring bugs, you should be able to use Guacamole on just about any modern device
+                with a web browser.</p></div><div class="simplesect"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="non-physical-computer"></a>Keep a computer in the "cloud"</h2></div></div></div><p>Ignoring the buzzword, it's often useful to have a computer that has no dedicated
+                physical hardware, where its processing and storage power are handled transparently
+                by redundant systems in some remote datacenter.</p><p>Computers hosted on virtualized hardware are more resilient to failures, and with
+                so many companies now offering on-demand computing resources, Guacamole is a perfect
+                way to access several machines that are only accessible over the internet.</p><p>In fact, all Guacamole development is done on computers like this. This is partly
+                because we like the mobility, and partly because we want to ensure Guacamole is
+                always performant enough for daily use.</p></div><div class="simplesect"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="group-access"></a>Provide easy access to a group</h2></div></div></div><p>Guacamole allows you to centralize access to a large group of machines, and
+                specify on a per-user basis which machines are accessible. Rather than remember a
+                list of machines and credentials, users need only log into a central server and
+                click on one of the connections listed.</p><p>If you have multiple computers which you would like to access remotely, or you are
+                part of a group where each person has a set of machines that they need remote access
+                to, Guacamole is a good way to provide that access while also ensuring that access
+                is available from anywhere.</p></div><div class="simplesect"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="adding-remote-access"></a>Adding HTML5 remote access to your existing infrastructure</h2></div></div></div><p>As Guacamole is an API, not just a web application, the core components and
+                libraries provided by the Guacamole project can be used to add HTML5 remote access
+                features to an existing application. You need not use the main Guacamole web
+                application; you can write (or integrate with) your own rather easily.</p><p>If you host an on-demand computing service, adding HTML5-based remote access
+                allows users of your service more broad access; users need nothing more than a web
+                browser to see their computers' screens.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="users-guide.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Guacamole Manual </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Part I. User's Guide</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/protocol-reference.html b/doc/1.1.0/gug/protocol-reference.html
new file mode 100644
index 0000000..f457796
--- /dev/null
+++ b/doc/1.1.0/gug/protocol-reference.html
@@ -0,0 +1,328 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix B. Guacamole protocol reference</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="appendices.html" title="Part III. Appendices" /><link rel="prev" href="faq.html" title="Appendix A. FAQ" /><link rel="next" href="book-index.html" title="Index" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix B. Guacamole protocol reference</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="faq.html">Prev</a> </td><th width="60%" align="center">Part III. Appendices</th><td width="20%" align="right"> <a accesskey="n" href="book-index.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="protocol-reference"></a>Appendix B. Guacamole protocol reference</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="protocol-reference.html#drawing-instructions">Drawing instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#arc-instruction">arc</a></span></dt><dt><span class="section"><a href="protocol-reference.html#cfill-instruction">cfill</a></span></dt><dt><span class="section"><a href="protocol-reference.html#clip-instruction">clip</a></span></dt><dt><span class="section"><a href="protocol-reference.html#close-instruction">close</a></span></dt><dt><span class="section"><a href="protocol-reference.html#copy-instruction">copy</a></span></dt><dt><span class="section"><a href="protocol-reference.html#cstroke-instruction">cstroke</a></span></dt><dt><span class="section"><a href="protocol-reference.html#cursor-instruction">cursor</a></span></dt><dt><span class="section"><a href="protocol-reference.html#curve-instruction">curve</a></span></dt><dt><span class="section"><a href="protocol-reference.html#dispose-instruction">dispose</a></span></dt><dt><span class="section"><a href="protocol-reference.html#distort-instruction">distort</a></span></dt><dt><span class="section"><a href="protocol-reference.html#identity-instruction">identity</a></span></dt><dt><span class="section"><a href="protocol-reference.html#lfill-instruction">lfill</a></span></dt><dt><span class="section"><a href="protocol-reference.html#line-instruction">line</a></span></dt><dt><span class="section"><a href="protocol-reference.html#lstroke-instruction">lstroke</a></span></dt><dt><span class="section"><a href="protocol-reference.html#move-instruction">move</a></span></dt><dt><span class="section"><a href="protocol-reference.html#pop-instruction">pop</a></span></dt><dt><span class="section"><a href="protocol-reference.html#push-instruction">push</a></span></dt><dt><span class="section"><a href="protocol-reference.html#rect-instruction">rect</a></span></dt><dt><span class="section"><a href="protocol-reference.html#reset-instruction">reset</a></span></dt><dt><span class="section"><a href="protocol-reference.html#set-instruction">set</a></span></dt><dt><span class="section"><a href="protocol-reference.html#shade-instruction">shade</a></span></dt><dt><span class="section"><a href="protocol-reference.html#size-instruction">size</a></span></dt><dt><span class="section"><a href="protocol-reference.html#start-instruction">start</a></span></dt><dt><span class="section"><a href="protocol-reference.html#transfer-instruction">transfer</a></span></dt><dt><span class="section"><a href="protocol-reference.html#transform-instruction">transform</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#streaming-instructions">Streaming instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#ack-instruction">ack</a></span></dt><dt><span class="section"><a href="protocol-reference.html#argv-instruction">argv</a></span></dt><dt><span class="section"><a href="protocol-reference.html#audio-stream-instruction">audio</a></span></dt><dt><span class="section"><a href="protocol-reference.html#blob-instruction">blob</a></span></dt><dt><span class="section"><a href="protocol-reference.html#clipboard-instruction">clipboard</a></span></dt><dt><span class="section"><a href="protocol-reference.html#end-instruction">end</a></span></dt><dt><span class="section"><a href="protocol-reference.html#file-stream-instruction">file</a></span></dt><dt><span class="section"><a href="protocol-reference.html#img-instruction">img</a></span></dt><dt><span class="section"><a href="protocol-reference.html#nest-stream-instruction">nest</a></span></dt><dt><span class="section"><a href="protocol-reference.html#pipe-instruction">pipe</a></span></dt><dt><span class="section"><a href="protocol-reference.html#video-stream-instruction">video</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#object-instructions">Object instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#body-object-instruction">body</a></span></dt><dt><span class="section"><a href="protocol-reference.html#filesystem-object-instruction">filesystem</a></span></dt><dt><span class="section"><a href="protocol-reference.html#get-object-instruction">get</a></span></dt><dt><span class="section"><a href="protocol-reference.html#put-object-instruction">put</a></span></dt><dt><span class="section"><a href="protocol-reference.html#undefine-object-instruction">undefine</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#client-handshake-instructions">Client handshake instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#audio-handshake-instruction">audio</a></span></dt><dt><span class="section"><a href="protocol-reference.html#connect-instruction">connect</a></span></dt><dt><span class="section"><a href="protocol-reference.html#image-handshake-instruction">image</a></span></dt><dt><span class="section"><a href="protocol-reference.html#select-instruction">select</a></span></dt><dt><span class="section"><a href="protocol-reference.html#size-handshake-instruction">size</a></span></dt><dt><span class="section"><a href="protocol-reference.html#timezone-handshake-instruction">timezone</a></span></dt><dt><span class="section"><a href="protocol-reference.html#video-handshake-instruction">video</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#server-handshake-instructions">Server handshake instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#args-instruction">args</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#client-control-instructions">Client control instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#client-disconnect-instruction">disconnect</a></span></dt><dt><span class="section"><a href="protocol-reference.html#client-nop-instruction">nop</a></span></dt><dt><span class="section"><a href="protocol-reference.html#client-sync-instruction">sync</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#server-control-instructions">Server control instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#server-disconnect-instruction">disconnect</a></span></dt><dt><span class="section"><a href="protocol-reference.html#error-instruction">error</a></span></dt><dt><span class="section"><a href="protocol-reference.html#log-instruction">log</a></span></dt><dt><span class="section"><a href="protocol-reference.html#server-mouse-instruction">mouse</a></span></dt><dt><span class="section"><a href="protocol-reference.html#server-nop-instruction">nop</a></span></dt><dt><span class="section"><a href="protocol-reference.html#ready-instruction">ready</a></span></dt><dt><span class="section"><a href="protocol-reference.html#server-sync-instruction">sync</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#client-events">Client events</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#key-instruction">key</a></span></dt><dt><span class="section"><a href="protocol-reference.html#client-mouse-instruction">mouse</a></span></dt><dt><span class="section"><a href="protocol-reference.html#size-event-instruction">size</a></span></dt></dl></dd></dl></div><a id="idm46420843554608" class="indexterm"></a><a id="idm46420843553840" class="indexterm"></a><a id="idm46420843553072" class="indexterm"></a><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="drawing-instructions"></a>Drawing instructions</h2></div></div></div><a id="idm46420843551136" class="indexterm"></a><a id="idm46420843550240" class="indexterm"></a><a id="idm46420843548896" class="indexterm"></a><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="arc-instruction"></a>arc</h3></div></div></div><a id="idm46420843545568" class="indexterm"></a><p>The arc instruction adds the specified arc subpath to the existing
+        path, creating a new path if no path exists. The path created can be
+        modified further by other path-type instructions, and finally stroked,
+        filled, and/or closed.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer which should have the specified arc subpath
+                    added.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the center of the circle containing
+                    the arc to be drawn.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the center of the circle containing
+                    the arc to be drawn.</p></dd><dt><span class="term"><em class="parameter"><code>radius</code></em></span></dt><dd><p>The radius of the circle containing the arc to be drawn,
+                    in pixels.</p></dd><dt><span class="term"><em class="parameter"><code>start</code></em></span></dt><dd><p>The starting angle of the arc to be drawn, in
+                    radians.</p></dd><dt><span class="term"><em class="parameter"><code>end</code></em></span></dt><dd><p>The ending angle of the arc to be drawn, in
+                    radians.</p></dd><dt><span class="term"><em class="parameter"><code>negative</code></em></span></dt><dd><p>Non-zero if the arc should be drawn from START to END in
+                    order of decreasing angle, zero otherwise.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="cfill-instruction"></a>cfill</h3></div></div></div><a id="idm46420843391888" class="indexterm"></a><p>Fills the current path with the specified color. This instruction
+        completes the current path. Future path instructions will begin a new
+        path.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when filling the current path in
+                    the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose path should be filled.</p></dd><dt><span class="term"><em class="parameter"><code>r</code></em></span></dt><dd><p>The red component of the color to use to fill the current
+                    path in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>g</code></em></span></dt><dd><p>The green component of the color to use to fill the
+                    current path in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>b</code></em></span></dt><dd><p>The blue component of the color to use to fill the current
+                    path in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>a</code></em></span></dt><dd><p>The alpha component of the color to use to fill the
+                    current path in the specified layer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="clip-instruction"></a>clip</h3></div></div></div><a id="idm46420843375712" class="indexterm"></a><p>Applies the current path as the clipping path. Future operations will
+        only draw within the current path. Note that future clip instructions
+        will also be limited by this path. To set a completely new clipping path,
+        you must first reset the layer with a reset instruction. If you wish to
+        only reset the clipping path, but preserve the current transform matrix,
+        push the layer state before setting the clipping path, and pop the layer
+        state to reset.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose clipping path should be set.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="close-instruction"></a>close</h3></div></div></div><a id="idm46420843369648" class="indexterm"></a><p>Closes the current path by connecting the start and end points with a
+        straight line.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose path should be closed.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="copy-instruction"></a>copy</h3></div></div></div><a id="idm46420843363424" class="indexterm"></a><p>Copies image data from the specified rectangle of the specified layer
+        or buffer to a different location of another specified layer or
+        buffer.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>srclayer</code></em></span></dt><dd><p>The index of the layer to copy image data from.</p></dd><dt><span class="term"><em class="parameter"><code>srcx</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the source
+                    rectangle within the source layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcy</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the source
+                    rectangle within the source layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcwidth</code></em></span></dt><dd><p>The width of the source rectangle within the source
+                    layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcheight</code></em></span></dt><dd><p>The height of the source rectangle within the source
+                    layer.</p></dd><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when drawing the image data on
+                    the destination layer.</p></dd><dt><span class="term"><em class="parameter"><code>dstlayer</code></em></span></dt><dd><p>The index of the layer to draw the image data to.</p></dd><dt><span class="term"><em class="parameter"><code>dstx</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the
+                    destination within the destination layer.</p></dd><dt><span class="term"><em class="parameter"><code>dsty</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the
+                    destination within the destination layer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="cstroke-instruction"></a>cstroke</h3></div></div></div><a id="idm46420843341456" class="indexterm"></a><p>Strokes the current path with the specified color. This instruction
+        completes the current path. Future path instructions will begin a new
+        path.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when stroking the current path
+                    in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose path should be stroked.</p></dd><dt><span class="term"><em class="parameter"><code>cap</code></em></span></dt><dd><p>The index of the line cap style to use. This can be either
+                    butt (0), round (1), or square (2).</p></dd><dt><span class="term"><em class="parameter"><code>join</code></em></span></dt><dd><p>The index of the line join style to use. This can be
+                    either bevel (0), miter (1), or round (2).</p></dd><dt><span class="term"><em class="parameter"><code>thickness</code></em></span></dt><dd><p>The thickness of the stroke to draw, in pixels.</p></dd><dt><span class="term"><em class="parameter"><code>r</code></em></span></dt><dd><p>The red component of the color to use to stroke the
+                    current path in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>g</code></em></span></dt><dd><p>The green component of the color to use to stroke the
+                    current path in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>b</code></em></span></dt><dd><p>The blue component of the color to use to stroke the
+                    current path in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>a</code></em></span></dt><dd><p>The alpha component of the color to use to stroke the
+                    current path in the specified layer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="cursor-instruction"></a>cursor</h3></div></div></div><p>Sets the client's cursor to the image data from the specified
+        rectangle of a layer, with the specified hotspot.</p><a id="idm46420843318640" class="indexterm"></a><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the cursor's hotspot.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the cursor's hotspot.</p></dd><dt><span class="term"><em class="parameter"><code>srclayer</code></em></span></dt><dd><p>The index of the layer to copy image data from.</p></dd><dt><span class="term"><em class="parameter"><code>srcx</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the source
+                    rectangle within the source layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcy</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the source
+                    rectangle within the source layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcwidth</code></em></span></dt><dd><p>The width of the source rectangle within the source
+                    layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcheight</code></em></span></dt><dd><p>The height of the source rectangle within the source
+                    layer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="curve-instruction"></a>curve</h3></div></div></div><a id="idm46420843301312" class="indexterm"></a><p>Adds the specified cubic bezier curve subpath.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer which should have the specified curve subpath
+                    added.</p></dd><dt><span class="term"><em class="parameter"><code>cp1x</code></em></span></dt><dd><p>The X coordinate of the first control point of the
+                    curve.</p></dd><dt><span class="term"><em class="parameter"><code>cp1y</code></em></span></dt><dd><p>The Y coordinate of the first control point of the
+                    curve.</p></dd><dt><span class="term"><em class="parameter"><code>cp2x</code></em></span></dt><dd><p>The X coordinate of the second control point of the
+                    curve.</p></dd><dt><span class="term"><em class="parameter"><code>cp2y</code></em></span></dt><dd><p>The Y coordinate of the second control point of the
+                    curve.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the endpoint of the curve.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the endpoint of the curve.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="dispose-instruction"></a>dispose</h3></div></div></div><a id="idm46420843283440" class="indexterm"></a><p>Removes the specified layer. The specified layer will be recreated as a
+        new layer if it is referenced again.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer to remove.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="distort-instruction"></a>distort</h3></div></div></div><a id="idm46420844230576" class="indexterm"></a><p>Sets the given affine transformation matrix to the layer. Unlike
+        transform, this operation is independent of any previously sent
+        transformation matrix. This operation can be undone by setting the
+        layer's transformation matrix to the identity matrix using
+        distort</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer to distort.</p></dd><dt><span class="term"><em class="parameter"><code>a</code></em></span></dt><dd><p>The matrix value in row 1, column 1.</p></dd><dt><span class="term"><em class="parameter"><code>b</code></em></span></dt><dd><p>The matrix value in row 2, column 1.</p></dd><dt><span class="term"><em class="parameter"><code>c</code></em></span></dt><dd><p>The matrix value in row 1, column 2.</p></dd><dt><span class="term"><em class="parameter"><code>d</code></em></span></dt><dd><p>The matrix value in row 2, column 2.</p></dd><dt><span class="term"><em class="parameter"><code>e</code></em></span></dt><dd><p>The matrix value in row 1, column 3.</p></dd><dt><span class="term"><em class="parameter"><code>f</code></em></span></dt><dd><p>The matrix value in row 2, column 3.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="identity-instruction"></a>identity</h3></div></div></div><a id="idm46420843264784" class="indexterm"></a><p>Resets the transform matrix of the specified layer to the identity
+        matrix.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose transform matrix should be reset.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="lfill-instruction"></a>lfill</h3></div></div></div><a id="idm46420843258304" class="indexterm"></a><p>Fills the current path with a tiled pattern of the image data from the
+        specified layer. This instruction completes the current path. Future
+        path instructions will begin a new path.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when filling the current path in
+                    the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose path should be filled.</p></dd><dt><span class="term"><em class="parameter"><code>srclayer</code></em></span></dt><dd><p>The layer to use as the pattern.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="line-instruction"></a>line</h3></div></div></div><a id="idm46420843248000" class="indexterm"></a><p>Adds the specified line subpath.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer which should have the specified line subpath
+                    added.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the endpoint of the line.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the endpoint of the line.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="lstroke-instruction"></a>lstroke</h3></div></div></div><a id="idm46420843237632" class="indexterm"></a><p>Strokes the current path with a tiled pattern of the image data from
+        the specified layer. This instruction completes the current path. Future
+        path instructions will begin a new path.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when filling the current path in
+                    the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose path should be filled.</p></dd><dt><span class="term"><em class="parameter"><code>cap</code></em></span></dt><dd><p>The index of the line cap style to use. This can be either
+                    butt (0), round (1), or square (2).</p></dd><dt><span class="term"><em class="parameter"><code>join</code></em></span></dt><dd><p>The index of the line join style to use. This can be
+                    either bevel (0), miter (1), or round (2).</p></dd><dt><span class="term"><em class="parameter"><code>thickness</code></em></span></dt><dd><p>The thickness of the stroke to draw, in pixels.</p></dd><dt><span class="term"><em class="parameter"><code>srclayer</code></em></span></dt><dd><p>The layer to use as the pattern.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="move-instruction"></a>move</h3></div></div></div><a id="idm46420843221344" class="indexterm"></a><p>Moves the given layer to the given location within the specified parent
+        layer. This operation is applicable only to layers, and cannot be
+        applied to buffers (layers with negative indices). Applying this
+        operation to the default layer (layer 0) also has no effect.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer to move.</p></dd><dt><span class="term"><em class="parameter"><code>parent</code></em></span></dt><dd><p>The layer that should be the parent of the given
+                    layer.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate to move the layer to.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate to move the layer to.</p></dd><dt><span class="term"><em class="parameter"><code>z</code></em></span></dt><dd><p>The relative Z-ordering of this layer. Layers with larger
+                    values will appear above layers with smaller values.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="pop-instruction"></a>pop</h3></div></div></div><a id="idm46420843206944" class="indexterm"></a><p>Restores the previous state of the specified layer from the stack. The
+        state restored includes the transformation matrix and clipping
+        path.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose state should be restored.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="push-instruction"></a>push</h3></div></div></div><a id="idm46420843200384" class="indexterm"></a><p>Saves the current state of the specified layer to the stack. The state
+        saved includes the current transformation matrix and clipping
+        path.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose state should be saved.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="rect-instruction"></a>rect</h3></div></div></div><a id="idm46420843193840" class="indexterm"></a><p>Adds a rectangular path to the specified layer.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when drawing the image
+                    data.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The destination layer.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the rectangle
+                    to draw.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the rectangle
+                    to draw.</p></dd><dt><span class="term"><em class="parameter"><code>width</code></em></span></dt><dd><p>The width of the rectangle to draw.</p></dd><dt><span class="term"><em class="parameter"><code>height</code></em></span></dt><dd><p>The width of the rectangle to draw.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="reset-instruction"></a>reset</h3></div></div></div><a id="idm46420843177600" class="indexterm"></a><p>Resets the transformation and clip state of the layer.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose state should be reset.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="set-instruction"></a>set</h3></div></div></div><a id="idm46420843171168" class="indexterm"></a><p>Sets the given client-side property to the specified value. Currently
+        there is only one property: miter-limit, the maximum distance between
+        the inner and outer points of a miter joint, proportional to stroke
+        width (if miter-limit is set to 10.0, the default, then the maximum
+        distance between the points of the joint is 10 times the stroke
+        width).</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose property should be set.</p></dd><dt><span class="term"><em class="parameter"><code>property</code></em></span></dt><dd><p>The name of the property to set.</p></dd><dt><span class="term"><em class="parameter"><code>value</code></em></span></dt><dd><p>The value to set the given property to.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="shade-instruction"></a>shade</h3></div></div></div><a id="idm46420843160928" class="indexterm"></a><p>Sets the opacity of the given layer.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose opacity should be set.</p></dd><dt><span class="term"><em class="parameter"><code>opacity</code></em></span></dt><dd><p>The opacity of the layer, where 0 is completely
+                    transparent, and 255 is completely opaque.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="size-instruction"></a>size</h3></div></div></div><a id="idm46420843152560" class="indexterm"></a><p>Sets the size of the specified layer.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer to resize.</p></dd><dt><span class="term"><em class="parameter"><code>width</code></em></span></dt><dd><p>The new width of the layer</p></dd><dt><span class="term"><em class="parameter"><code>height</code></em></span></dt><dd><p>The new height of the layer</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="start-instruction"></a>start</h3></div></div></div><a id="idm46420843142288" class="indexterm"></a><p>Starts a new subpath at the specified point.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer which should start a new subpath.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the first point of the new
+                    subpath.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the first point of the new
+                    subpath.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="transfer-instruction"></a>transfer</h3></div></div></div><a id="idm46420843131856" class="indexterm"></a><p>Transfers image data from the specified rectangle of the specified layer or buffer to a
+        different location of another specified layer or buffer, using the specified transfer
+        function. </p><p>For a list of available functions, see the definition of
+            <code class="classname">guac_transfer_function</code> within the <a class="link" href="https://github.com/apache/guacamole-server/blob/master/src/libguac/guacamole/protocol-types.h" target="_top"><code class="filename">guacamole/protocol-types.h</code></a> header included with
+        libguac.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>srclayer</code></em></span></dt><dd><p>The index of the layer to transfer image data from.</p></dd><dt><span class="term"><em class="parameter"><code>srcx</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the source
+                    rectangle within the source layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcy</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the source
+                    rectangle within the source layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcwidth</code></em></span></dt><dd><p>The width of the source rectangle within the source
+                    layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcheight</code></em></span></dt><dd><p>The height of the source rectangle within the source
+                    layer.</p></dd><dt><span class="term"><em class="parameter"><code>function</code></em></span></dt><dd><p>The index of the transfer function to use.</p><p>For a list of available functions, see the definition of
+                        <code class="classname">guac_transfer_function</code> within the <a class="link" href="https://github.com/apache/guacamole-server/blob/master/src/libguac/guacamole/protocol-types.h" target="_top"><code class="filename">guacamole/protocol-types.h</code></a> header included
+                    with libguac.</p></dd><dt><span class="term"><em class="parameter"><code>dstlayer</code></em></span></dt><dd><p>The index of the layer to draw the image data to.</p></dd><dt><span class="term"><em class="parameter"><code>dstx</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the
+                    destination within the destination layer.</p></dd><dt><span class="term"><em class="parameter"><code>dsty</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the
+                    destination within the destination layer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="transform-instruction"></a>transform</h3></div></div></div><a id="idm46420843105472" class="indexterm"></a><p>Applies the specified transformation matrix to future operations.
+        Unlike distort, this operation is dependent on any previously sent
+        transformation matrices, and only affects future operations. This
+        operation can be undone by setting the layer's transformation matrix to
+        the identity matrix using identity, but image data already drawn will
+        not be affected.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer to apply the given transformation matrix
+                    to.</p></dd><dt><span class="term"><em class="parameter"><code>a</code></em></span></dt><dd><p>The matrix value in row 1, column 1.</p></dd><dt><span class="term"><em class="parameter"><code>b</code></em></span></dt><dd><p>The matrix value in row 2, column 1.</p></dd><dt><span class="term"><em class="parameter"><code>c</code></em></span></dt><dd><p>The matrix value in row 1, column 2.</p></dd><dt><span class="term"><em class="parameter"><code>d</code></em></span></dt><dd><p>The matrix value in row 2, column 2.</p></dd><dt><span class="term"><em class="parameter"><code>e</code></em></span></dt><dd><p>The matrix value in row 1, column 3.</p></dd><dt><span class="term"><em class="parameter"><code>f</code></em></span></dt><dd><p>The matrix value in row 2, column 3.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="streaming-instructions"></a>Streaming instructions</h2></div></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="ack-instruction"></a>ack</h3></div></div></div><a id="idm46420843086176" class="indexterm"></a><p>The ack instruction acknowledges a received data blob, providing a status code and message
+        indicating whether the operation associated with the blob succeeded or failed. A status code
+        other than <code class="constant">SUCCESS</code> implicitly ends the stream.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream the corresponding blob was received on.</p></dd><dt><span class="term"><em class="parameter"><code>message</code></em></span></dt><dd><p>A human-readable error message. This typically is not exposed within any user
+                    interface, and mainly helps with debugging.</p></dd><dt><span class="term"><em class="parameter"><code>status</code></em></span></dt><dd><p>The Guacamole status code denoting success or failure.</p></dd></dl></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="status-codes"></a>Status codes</h4></div></div></div><p>Several Guacamole instructions, and various other internals of the Guacamole core, use
+            a common set of numeric status codes. These codes denote success or failure of
+            operations, and can be rendered by user interfaces in a human-readable
+                way.</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /><col class="c3" /></colgroup><thead><tr><th>Code</th><th>Name</th><th>Description</th></tr></thead><tbody><tr><td>0</td><td><code class="constant">SUCCESS</code></td><td>
+                                <p>The operation succeeded. No error.</p>
+                            </td></tr><tr><td>256</td><td><code class="constant">UNSUPPORTED</code></td><td>
+                                <p>The requested operation is unsupported.</p>
+                            </td></tr><tr><td>512</td><td><code class="constant">SERVER_ERROR</code></td><td>
+                                <p>An internal error occurred, and the operation could not be
+                                    performed.</p>
+                            </td></tr><tr><td>513</td><td><code class="constant">SERVER_BUSY</code></td><td>
+                                <p>The operation could not be performed because the server is
+                                    busy.</p>
+                            </td></tr><tr><td>514</td><td><code class="constant">UPSTREAM_TIMEOUT</code></td><td>
+                                <p>The upstream server is not responding. In most cases, the
+                                    upstream server is the remote desktop server.</p>
+                            </td></tr><tr><td>515</td><td><code class="constant">UPSTREAM_ERROR</code></td><td>
+                                <p>The upstream server encountered an error. In most cases, the
+                                    upstream server is the remote desktop server.</p>
+                            </td></tr><tr><td>516</td><td><code class="constant">RESOURCE_NOT_FOUND</code></td><td>
+                                <p>An associated resource, such as a file or stream, could not be
+                                    found, and thus the operation failed.</p>
+                            </td></tr><tr><td>517</td><td><code class="constant">RESOURCE_CONFLICT</code></td><td>
+                                <p>A resource is already in use or locked, preventing the
+                                    requested operation.</p>
+                            </td></tr><tr><td>518</td><td><code class="constant">RESOURCE_CLOSED</code></td><td>
+                                <p>The requested operation cannot continue because the associated
+                                    resource has been closed.</p>
+                            </td></tr><tr><td>519</td><td><code class="constant">UPSTREAM_NOT_FOUND</code></td><td>
+                                <p>The upstream server does not appear to exist, or cannot be
+                                    reached over the network. In most cases, the upstream server is
+                                    the remote desktop server.</p>
+                            </td></tr><tr><td>520</td><td><code class="constant">UPSTREAM_UNAVAILABLE</code></td><td>
+                                <p>The upstream server is refusing to service connections. In
+                                    most cases, the upstream server is the remote desktop
+                                    server.</p>
+                            </td></tr><tr><td>521</td><td><code class="constant">SESSION_CONFLICT</code></td><td>
+                                <p>The session within the upstream server has ended because it
+                                    conflicts with another session. In most cases, the upstream
+                                    server is the remote desktop server.</p>
+                            </td></tr><tr><td>522</td><td><code class="constant">SESSION_TIMEOUT</code></td><td>
+                                <p>The session within the upstream server has ended because it
+                                    appeared to be inactive. In most cases, the upstream server is
+                                    the remote desktop server.</p>
+                            </td></tr><tr><td>523</td><td><code class="constant">SESSION_CLOSED</code></td><td>
+                                <p>The session within the upstream server has been forcibly
+                                    closed. In most cases, the upstream server is the remote desktop
+                                    server.</p>
+                            </td></tr><tr><td>768</td><td><code class="constant">CLIENT_BAD_REQUEST</code></td><td>
+                                <p>The parameters of the request are illegal or otherwise
+                                    invalid.</p>
+                            </td></tr><tr><td>769</td><td><code class="constant">CLIENT_UNAUTHORIZED</code></td><td>
+                                <p>Permission was denied, because the user is not logged in. Note
+                                    that the user may be logged into Guacamole, but still not logged
+                                    in with respect to the remote desktop server.</p>
+                            </td></tr><tr><td>771</td><td><code class="constant">CLIENT_FORBIDDEN</code></td><td>
+                                <p>Permission was denied, and logging in will not solve the
+                                    problem.</p>
+                            </td></tr><tr><td>776</td><td><code class="constant">CLIENT_TIMEOUT</code></td><td>
+                                <p>The client (usually the user of Guacamole or their browser) is
+                                    taking too long to respond.</p>
+                            </td></tr><tr><td>781</td><td><code class="constant">CLIENT_OVERRUN</code></td><td>
+                                <p>The client has sent more data than the protocol allows.</p>
+                            </td></tr><tr><td>783</td><td><code class="constant">CLIENT_BAD_TYPE</code></td><td>
+                                <p>The client has sent data of an unexpected or illegal
+                                    type.</p>
+                            </td></tr><tr><td>797</td><td><code class="constant">CLIENT_TOO_MANY</code></td><td>
+                                <p>The client is already using too many resources. Existing
+                                    resources must be freed before further requests are
+                                    allowed.</p>
+                            </td></tr></tbody></table></div></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="argv-instruction"></a>argv</h3></div></div></div><a id="idm46420843012912" class="indexterm"></a><p>Allocates a new stream, associating it with the given argument (connection parameter)
+        metadata. The relevant connection parameter data will later be sent along the stream with
+        blob instructions. If sent by the client, this data will be the desired new value of the
+        connection parameter being changed, and will be applied if the server supports changing that
+        connection parameter while the connection is active. If sent by the server, this data will
+        be the current value of a connection parameter being exposed to the client.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the connection parameter being sent. In most cases, this will
+                    be "text/plain".</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>The name of the connection parameter whose value is being sent.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="audio-stream-instruction"></a>audio</h3></div></div></div><a id="idm46420843002672" class="indexterm"></a><p>Allocates a new stream, associating it with the given audio metadata. Audio data will
+        later be sent along the stream with blob instructions. The mimetype given must be a mimetype
+        previously specified by the client during the handshake procedure. Playback will begin
+        immediately and will continue as long as blobs are received along the stream.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the audio data being sent.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="blob-instruction"></a>blob</h3></div></div></div><a id="idm46420842994352" class="indexterm"></a><p>Sends a blob of data along the given stream. This blob of data is arbitrary,
+        base64-encoded data, and only has meaning to the Guacamole client or server through the
+        metadata assigned to the stream when the stream was allocated.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream along which the given data should be sent.</p></dd><dt><span class="term"><em class="parameter"><code>data</code></em></span></dt><dd><p>The base64-encoded data to send.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="clipboard-instruction"></a>clipboard</h3></div></div></div><a id="idm46420842985824" class="indexterm"></a><p>Allocates a new stream, associating it with the given clipboard metadata. The clipboard
+        data will later be sent along the stream with blob instructions. If sent by the client, this
+        data will be the contents of the client-side clipboard. If sent by the server, this data
+        will be the contents of the clipboard within the remote desktop.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the clipboard data being sent. In most cases, this will be
+                    "text/plain".</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="end-instruction"></a>end</h3></div></div></div><a id="idm46420842977440" class="indexterm"></a><p>The end instruction terminates an open stream, freeing any client-side or server-side
+        resources. Data sent to a terminated stream will be ignored. Terminating a stream with the
+        end instruction only denotes the end of the stream and does not imply an error.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream the corresponding blob was received on.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="file-stream-instruction"></a>file</h3></div></div></div><a id="idm46420842971120" class="indexterm"></a><p>Allocates a new stream, associating it with the given arbitrary file metadata. The
+        contents of the file will later be sent along the stream with blob instructions. The full
+        size of the file need not be known ahead of time.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the file being sent.</p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>The name of the file, as it would be saved on a filesystem.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="img-instruction"></a>img</h3></div></div></div><a id="idm46420842960672" class="indexterm"></a><p>Allocates a new stream, associating it with the metadata of an image update, including the
+        image type, the destination layer, and destination coordinates. The contents of the image
+        will later be sent along the stream with blob instructions. The full size of the image need
+        not be known ahead of time.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the image being sent.</p></dd><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when drawing the image data.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The destination layer.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the destination within the
+                    destination layer.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the destination within the
+                    destination layer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="nest-stream-instruction"></a>nest</h3></div></div></div><a id="idm46420842944464" class="indexterm"></a><div class="important"><h3 class="title">Important</h3><p><span class="emphasis"><em>The <code class="function">nest</code> instruction has been
+            deprecated.</em></span></p><p>The <code class="function">nest</code> instruction is no longer necessary, having been replaced
+            by other streaming instructions (such as <a class="link" href="protocol-reference.html#blob-instruction" title="blob"><code class="function">blob</code></a>, <a class="link" href="protocol-reference.html#ack-instruction" title="ack"><code class="function">ack</code></a>, and <a class="link" href="protocol-reference.html#end-instruction" title="end"><code class="function">end</code></a>). Code using the <code class="function">nest</code>
+            instruction should instead write instructions directly without wrapping those
+            instructions within <code class="function">nest</code>.</p></div><p>Encodes part of one or more instructions within a single instruction,
+        associating that packet of data with a stream index. Future nest
+        instructions with the same stream index will append their data to the
+        same logical stream on the client side. Once nested data is received on
+        the client side, the client immediately executes any completed
+        instructions within the associated stream, in order.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>index</code></em></span></dt><dd><p>The index of the stream this data should be appended to.
+                    This index is completely arbitrary, and denotes only how
+                    nested data should be reassembled.</p></dd><dt><span class="term"><em class="parameter"><code>data</code></em></span></dt><dd><p>The protocol data, containing part of one or more
+                    instructions.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="pipe-instruction"></a>pipe</h3></div></div></div><a id="idm46420842929616" class="indexterm"></a><p>Allocates a new stream, associating it with the given arbitrary named pipe metadata. The
+        contents of the pipe will later be sent along the stream with blob instructions. Pipes in
+        the Guacamole protocol are unidirectional, named pipes, very similar to a UNIX FIFO or pipe.
+        It is up to client-side code to handle pipe data appropriately, likely based upon the name
+        of the pipe, which is arbitrary. Pipes may be opened by either the client or the
+        server.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the data being sent along the pipe.</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>The arbitrary name of the pipe, which may have special meaning to client-side
+                    code.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="video-stream-instruction"></a>video</h3></div></div></div><a id="idm46420842919264" class="indexterm"></a><p>Allocates a new stream, associating it with the given video metadata. Video data will
+        later be sent along the stream with blob instructions. The mimetype given must be a mimetype
+        previously specified by the client during the handshake procedure. Playback will begin
+        immediately and will continue as long as blobs are received along the stream.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The index of the layer to stream the video data into. The effect of other
+                    drawing operations on this layer during playback is undefined, as the client
+                    codec implementation may leverage any rendering mechanism it sees fit, including
+                    hardware decoding.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the video data being sent.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="object-instructions"></a>Object instructions</h2></div></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="body-object-instruction"></a>body</h3></div></div></div><a id="idm46420842907408" class="indexterm"></a><p>Allocates a new stream, associating it with the name of a stream previously requested by a
+        get instruction. The contents of the stream will be sent later with blob instructions. The
+        full size of the stream need not be known ahead of time.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>object</code></em></span></dt><dd><p>The index of the object associated with this stream.</p></dd><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the data being sent.</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>The name of the stream associated with the object.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="filesystem-object-instruction"></a>filesystem</h3></div></div></div><a id="idm46420842894832" class="indexterm"></a><p>Allocates a new object, associating it with the given arbitrary filesystem metadata. The
+        contents of files and directories within the filesystem will later be sent along streams
+        requested with get instructions or created with put instructions.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>object</code></em></span></dt><dd><p>The index of the object to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>The name of the filesystem.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="get-object-instruction"></a>get</h3></div></div></div><a id="idm46420842886304" class="indexterm"></a><p>Requests that a new stream be created, providing read access to the object stream having
+        the given name. The requested stream will be created, in response, with a body
+        instruction.</p><p>Stream names are arbitrary and dictated by the object from which they are requested, with
+        the exception of the root stream of the object itself, which has the reserved name
+            "<code class="constant">/</code>". The root stream of the object has the mimetype
+            "<code class="constant">application/vnd.glyptodon.guacamole.stream-index+json</code>", and
+        provides a simple JSON map of available stream names to their corresponding mimetypes. If
+        the object contains a hierarchy of streams, some of these streams may also be
+            "<code class="constant">application/vnd.glyptodon.guacamole.stream-index+json</code>".</p><p>For example, the ultimate content of the body stream provided in response to a get request
+        for the root stream of an object containing two text streams, "A" and "B", would be the
+        following:</p><div class="informalexample"><pre class="programlisting">{
+    "A" : "text/plain",
+    "B" : "text/plain"
+}</pre></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>object</code></em></span></dt><dd><p>The index of the object to request a stream from.</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>The name of the stream being requested from the given object.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="put-object-instruction"></a>put</h3></div></div></div><a id="idm46420842873984" class="indexterm"></a><p>Allocates a new stream, associating it with the given arbitrary object and stream name.
+        The contents of the stream will later be sent with blob instructions.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>object</code></em></span></dt><dd><p>The index of the object associated with this stream.</p></dd><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the data being sent.</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>The name of the stream within the given object to which data is being
+                    sent.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="undefine-object-instruction"></a>undefine</h3></div></div></div><a id="idm46420842861520" class="indexterm"></a><p>Undefines an existing object, allowing its index to be reused by another future object.
+        The resource associated with the original object may or may not continue to exist - it
+        simply no longer has an associated object.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>object</code></em></span></dt><dd><p>The index of the object to undefine.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="client-handshake-instructions"></a>Client handshake instructions</h2></div></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="audio-handshake-instruction"></a>audio</h3></div></div></div><a id="idm46420842853488" class="indexterm"></a><p>Specifies which audio mimetypes are supported by the client. Each
+        parameter must be a single mimetype, listed in order of client
+        preference, with the optimal mimetype being the first parameter.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="connect-instruction"></a>connect</h3></div></div></div><a id="idm46420842849264" class="indexterm"></a><p>Begins the connection using the previously specified protocol with the
+        given arguments.  This is the last instruction sent during the handshake
+        phase.</p><p>The parameters of this instruction correspond exactly to the
+        parameters of the received args instruction. If the received args
+        instruction has, for example, three parameters, the responding connect
+        instruction must also have three parameters.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="image-handshake-instruction"></a>image</h3></div></div></div><a id="idm46420842844368" class="indexterm"></a><p>Specifies which image mimetypes are supported by the client. Each parameter must be a
+        single mimetype, listed in order of client preference, with the optimal mimetype being the
+        first parameter.</p><p>It is expected that the supported mimetypes will include at least "image/png" and
+        "image/jpeg", and the server <span class="emphasis"><em>may</em></span> safely assume that these mimetypes are
+        supported, even if they are absent from the handshake.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="select-instruction"></a>select</h3></div></div></div><a id="idm46420842839072" class="indexterm"></a><p>Requests that the connection be made using the specified protocol, or to the specified
+        existing connection. Whether a new connection is established or an existing connection is
+        joined depends on whether the ID of an active connection is provided. The Guacamole protocol
+        dictates that the IDs generated for active connections (provided during the handshake of
+        those connections via the <a class="link" href="protocol-reference.html#ready-instruction" title="ready">ready instruction</a>) must not collide with any
+        supported protocols.</p><p>This is the first instruction sent during the handshake phase.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ID</code></em></span></dt><dd><p>The name of the protocol to use, such as "vnc" or "rdp", or the ID of the
+                    active connection to be joined, as returned via the <a class="link" href="protocol-reference.html#ready-instruction" title="ready">ready
+                        instruction</a>.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="size-handshake-instruction"></a>size</h3></div></div></div><a id="idm46420842830256" class="indexterm"></a><p>Specifies the client's optimal screen size and resolution.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>width</code></em></span></dt><dd><p>The optimal screen width.</p></dd><dt><span class="term"><em class="parameter"><code>height</code></em></span></dt><dd><p>The optimal screen height.</p></dd><dt><span class="term"><em class="parameter"><code>dpi</code></em></span></dt><dd><p>The optimal screen resolution, in approximate DPI.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="timezone-handshake-instruction"></a>timezone</h3></div></div></div><a id="idm46420842819888" class="indexterm"></a><p>Specifies the timezone of the client system, in IANA zone key format.
+        This is a single-value parameter, and may be used by protocols to
+        set the timezone on the remote computer, if the remote system allows
+        the timezone to be configured.  This instruction is optional.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>timezone</code></em></span></dt><dd></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="video-handshake-instruction"></a>video</h3></div></div></div><a id="idm46420842813152" class="indexterm"></a><p>Specifies which video mimetypes are supported by the client. Each
+        parameter must be a single mimetype, listed in order of client
+        preference, with the optimal mimetype being the first parameter.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="server-handshake-instructions"></a>Server handshake instructions</h2></div></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="args-instruction"></a>args</h3></div></div></div><p>Reports the expected format of the argument list for the protocol
+        requested by the client. This message can be sent by the server during
+        the handshake phase only.</p><p>The first parameter of this instruction will be the protocol version
+        supported by the server.  This is used to negotiate protocol
+        compatibility between the client and the server, with the highest
+        supported protocol by both sides being chosen.  Versions of Guacamole
+        prior to 1.1.0 do not support protocol version negotiation, and will
+        silently ignore this instruction.</p><p>The remaining parameters of the args instruction are the names of all
+        connection parameters accepted by the server for the protocol selected
+        by the client, in order. The client's responding connect instruction
+        must contain the values of each of these parameters in the same order.
+    </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="client-control-instructions"></a>Client control instructions</h2></div></div></div><a id="idm46420842804032" class="indexterm"></a><a id="idm46420842803136" class="indexterm"></a><a id="idm46420842801792" class="indexterm"></a><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="client-disconnect-instruction"></a>disconnect</h3></div></div></div><a id="idm46420842797968" class="indexterm"></a><p>Notifies the server that the connection is about to be closed by the
+        client. This message can be sent by the client during any phase, and
+        takes no parameters.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="client-nop-instruction"></a>nop</h3></div></div></div><a id="idm46420842794032" class="indexterm"></a><p>The client "nop" instruction does absolutely nothing, has no parameters, and is
+        universally ignored by the Guacamole server. Its main use is as a keep-alive signal, and may
+        be sent by Guacamole clients when there is no activity to ensure the socket is not closed
+        due to timeout.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="client-sync-instruction"></a>sync</h3></div></div></div><a id="idm46420842789728" class="indexterm"></a><p>Reports that all operations as of the given server-relative timestamp
+        have been completed. If a sync is received from the server, the client
+        must respond with a corresponding sync once all previous operations have
+        been completed, or the server may stop sending updates until the client
+        catches up. For the client, sending a sync with a timestamp newer than
+        any timestamp received from the server is an error.</p><p>Both client and server are expected to occasionally send sync to
+        report on current operation execution state.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>timestamp</code></em></span></dt><dd><p>A valid server-relative timestamp.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="server-control-instructions"></a>Server control instructions</h2></div></div></div><a id="idm46420842783888" class="indexterm"></a><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="server-disconnect-instruction"></a>disconnect</h3></div></div></div><a id="idm46420842780064" class="indexterm"></a><p>Notifies the client that the connection is about to be closed by the server. This message
+        can be sent by the server during any phase, and takes no parameters.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="error-instruction"></a>error</h3></div></div></div><a id="idm46420842776016" class="indexterm"></a><p>Notifies the client that the connection is about to be closed due to
+        the specified error. This message can be sent by the server during any
+        phase.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>text</code></em></span></dt><dd><p>An arbitrary message describing the error</p></dd><dt><span class="term"><em class="parameter"><code>status</code></em></span></dt><dd><p>The Guacamole status code describing the error. For a list of status codes,
+                    see the table in <a class="xref" href="protocol-reference.html#status-codes" title="Status codes">the section called “Status codes”</a>.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="log-instruction"></a>log</h3></div></div></div><a id="idm46420842766736" class="indexterm"></a><p>The log instruction sends an arbitrary string for debugging purposes. This instruction
+        will be ignored by Guacamole clients, but can be seen in protocol dumps if such dumps become
+        necessary. Sending a log instruction can help add context when searching for the cause of a
+        fault in protocol support.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>message</code></em></span></dt><dd><p>An arbitrary, human-readable message.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="server-mouse-instruction"></a>mouse</h3></div></div></div><a id="idm46420842760000" class="indexterm"></a><p>Reports that a user on the current connection has moved the mouse to the given
+        coordinates.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The current X coordinate of the mouse pointer.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The current Y coordinate of the mouse pointer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="server-nop-instruction"></a>nop</h3></div></div></div><a id="idm46420842751552" class="indexterm"></a><p>The server "nop" instruction does absolutely nothing, has no parameters, and is
+        universally ignored by Guacamole clients. Its main use is as a keep-alive signal, and may be
+        sent by guacd or client plugins when there is no activity to ensure the socket is not closed
+        due to timeout.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="ready-instruction"></a>ready</h3></div></div></div><a id="idm46420842747248" class="indexterm"></a><p>The ready instruction sends the ID of a new connection and marks the beginning of the
+        interactive phase of a new, successful connection. The ID sent is a completely arbitrary
+        string, and has no standard format. It must be unique from all existing and future
+        connections and may not match the name of any installed protocol support.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ID</code></em></span></dt><dd><p>An arbitrary, unique identifier for the current connection. This identifier
+                    must be unique from all existing and future connections, and may not match the
+                    name of any installed protocol support (such as "vnc" or "rdp").</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="server-sync-instruction"></a>sync</h3></div></div></div><a id="idm46420842740288" class="indexterm"></a><p>Indicates that the given timestamp is the current timestamp as of all
+        previous operations. The client must respond to every sync instruction
+        received.</p><p>Both client and server are expected to occasionally send sync to
+        report on current operation execution state.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>timestamp</code></em></span></dt><dd><p>A valid server-relative timestamp.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="client-events"></a>Client events</h2></div></div></div><a id="idm46420842734320" class="indexterm"></a><a id="idm46420842733424" class="indexterm"></a><a id="idm46420842732080" class="indexterm"></a><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="key-instruction"></a>key</h3></div></div></div><a id="idm46420842728352" class="indexterm"></a><p>Sends the specified key press or release event.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>keysym</code></em></span></dt><dd><p>The <a class="link" href="http://www.x.org/wiki/KeySyms" target="_top">X11
+                        keysym</a> of the key being pressed or
+                    released.</p></dd><dt><span class="term"><em class="parameter"><code>pressed</code></em></span></dt><dd><p>0 if the key is not pressed, 1 if the key is
+                    pressed.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="client-mouse-instruction"></a>mouse</h3></div></div></div><a id="idm46420842718976" class="indexterm"></a><p>Sends the specified mouse movement or button press or release event (or
+        combination thereof).</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The current X coordinate of the mouse pointer.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The current Y coordinate of the mouse pointer.</p></dd><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The button mask, representing the pressed or released
+                    status of each mouse button.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="size-event-instruction"></a>size</h3></div></div></div><a id="idm46420842708528" class="indexterm"></a><p>Specifies that the client's optimal screen size has changed from what was specified during
+        the handshake, or from previously-sent "size" instructions.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>width</code></em></span></dt><dd><p>The new, optimal screen width.</p></dd><dt><span class="term"><em class="parameter"><code>height</code></em></span></dt><dd><p>The new, optimal screen height.</p></dd></dl></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="faq.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendices.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="book-index.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix A. FAQ </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Index</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/proxying-guacamole.html b/doc/1.1.0/gug/proxying-guacamole.html
new file mode 100644
index 0000000..b66dd10
--- /dev/null
+++ b/doc/1.1.0/gug/proxying-guacamole.html
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 4. Proxying Guacamole</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="guacamole-docker.html" title="Chapter 3. Installing Guacamole with Docker" /><link rel="next" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 4. Proxying Guacamole</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="guacamole-docker.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="configuring-guacamole.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="proxying-guacamole"></a>Chapter 4. Proxying Guacamole</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="proxying-guacamole.html#preparing-servlet-container">Preparing your servlet container</a></span></dt><dd><dl><dt><span class="section"><a href="proxying-guacamole.html#tomcat-remote-ip">Setting up the Remote IP Valve</a></span></dt></dl></dd><dt><span class="section"><a href="proxying-guacamole.html#nginx">Nginx</a></span></dt><dd><dl><dt><span class="section"><a href="proxying-guacamole.html#proxying-with-nginx">Proxying Guacamole</a></span></dt><dt><span class="section"><a href="proxying-guacamole.html#changing-path-with-nginx">Changing the path</a></span></dt></dl></dd><dt><span class="section"><a href="proxying-guacamole.html#apache">Apache and <span class="package">mod_proxy</span></a></span></dt><dd><dl><dt><span class="section"><a href="proxying-guacamole.html#proxying-with-apache">Proxying Guacamole</a></span></dt><dt><span class="section"><a href="proxying-guacamole.html#websocket-and-apache">Proxying the WebSocket tunnel</a></span></dt><dt><span class="section"><a href="proxying-guacamole.html#changing-path-with-apache">Changing the path</a></span></dt><dt><span class="section"><a href="proxying-guacamole.html#disable-tunnel-logging">Disabling logging of tunnel requests</a></span></dt></dl></dd></dl></div><p>Like most web applications, Guacamole can be placed behind a reverse proxy. For production
+        deployments of Guacamole, this is <span class="emphasis"><em>highly recommended</em></span>. It provides
+        flexibility and, if your proxy is properly configured for SSL, encryption.</p><p>Proxying isolates privileged operations within native applications that can safely drop
+        those privileges when no longer needed, using Java only for unprivileged tasks. On Linux and
+        UNIX systems, a process must be running with root privileges to listen on any port under
+        1024, including the standard HTTP and HTTPS ports (80 and 443 respectively). If the servlet
+        container instead listens on a higher port, such as the default port 8080, it can run as a
+        reduced-privilege user, allowing the reverse proxy to bear the burden of root privileges. As
+        a native application, the reverse proxy can make system calls to safely drop root privileges
+        once the port is open; a Java application like Tomcat cannot do this.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="preparing-servlet-container"></a>Preparing your servlet container</h2></div></div></div><p>Your servlet container is most likely already configured to listen for HTTP
+            connections on port 8080 as this is the default. If this is the case, and you can
+            already access Guacamole over port 8080 from a web browser, you need not make any
+            further changes to its configuration.</p><p>If you <span class="emphasis"><em>have</em></span> changed this, perhaps with the intent of proxying
+            Guacamole over AJP, <span class="emphasis"><em>change it back</em></span>. Using Guacamole over AJP is
+            unsupported as it is known to cause problems, namely:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>WebSocket will not work over AJP, forcing Guacamole to fallback to HTTP,
+                    possibly resulting in reduced performance.</p></li><li class="listitem"><p>Apache 2.4.3 and older does not support the HTTP PATCH method over AJP,
+                    preventing the Guacamole management interface from functioning properly.</p></li></ol></div><p>The connector entry within <code class="filename">conf/server.xml</code> should look like
+            this:</p><div class="informalexample"><pre class="programlisting">&lt;Connector port="8080" protocol="HTTP/1.1" 
+           connectionTimeout="20000"
+           URIEncoding="UTF-8"
+           redirectPort="8443" /&gt;</pre></div><p>Be sure to specify the <code class="code">URIEncoding="UTF-8"</code> attribute as above to ensure
+            that connection names, user names, etc. are properly received by the web application. If
+            you will be creating connections that have Cyrillic, Chinese, Japanese, or other
+            non-Latin characters in their names or parameter values, this attribute is
+            required.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="tomcat-remote-ip"></a>Setting up the Remote IP Valve</h3></div></div></div><p>By default, when Tomcat is behind a reverse proxy, the remote IP address of the
+                client that it sees is that of the proxy rather than the original client.  In order
+                to allow applications hosted within Tomcat, like Guacamole, to see the actual IP
+                address of the client, you have to configure both the reverse proxy and Tomcat.</p><p>Because the remote IP address in Guacamole is used for auditing of user logins and
+                connections and could potentially be used for authentication, it is important that you
+                are either in direct control of the proxy server or you explicitly trust it.  Passing
+                the remote IP address is done using the <code class="code">X-Forwarded-For</code> header, and,
+                as with most HTTP headers, attackers can attempt to spoof this header in order to
+                manipulate the behavior of the web server, gain unauthorized access to the system,
+                or attempt to disguise the host or IP address they are coming from.</p><p>One final caveat: This may not work as expected if there are other upstream proxy
+                servers between your reverse proxy and the clients access Guacamole.  Other proxies
+                or firewalls can mask the IP address of the client, and if the configuration of
+                those is not within your control you may end up with multiple clients appearing to
+                come from the same IP address or host.  Make sure you take this into account when
+                configuring the system and looking at the data provided.</p><p>Configuring Tomcat to pass through the remote IP address provided by the reverse
+                proxy in the <code class="code">X-Forwarded-For</code> header requires the configuration of what
+                Tomcat calls a Valve.  In this case, it is the <a class="link" href="https://tomcat.apache.org/tomcat-8.5-doc/config/valve.html#Remote_IP_Valve" target="_top">
+                    <code class="code">RemoteIpValve</code></a> and is configured in the
+                <code class="filename">conf/server.xml</code> file, in the <code class="code">&lt;Host&gt;</code> section:
+            </p><div class="informalexample"><pre class="programlisting">&lt;Valve className="org.apache.catalina.valves.RemoteIpValve"
+               internalProxies="127.0.0.1"
+               remoteIpHeader="x-forwarded-for"
+               remoteIpProxiesHeader="x-forwarded-by"
+               protocolHeader="x-forwarded-proto" /&gt;</pre></div><p>The <em class="parameter"><code>internalProxies</code></em> value should be set to the IP address
+                or addresses of any and all reverse proxy servers that will be accessing this Tomcat
+                instance directly.  Often it is run on the same system that runs Tomcat, but in other
+                cases (for example, when running Docker), it may be on a different system/container and
+                may need to be set to the actual IP address of the reverse proxy system.  Only proxy
+                servers listed in the <em class="parameter"><code>internalProxies</code></em> or
+                <em class="parameter"><code>trustedProxies</code></em> parameters will be allowed to manipulate the
+                remote IP address information.  The other parameters in this configuration line allow
+                you to control which headers coming from the proxy server(s) are used for various
+                remote host information.  They are as follows:
+            </p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>remoteIpHeader</code></em></td><td>
+                                <p>The header that is queried to learn the client IP address
+                                    of the client that originated the request.  The standard
+                                    value is <code class="code">X-Forwarded-For</code>, but can
+                                    be configured to any header you like.  The IP address in this
+                                    header will be available to Java applications in the
+                                    <code class="code">request.getRemoteAddr()</code> method.</p>
+                            </td></tr><tr><td><em class="parameter"><code>remoteIpProxiesHeader</code></em></td><td>
+                                <p>The header that is queried to learn the IP address of the
+                                    proxy server that forwarded the request.  The default value
+                                    is <code class="code">X-Forwarded-By</code>, but can be configured to
+                                    any header that fits your environment.  This value will only
+                                    be allowed by the valve if the proxy used is listed in the
+                                    <em class="parameter"><code>trustedProxies</code></em> parameter.  Otherwise
+                                    this header will not be available.</p>
+                            </td></tr><tr><td><em class="parameter"><code>protocolHeader</code></em></td><td>
+                                <p>The header that is queried to determine the protocol
+                                    that the client used to connect to the service.  The default
+                                    value is <code class="code">X-Forwarded-Proto</code>, but can be
+                                    configured to fit your environment.</p>
+                            </td></tr></tbody></table></div><p>In addition to configuring Tomcat to properly handle these headers, you also may
+                need to configure your reverse proxy appropriately to send the headers.  You can
+                find instructions for this in <a class="xref" href="proxying-guacamole.html#nginx" title="Nginx">the section called “Nginx”</a> - the Apache web server
+                passes it through by default.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="nginx"></a>Nginx</h2></div></div></div><p>Nginx can be used as a reverse proxy, and supports WebSocket out-of-the-box <a class="link" href="http://nginx.com/blog/websocket-nginx/" target="_top">since version 1.3</a>. Both
+            Apache and Nginx require some additional configuration for proxying of WebSocket to work
+            properly.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="proxying-with-nginx"></a>Proxying Guacamole</h3></div></div></div><p>Nginx does support WebSocket for proxying, but requires that the "Connection" and
+                "Upgrade" HTTP headers are set explicitly due to the nature of the WebSocket
+                protocol. From the Nginx documentation:</p><div class="blockquote"><blockquote class="blockquote"><p>NGINX supports WebSocket by allowing a tunnel to be set up between a client
+                    and a back-end server. For NGINX to send the Upgrade request from the client to
+                    the back-end server, Upgrade and Connection headers must be set explicitly.
+                    ...</p></blockquote></div><p>The proxy configuration belongs within a dedicated <a class="link" href="http://nginx.org/en/docs/http/ngx_http_core_module.html#location" target="_top"><code class="code">location</code></a> block, declaring the backend hosting Guacamole
+                and explicitly specifying the "Connection" and "Upgrade" headers mentioned
+                earlier:</p><div class="informalexample"><pre class="programlisting">location /guacamole/ {
+    proxy_pass http://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/;
+    proxy_buffering off;
+    proxy_http_version 1.1;
+    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+    proxy_set_header Upgrade $http_upgrade;
+    proxy_set_header Connection $http_connection;
+    access_log off;
+}</pre></div><p>Here, <em class="replaceable"><code>HOSTNAME</code></em> is the hostname or IP address of the
+                machine hosting your servlet container, and <em class="replaceable"><code>8080</code></em> is the
+                port that servlet container is configured to use. You will need to replace these
+                values with the correct values for your server.</p><p>Related to the RemoteIpValve configuration for tomcat, documented in
+                <a class="xref" href="proxying-guacamole.html#tomcat-remote-ip" title="Setting up the Remote IP Valve">the section called “Setting up the Remote IP Valve”</a>, the
+                <code class="code">proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;</code> line is
+                important if you want the <code class="code">X-Forwarded-For</code> header to be passed through
+                to the web application server and available to applications running inside it.</p><div class="important"><h3 class="title">Important</h3><p><span class="emphasis"><em>Do not forget to specify "<code class="code">proxy_buffering
+                        off</code>".</em></span></p><p>Most proxies, including Nginx, will buffer all data sent over the connection,
+                    waiting until the connection is closed before sending that data to the client.
+                    As Guacamole's HTTP tunnel relies on streaming data to the client over an open
+                    connection, excessive buffering will effectively block Guacamole connections,
+                    rendering Guacamole useless.</p><p><span class="emphasis"><em>If the option "<code class="code">proxy_buffering off</code>" is not specified,
+                        Guacamole may not work</em></span>.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="changing-path-with-nginx"></a>Changing the path</h3></div></div></div><p>If you wish to serve Guacamole through Nginx under a path other than
+                    <code class="uri">/guacamole/</code>, the configuration will need to be altered slightly to
+                take cookies into account. Although Guacamole does not rely on receipt of cookies in
+                general, cookies are required for the proper operation of the HTTP tunnel. If the
+                HTTP tunnel is used, and cookies cannot be set, users may be unexpectedly denied
+                access to their connections.</p><p>Regardless of the location specified for the proxy, cookies set by Guacamole will
+                be set using its own absolute path within the backend (<code class="uri">/guacamole/</code>). If
+                this path differs from that used by Nginx, the path in the cookie needs to be
+                modified using <code class="code">proxy_cookie_path</code>:</p><div class="informalexample"><pre class="programlisting">location /<em class="replaceable"><code>new-path/</code></em> {
+    proxy_pass http://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/;
+    proxy_buffering off;
+    proxy_http_version 1.1;
+    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+    proxy_set_header Upgrade $http_upgrade;
+    proxy_set_header Connection $http_connection;
+    <span class="emphasis"><em>proxy_cookie_path /guacamole/ /<em class="replaceable"><code>new-path/</code></em>;</em></span>
+    access_log off;
+}</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="apache"></a>Apache and <span class="package">mod_proxy</span></h2></div></div></div><p>Apache supports reverse proxy configurations through <a class="link" href="http://httpd.apache.org/docs/2.4/mod/mod_proxy.html" target="_top"><span class="package">mod_proxy</span></a>. Apache 2.4.5 and later also support
+            proxying of WebSocket through a sub-module called <a class="link" href="http://httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.html" target="_top"><span class="package">mod_proxy_wstunnel</span></a>. Both of these modules will need
+            to be enabled for proxying of Guacamole to work properly.</p><p>Lacking <span class="package">mod_proxy_wstunnel</span>, it is still possible to proxy
+            Guacamole, but Guacamole will be unable to use WebSocket. It will instead fallback to
+            using the HTTP tunnel, resulting in reduced performance.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="proxying-with-apache"></a>Proxying Guacamole</h3></div></div></div><p>Configuring Apache to proxy HTTP requests requires using the
+                    <em class="parameter"><code>ProxyPass</code></em> and <em class="parameter"><code>ProxyPassReverse</code></em>
+                directives, which are provided by the <span class="package">mod_proxy</span> module. These
+                directives describe how HTTP traffic should be routed to the web server behind the
+                proxy:</p><div class="informalexample"><pre class="programlisting">&lt;Location /guacamole/&gt;
+    Order allow,deny
+    Allow from all
+    ProxyPass http://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/ flushpackets=on
+    ProxyPassReverse http://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/
+&lt;/Location&gt;</pre></div><p>Here, <em class="replaceable"><code>HOSTNAME</code></em> is the hostname or IP address of the
+                machine hosting your servlet container, and <em class="replaceable"><code>8080</code></em> is the
+                port that servlet container is configured to use. You will need to replace these
+                values with the correct values for your server.</p><div class="important"><h3 class="title">Important</h3><p><span class="emphasis"><em>Do not forget the <code class="option">flushpackets=on</code>
+                        option.</em></span></p><p>Most proxies, including <span class="package">mod_proxy</span>, will buffer all data
+                    sent over the connection, waiting until the connection is closed before sending
+                    that data to the client. As Guacamole's HTTP tunnel relies on streaming data to
+                    the client over an open connection, excessive buffering will effectively block
+                    Guacamole connections, rendering Guacamole useless.</p><p><span class="emphasis"><em>If the option <code class="option">flushpackets=on</code> is not specified,
+                        Guacamole may not work</em></span>.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="websocket-and-apache"></a>Proxying the WebSocket tunnel</h3></div></div></div><p>Apache will not automatically proxy WebSocket connections, but you can proxy them
+                separately with Apache 2.4.5 and later using <span class="package">mod_proxy_wstunnel</span>.
+                After enabling <span class="package">mod_proxy_wstunnel</span> a secondary
+                    <code class="code">Location</code> section can be added which explicitly proxies the
+                Guacamole WebSocket tunnel, located at
+                <code class="uri">/guacamole/websocket-tunnel</code>:</p><div class="informalexample"><pre class="programlisting">&lt;Location /guacamole/websocket-tunnel&gt;
+    Order allow,deny
+    Allow from all
+    ProxyPass ws://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/websocket-tunnel
+    ProxyPassReverse ws://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/websocket-tunnel
+&lt;/Location&gt;</pre></div><p>Lacking this, Guacamole will still work by using normal HTTP, but network latency
+                will be more pronounced with respect to user input, and performance may be
+                lower.</p><div class="important"><h3 class="title">Important</h3><p>The <code class="code">Location</code> section for <code class="uri">/guacamole/websocket-tunnel</code>
+                    must be placed after the <code class="code">Location</code> section for the rest of
+                    Guacamole.</p><p>Apache evaluates all Location sections, giving priority to the last section
+                    that matches. If the <code class="uri">/guacamole/websocket-tunnel</code> section comes first,
+                    the section for <code class="uri">/guacamole/</code> will match instead, and WebSocket will
+                    not be proxied correctly.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="changing-path-with-apache"></a>Changing the path</h3></div></div></div><p>If you wish to serve Guacamole through Apache under a path other than
+                    <code class="uri">/guacamole/</code>, the configuration required for Apache will be slightly
+                different than the examples above due to cookies.</p><p>Guacamole does not rely on receipt of cookies for tracking whether a user is
+                logged in, but cookies are required for the proper operation of the HTTP tunnel. If
+                the HTTP tunnel is used, and cookies cannot be set, users will be unexpectedly
+                denied access to connections they legitimately should have access to.</p><p>Cookies are set using the absolute path of the web application
+                    (<code class="uri">/guacamole/</code>). If this path differs from that used by Apache, the
+                path in the cookie needs to be modified using the
+                    <em class="parameter"><code>ProxyPassReverseCookiePath</code></em> directive:</p><div class="informalexample"><pre class="programlisting">&lt;Location /<em class="replaceable"><code>new-path/</code></em>&gt;
+    Order allow,deny
+    Allow from all
+    ProxyPass http://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/ flushpackets=on
+    ProxyPassReverse http://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/
+    <span class="emphasis"><em>ProxyPassReverseCookiePath /guacamole/ /<em class="replaceable"><code>new-path/</code></em></em></span>
+&lt;/Location&gt;
+
+&lt;Location /<em class="replaceable"><code>new-path</code></em>/websocket-tunnel&gt;
+    Order allow,deny
+    Allow from all
+    ProxyPass ws://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/websocket-tunnel
+    ProxyPassReverse ws://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/websocket-tunnel
+&lt;/Location&gt;</pre></div><p>This directive is not needed for the WebSocket section, as it is not applicable.
+                Cookies are only used by Guacamole within the HTTP tunnel.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="disable-tunnel-logging"></a>Disabling logging of tunnel requests</h3></div></div></div><p>If WebSocket is unavailable, Guacamole will fallback to using an HTTP-based
+                tunnel. The Guacamole HTTP tunnel works by transferring a continuous stream of data
+                over multiple short-lived streams, each associated with a separate HTTP request. By
+                default, Apache will log each of these requests, resulting in a rather bloated
+                access log.</p><p>There is little value in a log file filled with identical tunnel requests, so it
+                is recommended to explicitly disable logging of those requests. Apache does provide
+                a means of matching URL patterns and setting environment variables based on whether
+                the URL matches. Logging can then be restricted to requests which lack this
+                environment variable:</p><div class="informalexample"><pre class="programlisting">SetEnvIf Request_URI "^<em class="replaceable"><code>/guacamole</code></em>/tunnel" dontlog
+CustomLog  <em class="replaceable"><code>/var/log/apache2/guac.log</code></em> common env=!dontlog</pre></div><p>Note that if you are serving Guacamole under a path different from
+                    <code class="uri">/guacamole/</code>, you will need to change the value of
+                    <em class="parameter"><code>Request_URI</code></em> above accordingly.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="guacamole-docker.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="configuring-guacamole.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 3. Installing Guacamole with Docker </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 5. Configuring Guacamole</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/radius-auth.html b/doc/1.1.0/gug/radius-auth.html
new file mode 100644
index 0000000..11fa447
--- /dev/null
+++ b/doc/1.1.0/gug/radius-auth.html
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 13. RADIUS Authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="openid-auth.html" title="Chapter 12. OpenID Connect Authentication" /><link rel="next" href="adhoc-connections.html" title="Chapter 14. Ad-hoc Connections" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 13. RADIUS Authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="openid-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="adhoc-connections.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="radius-auth"></a>Chapter 13. RADIUS Authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="radius-auth.html#radius-downloading">Downloading the RADIUS authentication extension</a></span></dt><dt><span class="section"><a href="radius-auth.html#installing-radius-auth">Installing RADIUS authentication</a></span></dt><dt><span class="section"><a href="radius-auth.html#guac-radius-config">Configuring Guacamole for RADIUS authentication</a></span></dt><dt><span class="section"><a href="radius-auth.html#completing-radius-install">Completing the installation</a></span></dt></dl></div><a id="idm46420847467376" class="indexterm"></a><p>Guacamole supports delegating authentication to a RADIUS service, such as FreeRADIUS, to
+        validate username and password combinations, and to support multi-factor authentication.  This
+        authentication method must be layered on top of some other authentication extension, such as
+        those available from the main project website, in order to provide access to actual
+        connections.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="radius-downloading"></a>Downloading the RADIUS authentication extension</h2></div></div></div><p>The RADIUS extension depends on software that is covered by a LGPL license, which is
+            incompatible with the Apache 2.0 license under which Guacamole is licensed.  Due to this
+            dependency, the Guacamole project cannot distribute binary versions of the RADIUS extension.
+            If you want to use this extension you will need to build the code - or at least the RADIUS
+            extension yourself.  Build instructions can be found in the section
+            <a class="xref" href="installing-guacamole.html" title="Chapter 2. Installing Guacamole natively">Chapter 2, <em>Installing Guacamole natively</em></a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-radius-auth"></a>Installing RADIUS authentication</h2></div></div></div><p>The RADIUS extension must be explicitly enabled during build time in order to generate
+            the binaries and resulting JAR file.  This is done by adding the flag <code class="option">-Plgpl-extensions</code>
+            to the Maven command line during the build, and should result in the output below:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>mvn clean package -Plgpl-extensions</code></strong>
+<code class="computeroutput">[INFO] --- maven-assembly-plugin:2.5.3:single (make-source-archive) @ guacamole-client ---
+[INFO] Reading assembly descriptor: project-assembly.xml
+[INFO] Building tar: /home/guac/guacamole-client/target/guacamole-client-1.1.0.tar.gz
+[INFO] ------------------------------------------------------------------------
+[INFO] Reactor Summary:
+[INFO] 
+[INFO] guacamole-common .................................. SUCCESS [6.037s]
+[INFO] guacamole-ext ..................................... SUCCESS [5.382s]
+[INFO] guacamole-common-js ............................... SUCCESS [0.751s]
+[INFO] guacamole ......................................... SUCCESS [9.767s]
+[INFO] guacamole-auth-cas ................................ SUCCESS [2.811s]
+[INFO] guacamole-auth-duo ................................ SUCCESS [2.441s]
+[INFO] guacamole-auth-header ............................. SUCCESS [1.875s]
+[INFO] guacamole-auth-jdbc ............................... SUCCESS [0.277s]
+[INFO] guacamole-auth-jdbc-base .......................... SUCCESS [2.144s]
+[INFO] guacamole-auth-jdbc-mysql ......................... SUCCESS [5.637s]
+[INFO] guacamole-auth-jdbc-postgresql .................... SUCCESS [5.465s]
+[INFO] guacamole-auth-jdbc-sqlserver ..................... SUCCESS [5.398s]
+[INFO] guacamole-auth-jdbc-dist .......................... SUCCESS [0.824s]
+[INFO] guacamole-auth-ldap ............................... SUCCESS [2.743s]
+[INFO] guacamole-auth-noauth ............................. SUCCESS [0.964s]
+[INFO] guacamole-auth-openid ............................. SUCCESS [2.533s]
+[INFO] guacamole-example ................................. SUCCESS [0.888s]
+[INFO] guacamole-playback-example ........................ SUCCESS [0.628s]
+[INFO] guacamole-auth-radius ............................. SUCCESS [17.729s]
+[INFO] guacamole-client .................................. SUCCESS [5.645s]
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESS
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 1:20.134s
+[INFO] Finished at: Wed Jan 31 09:45:41 EST 2018
+[INFO] Final Memory: 47M/749M
+[INFO] ------------------------------------------------------------------------</code>
+<code class="prompt">$</code></pre></div><p>After the build completes successfully, the extension will be in the
+            <code class="filename">extensions/guacamole-auth-radius/target/</code> directory, and will be
+            called guacamole-auth-radius-1.1.0.jar.  This extension file can be copied to
+            the <code class="filename">GUACAMOLE_HOME/extensions</code> directory.
+            <span class="emphasis"><em>If you are unsure where <code class="varname">GUACAMOLE_HOME</code> is located on
+            your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before
+            proceeding.</em></span></p><p>Extensions are loaded in alphabetical order, and authentication is performed
+            in the order in which the extensions were loaded.  If you are stacking the
+            RADIUS extension with another extension, like the JDBC extension, in order to
+            store connection information, you may need to change the name of the RADIUS
+            extension such that it is evaluated prior to the JDBC extension - otherwise
+            an authentication failure in one of the previous modules may block the RADIUS
+            module from ever being evaluated.</p><p>To install the RADIUS authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-radius-1.1.0.jar</code> into
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use RADIUS authentication, as described
+                    below.</p></li></ol></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guac-radius-config"></a>Configuring Guacamole for RADIUS authentication</h2></div></div></div><a id="idm46420848490096" class="indexterm"></a><a id="idm46420848489184" class="indexterm"></a><p>This extension provides several configuration properties in order 
+            to communicate properly with the RADIUS server to which it needs to authenticate.  It is 
+            important that you know several key pieces of information about the RADIUS server - 
+            at a minimum, the server name or IP, the authentication port, the authentication 
+            protocol in use by the server, and the shared secret for the RADIUS client.  If you 
+            are responsible for the RADIUS server, you'll need to properly configure these items 
+            to get Guacamole to authenticate properly.  If you're not responsible for the RADIUS 
+            server you will need to work with the administrator to get all of the necessary 
+            configuration items for the server.  These items will need to be configured in the 
+            <a class="link" href="configuring-guacamole.html#initial-setup" title="guacamole.properties"><code class="filename">guacamole.properties</code></a> 
+            file.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">radius-hostname</span></span></dt><dd><p>The RADIUS server to authenticate against.  If not specified, 
+                        localhost will be used.</p></dd><dt><span class="term"><span class="property">radius-auth-port</span></span></dt><dd><p>The RADIUS authentication port on which the RADIUS service is
+                        is listening.  If not specified, the default of 1812 will be
+                        used.</p></dd><dt><span class="term"><span class="property">radius-shared-secret</span></span></dt><dd><p>The shared secret to use when talking to the RADIUS server.  This
+                        parameter is required and the extension will not load if this is not
+                        specified.
+                        </p></dd><dt><span class="term"><span class="property">radius-auth-protocol</span></span></dt><dd><p>The authentication protocol to use when talking to the RADIUS server.
+                        This parameter is required for the extension to operate.  Supported
+                        values are: pap, chap, mschapv1, mschapv2, eap-md5, eap-tls, and eap-ttls.
+                        Support for PEAP is implemented inside the extension, but, due to a regression
+                        in the JRadius implementation, it is currently broken.  Also, if you specify
+                        eap-ttls you will also need to specify the
+                        <span class="property">radius-eap-ttls-inner-protocol</span> parameter in order to
+                        properly configure the protocol used inside the EAP TTLS tunnel.</p></dd><dt><span class="term"><span class="property">radius-key-file</span></span></dt><dd><p>The combination certificate and private key pair to use for TLS-based
+                        RADIUS protocols that require a client-side certificate.  This parameter
+                        should specify the absolute path to the file.  By default the extension
+                        will look for a file called radius.key in the GUACAMOLE_HOME directory.
+                        </p></dd><dt><span class="term"><span class="property">radius-key-type</span></span></dt><dd><p>The file type of the keystore specified by the <span class="property">radius-key-file</span> 
+                        parameter.  Valid keystore types are pem, jceks, jks, and pkcs12.
+                        If not specified, this defaults to pkcs12, the default used by 
+                        the JRadius library.</p></dd><dt><span class="term"><span class="property">radius-key-password</span></span></dt><dd><p>The password of the private key specified in the 
+                        <span class="property">radius-key-file</span> parameter.  By default the extension   
+                        will not use any password when trying to open the key file.</p></dd><dt><span class="term"><span class="property">radius-ca-file</span></span></dt><dd><p>The absolute path to the file that stores the certificate authority
+                        certificates for encrypted connections to the RADIUS server.  By default
+                        a file with the name ca.crt in the GUACAMOLE_HOME directory will be used.
+                        </p></dd><dt><span class="term"><span class="property">radius-ca-type</span></span></dt><dd><p>The file type of keystore used for the certificate authority.  Valid formats are
+                        pem, jceks, jks, and pkcs12.  If not specified this defaults to pem.</p></dd><dt><span class="term"><span class="property">radius-ca-password</span></span></dt><dd><p>The password used to protect the certificate authority store, if
+                        any.  If unspecified the extension will attempt to read the CA
+                        store without any password.</p></dd><dt><span class="term"><span class="property">radius-trust-all</span></span></dt><dd><p>This parameter controls whether or not the RADIUS extension
+                    should trust all certificates or verify them against known good
+                    certificate authorities.  Set to true to allow the RADIUS server
+                    to connect without validating certificates.  The default is false,
+                    which causes certificates to be validated.</p></dd><dt><span class="term"><span class="property">radius-retries</span></span></dt><dd><p>The number of times the client will retry the connection to the 
+                        RADIUS server and not receive a response before giving up.  By default
+                        the client will try the connection at most 5 times.</p></dd><dt><span class="term"><span class="property">radius-timeout</span></span></dt><dd><p>The timeout for a RADIUS connection in seconds.  By default the client
+                        will wait for a response from the server for at most 60 seconds.</p></dd><dt><span class="term"><span class="property">radius-eap-ttls-inner-protocol</span></span></dt><dd><p>When EAP-TTLS is used, this parameter specifies the inner (tunneled)
+                        protocol to use talking to the RADIUS server.  It is required when the
+                        <span class="property">radius-auth-protocol</span> parameter is set to eap-ttls.
+                        If the <span class="property">radius-auth-protocol</span> value is set to something
+                        other than eap-ttls, this parameter has no effect and will be ignored. Valid
+                        options for this are any of the values for
+                        <span class="property">radius-auth-protocol</span>, except for eap-ttls.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="completing-radius-install"></a>Completing the installation</h2></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+            newly-installed extensions during startup, so your servlet container will need to be
+            restarted before HTTP header authentication can be used. <span class="emphasis"><em>Doing this will
+            disconnect all active users, so be sure that it is safe to do so prior to
+            attempting installation.</em></span> When ready, restart your servlet container
+            and give the new authentication a try.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="openid-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="adhoc-connections.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 12. OpenID Connect Authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 14. Ad-hoc Connections</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/totp-auth.html b/doc/1.1.0/gug/totp-auth.html
new file mode 100644
index 0000000..930a504
--- /dev/null
+++ b/doc/1.1.0/gug/totp-auth.html
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 9. TOTP two-factor authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="duo-auth.html" title="Chapter 8. Duo two-factor authentication" /><link rel="next" href="header-auth.html" title="Chapter 10. HTTP header authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 9. TOTP two-factor authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="duo-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="header-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="totp-auth"></a>Chapter 9. TOTP two-factor authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="totp-auth.html#totp-prerequisites">Prerequisites</a></span></dt><dt><span class="section"><a href="totp-auth.html#totp-architecture">How TOTP works with Guacamole</a></span></dt><dd><dl><dt><span class="section"><a href="totp-auth.html#totp-enrollment">Enrollment</a></span></dt></dl></dd><dt><span class="section"><a href="totp-auth.html#totp-downloading">Downloading the TOTP extension</a></span></dt><dt><span class="section"><a href="totp-auth.html#installing-totp-auth">Installing TOTP authentication</a></span></dt><dd><dl><dt><span class="section"><a href="totp-auth.html#guac-totp-config">Configuring Guacamole for TOTP</a></span></dt><dt><span class="section"><a href="totp-auth.html#completing-totp-install">Completing the installation</a></span></dt></dl></dd></dl></div><a id="idm46420857820416" class="indexterm"></a><p>Guacamole supports TOTP as a second authentication factor, layered on top of any other
+        authentication extension, including those available from the main project website, providing
+            <a class="link" href="totp-auth.html#totp-prerequisites" title="Prerequisites">base requirements for key storage and
+            enrollment</a> are met. The TOTP authentication extension allows users to be
+        additionally verified against a user-specific and secret key generated during <a class="link" href="totp-auth.html#totp-enrollment" title="Enrollment">enrollment of their authentication device</a>.</p><div class="important"><h3 class="title">Important</h3><p>This chapter involves modifying the contents of <code class="varname">GUACAMOLE_HOME</code> -
+            the Guacamole configuration directory. If you are unsure where
+                <code class="varname">GUACAMOLE_HOME</code> is located on your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before proceeding.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="totp-prerequisites"></a>Prerequisites</h2></div></div></div><p>The enrollment process used by Guacamole's TOTP support needs to be able to store an
+            automatically-generated key within the user's account, and will be operating with the
+            privileges of that user when it does so. With this in mind, there are requirements which
+            must be satisfied for TOTP to work as expected:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Another extension must be installed which supports storage of arbitrary data
+                    from other extensions. <span class="emphasis"><em>Currently the only extensions provided with
+                        Guacamole which support this kind of storage are the <a class="link" href="jdbc-auth.html" title="Chapter 6. Database authentication">database authentication
+                        extensions</a>.</em></span></p></li><li class="listitem"><p>Within whichever extension provides the storage described above, users
+                    requiring TOTP must be granted permission to update their own accounts (to
+                    update their passwords, etc.). This privilege is managed within the <a class="link" href="administration.html#user-management" title="User management">administrative web interface</a> with a
+                    checkbox labeled "change own password". <span class="emphasis"><em>If a user lacks this
+                        permission, the TOTP extension will not be able to generate and store the
+                        user's TOTP key during enrollment, and TOTP will be disabled for that
+                        user.</em></span></p></li></ul></div><p>It is thus recommended that authentication against a database be fully configured
+            prior to setting up TOTP. Instructions walking through the setup of database
+            authentication for Guacamole are provided in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="totp-architecture"></a>How TOTP works with Guacamole</h2></div></div></div><p>Guacamole provides support for TOTP as a second authentication factor. To make use of
+            the TOTP authentication extension, some other authentication mechanism will need be
+            configured, as well. When a user attempts to log into Guacamole, other installed
+            authentication methods will be queried first:</p><div class="informalfigure"><div class="mediaobject"><img src="images/totp-auth-factor-1.png" width="180" /></div></div><p>Only after authentication has succeeded with one of those methods will Guacamole
+            prompt the user to further verify their identity with an authentication code:</p><div class="informalfigure"><div class="mediaobject"><img src="images/totp-auth-factor-2.png" width="360" /></div></div><p>If both the initial authentication attempt and verification using TOTP succeed, the
+            user will be allowed in. If either mechanism fails, access to Guacamole is
+            denied.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="totp-enrollment"></a>Enrollment</h3></div></div></div><p>If the user does not yet have a TOTP key associated with their account (they have
+                not yet completed enrollment), they will be required to enroll an authentication
+                device after passing the first authentication factor. A QR code containing an
+                automatically-generated key will be presented to the user to be scanned by their
+                authentication app or device:</p><div class="mediaobject"><img src="images/totp-enroll.png" width="360" /></div><p>If the authentication device does not support scanning QR codes for enrollment,
+                the details within the QR code can be revealed by clicking the "Show" link next to
+                the "Details" header. These values can then be entered manually:</p><div class="mediaobject"><img src="images/totp-enroll-detail.png" width="360" /></div><p>Enrollment is completed once the user enters a valid authentication code generated
+                by their device using the provided key.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="totp-downloading"></a>Downloading the TOTP extension</h2></div></div></div><p>The TOTP authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The TOTP authentication extension is packaged as a <code class="filename">.tar.gz</code> file
+            containing only the extension itself,
+            <code class="filename">guacamole-auth-totp-1.1.0.jar</code>, which must ultimately be placed in
+                <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-totp-auth"></a>Installing TOTP authentication</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory. To install
+            the TOTP authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-totp-1.1.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use TOTP authentication, as described below.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>You will need to restart Guacamole by restarting your servlet container in order
+                to complete the installation. Doing this will disconnect all active users, so be
+                sure that it is safe to do so prior to attempting installation. If you do not
+                configure the TOTP authentication properly, Guacamole will not start up again until
+                the configuration is fixed.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-totp-config"></a>Configuring Guacamole for TOTP</h3></div></div></div><a id="idm46420848413344" class="indexterm"></a><a id="idm46420848412448" class="indexterm"></a><p>With the exception of <a class="link" href="totp-auth.html#totp-prerequisites" title="Prerequisites">the storage and
+                    permission requirements described above</a>, the TOTP extension should work
+                out-of-the-box without any additional configuration. Defaults have been chosen for
+                all configuration parameters such that the TOTP extension will be compatible with
+                Google Authenticator and similar, popular TOTP implementations.</p><p>If your intended authentication application or device has different requirements,
+                or you wish to override the defaults, additional properties may be specified within
+                    <code class="filename">guacamole.properties</code>:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">totp-issuer</span></span></dt><dd><p>The human-readable name of the entity issuing user accounts. If not
+                            specified, "Apache Guacamole" will be used by default.</p></dd><dt><span class="term"><span class="property">totp-digits</span></span></dt><dd><p>The number of digits which should be included in each generated TOTP
+                            code. Legal values are 6, 7, or 8. By default, 6-digit codes are
+                            generated.</p></dd><dt><span class="term"><span class="property">totp-period</span></span></dt><dd><p>The duration that each generated code should remain valid, in seconds.
+                            By default, each code remains valid for 30 seconds.</p></dd><dt><span class="term"><span class="property">totp-mode</span></span></dt><dd><p>The hash algorithm that should be used to generate TOTP codes. Legal
+                            values are "sha1", "sha256", and "sha512". By default, "sha1" is
+                            used.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="completing-totp-install"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before TOTP authentication will take effect. Restart your servlet
+                container and give the new authentication a try.</p><p>
+                </p><div class="important"><h3 class="title">Important</h3><p>You only need to restart your servlet container. <span class="emphasis"><em>You do not need
+                            to restart <span class="package">guacd</span></em></span>.</p><p><span class="package">guacd</span> is completely independent of the web application
+                        and does not deal with <code class="filename">guacamole.properties</code> or the
+                        authentication system in any way. Since you are already restarting the
+                        servlet container, restarting <span class="package">guacd</span> as well technically
+                        won't hurt anything, but doing so is completely pointless.</p></div><p>
+            </p><p>If Guacamole does not come back online after restarting your servlet container,
+                check the logs. Problems in the configuration of the TOTP extension may prevent
+                Guacamole from starting up, and any such errors will be recorded in the logs of your
+                servlet container.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="duo-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="header-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 8. Duo two-factor authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 10. HTTP header authentication</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/troubleshooting.html b/doc/1.1.0/gug/troubleshooting.html
new file mode 100644
index 0000000..9fb5623
--- /dev/null
+++ b/doc/1.1.0/gug/troubleshooting.html
@@ -0,0 +1,397 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 17. Troubleshooting</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="administration.html" title="Chapter 16. Administration" /><link rel="next" href="developers-guide.html" title="Part II. Developer's Guide" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 17. Troubleshooting</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="administration.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="developers-guide.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="troubleshooting"></a>Chapter 17. Troubleshooting</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="troubleshooting.html#not-working">It isn't working</a></span></dt><dd><dl><dt><span class="section"><a href="troubleshooting.html#idm46420845291632">No graphics appear</a></span></dt><dt><span class="section"><a href="troubleshooting.html#idm46420845285632">Connections involving Unicode don't work</a></span></dt></dl></dd><dt><span class="section"><a href="troubleshooting.html#syslog">syslog</a></span></dt><dd><dl><dt><span class="section"><a href="troubleshooting.html#guacd-errors">guacd errors</a></span></dt><dt><span class="section"><a href="troubleshooting.html#libguac-client-vnc-errors">libguac-client-vnc errors</a></span></dt><dt><span class="section"><a href="troubleshooting.html#libguac-client-rdp-errors">libguac-client-rdp errors</a></span></dt></dl></dd><dt><span class="section"><a href="troubleshooting.html#servlet-container-logs">Servlet container logs</a></span></dt><dd><dl><dt><span class="section"><a href="troubleshooting.html#user-mapping-xml-errors"><code class="filename">user-mapping.xml</code> errors</a></span></dt><dt><span class="section"><a href="troubleshooting.html#guacamole-properties-errors"><code class="filename">guacamole.properties</code> errors</a></span></dt><dt><span class="section"><a href="troubleshooting.html#guacamole-auth-errors">Authentication errors</a></span></dt><dt><span class="section"><a href="troubleshooting.html#guacamole-tunnel-errors">Tunnel errors</a></span></dt></dl></dd></dl></div><a id="idm46420845296272" class="indexterm"></a><a id="idm46420845295376" class="indexterm"></a><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="not-working"></a>It isn't working</h2></div></div></div><p>If Guacamole isn't working, chances are something isn't configured
+            properly, or something is wrong with the network. Thankfully,
+            Guacamole and all its components log errors thoroughly, so the
+            problem can usually be traced down fairly easily if you know where
+            to look. Troubleshooting Guacamole usually boils down to checking
+            either syslog or your servlet container's logs (likely
+            Tomcat).</p><p>Failing all that, you can always post a question in the forums, or
+            if you truly feel you've discovered a bug, you can create a new
+            ticket in Trac. Beware that if something isn't working, and there
+            are errors in the logs describing the problem, it is usually not a
+            bug, and the best place to handle such things is through consulting
+            this guide or the forums.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420845291632"></a>No graphics appear</h3></div></div></div><a id="idm46420845290896" class="indexterm"></a><a id="idm46420845290032" class="indexterm"></a><p>If you <span class="emphasis"><em>never</em></span> see any graphics appear, or you see "Connecting,
+                waiting for first update..." for a while and then are disconnected, the most likely
+                cause is a proxy.</p><p>Guacamole relies on streaming data to you over a persistent connection. If
+                software between Guacamole and your browser is buffering all incoming data, such as
+                a proxy, this data never makes it to your browser, and you will just see it wait
+                indefinitely. Eventually, thinking the client has disconnected, Guacamole closes the
+                connection, at which point the proxy finally flushes its buffer and you see
+                graphics! ... just in time to see it disconnect.</p><p>The solution here is to either modify your proxy settings to flush packets
+                immediately as they are received, or to use HTTPS. Proxies are required to pass
+                HTTPS through untouched, and this usually solves the problem.</p><p>Even if you aren't aware of any proxy, there may be one in place. Corporate
+                firewalls very often incorporate proxies. Antivirus software may buffer incoming
+                data until the connection is closed and the data is scanned for viruses.
+                Virtualization software may detect HTTP data and buffer the connection just like a
+                proxy. If all else fails, try HTTPS - it's the only secure way to do this
+                anyway.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420845285632"></a>Connections involving Unicode don't work</h3></div></div></div><a id="idm46420845284864" class="indexterm"></a><a id="idm46420845283968" class="indexterm"></a><a id="idm46420845283072" class="indexterm"></a><p>If you are using Tomcat, beware that you <span class="emphasis"><em>must</em></span> set the
+                    <code class="code">URIEncoding="UTF-8"</code> attribute on all connectors in your
+                    <code class="filename">server.xml</code>. If you are using a different servlet container,
+                you need to find out whether it requires special options to support UTF-8 in URIs,
+                and change the required settings to enable such support.</p><p>Without UTF-8 support enabled for URIs, Unicode characters in connection names
+                will not be received properly when connecting, and Guacamole will thing the
+                connection you requested does not exist. Similarly, if you are using the built-in
+                administration interface, parameters involving Unicode characters will not save
+                properly without these options enabled.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="syslog"></a>syslog</h2></div></div></div><a id="idm46420845338224" class="indexterm"></a><p>guacd and libguac-based programs (such as all client plugins) log
+            informational messages and errors to syslog. Specifically, guacd
+            uses syslog, and it exposes this logging facility to everything it
+            loads (client plugins), thus if the VNC or RDP support plugins
+            encounter errors, they log those errors over the logging facilities
+            exposed by guacd, in this case syslog.</p><p>Once you guacd is started, you'll see entries like the following
+            in syslog:</p><div class="informalexample"><pre class="screen">guacd[19663]: Guacamole proxy daemon (guacd) version 0.7.0
+guacd[19663]: Unable to bind socket to host ::1, port 4823: Address family
+              not supported by protocol
+guacd[19663]: Successfully bound socket to host 127.0.0.1, port 4823
+guacd[19663]: Exiting and passing control to PID 19665
+guacd[19665]: Exiting and passing control to PID 19666
+guacd[19666]: Listening on host 127.0.0.1, port 4823</pre></div><p>Each entry relevant to Guacamole has the prefix "guacd", denoting
+            the program that produced the entry, followed by the process ID,
+            followed by the message. The entries above show guacamole starting
+            successfully and listening on a non-default port 4823.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacd-errors"></a>guacd errors</h3></div></div></div><a id="idm46420845333392" class="indexterm"></a><a id="idm46420845332048" class="indexterm"></a><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845330704"></a>Unable to bind socket to any addresses.</h4></div></div></div><p>This means that guacd failed to start up at all because
+                    the port it wants to listen on is already taken at all
+                    addresses attempted. The details of what guacd tried will be
+                    listed in the log entries above this. To solve the problem,
+                    find what port guacd was trying to listen on (the default is
+                    4822) and check if any other service is listening on that
+                    port.</p><p>If another service is listening on the default port, you
+                    can always specify a non-standard port for guacd by using
+                    the <code class="option">-l<em class="replaceable"><code> PORT</code></em></code>
+                    option (that's a lowercase "L", not a number "1"), where
+                        <em class="replaceable"><code>PORT</code></em> is the number of the
+                    port to listen on. Beware that you will likely have to
+                    modify <code class="filename">guacamole.properties</code> so that
+                    Guacamole knows how to connect to guacd.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845326640"></a>Unable to start <em class="replaceable"><code>input</code></em>
+                    thread</h4></div></div></div><p>guacd creates two threads for each connection: one that
+                    receives input from the connected client, and the other that
+                    produces output for the client. If either of these fails to
+                    start, the above error will be logged along with the
+                    cause.</p><p>If it is the output thread that fails to start, the
+                    message will instead read: "Unable to start output
+                    thread".</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845323952"></a>Client finished abnormally</h4></div></div></div><p>If the client plugin ever returns an error code, this will
+                    cause the connection to immediately terminate, with the
+                    cause of the error specific to the plugin in use. The cause
+                    should be detailed in the log messages above the error. If
+                    those log messages don't make sense, you may have found a
+                    bug.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845322208"></a>Could not fork()
+                    <em class="replaceable"><code>parent</code></em></h4></div></div></div><p>When guacd starts up, it immediately attempts to "fork"
+                    into the background (unless instructed otherwise). The word
+                    "fork()" above is a reference to the C function call that
+                    does this. There are several calls to this function, each of
+                    which might fail if system resources are lacking or
+                    something went wrong at a low level. If you see this
+                    message, it is probably not a bug in Guacamole, but rather a
+                    problem with the load level of your system.</p><p>This message may also appear as "Could not fork() group
+                    leader".</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845319568"></a>Unable to change working directory to /</h4></div></div></div><p>One of the duties of guacd as it starts up is to change
+                    its working directory to the root directory. This is to
+                    prevent locking the current directory in case it needs to be
+                    unmounted, etc. If guacd cannot do this, this error will be
+                    logged, along with the cause.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845317888"></a>Unable to redirect standard file descriptors to
+                    /dev/null</h4></div></div></div><p>As guacd starts, it also has to redirect STDOUT, STDERR,
+                    and STDIN to <code class="filename">/dev/null</code> such that
+                    attempts to use these output mechanisms do not pollute the
+                    active console. Though guacd and client plugins will use the
+                    exposed logging facilities (and thus syslog) rather than
+                    STDOUT or STDERR, libraries used by client plugins are often
+                    written only from the mindset of a typical client, and use
+                    standard output mechanisms for debug logging. Not
+                    redirecting these would result in undesired output to the
+                    console.</p><p>If guacd cannot redirect these file descriptors for any
+                    reason, this error will be logged, along with the
+                    cause.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845314880"></a>Error parsing given address or port:
+                        <em class="replaceable"><code>HOSTNAME</code></em></h4></div></div></div><p>If you specified a host or port to listen on via
+                    commandline options, and that host or port is actually
+                    invalid, you will see this error. Fix the corresponding
+                    option and try again.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845313056"></a>Error opening socket</h4></div></div></div><p>When guacd starts up, it needs to open a socket and then
+                    listen on that socket. If it can't even open the socket,
+                    this error will be logged, and guacd will exit. The cause is
+                    most likely related to permissions, and is logged along with
+                    the error.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845311408"></a>Unable to resolve host</h4></div></div></div><p>If the hostname you specified on the commandline cannot be
+                    found, you will see this error. Note that this error is from
+                    guacd, and does not relate to whatever remote desktop
+                    servers you may be trying to use; it relates only to the
+                    host guacd is trying to listen on. Check the hostname or IP
+                    address specified on the commandline. If that checks out,
+                    there may be a problem with your DNS or your network.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845262736"></a>Could not become a daemon</h4></div></div></div><p>In order to become a "daemon" (that is, in order to run in
+                    the background as a system process), guacd must create and
+                    exit from several processes, redirect file descriptors, etc.
+                    If any of these steps fails, guacd will not become a daemon,
+                    and it will log this message and exit. The reason guacd
+                    could not become a daemon will be in the previous error
+                    message in the logs.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845260896"></a>Could not write PID file</h4></div></div></div><p>guacd offers a commandline option that lets you specify a
+                    file that it should write its process ID into, which is
+                    useful for init scripts. If you see this error, it likely
+                    means the user guacd is running as does not have permission
+                    to write this file. The true cause of the error will be
+                    logged in the same entry. Check which user guacd is running
+                    as, and then check that it has write permission to the file
+                    in question.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845258992"></a>Could not listen on socket</h4></div></div></div><p>When guacd starts up, it needs to listen on the socket it
+                    just opened in order to accept connections. If it cannot
+                    listen on the socket, clients will be unable to connect. If,
+                    for any reason, guacd is unable to listen on the socket,
+                    guacd will exit and log this message along with the cause,
+                    which is most likely a low-level system resource
+                    problem.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845257184"></a>Could not accept client connection</h4></div></div></div><p>When a client connects to guacd, it must accept the
+                    connection in order for communication to ensue. If it cannot
+                    even accept the connection, no communication between server
+                    and client will happen, and this error will be logged. The
+                    cause of the error will be logged in the same entry.
+                    Possible causes include permissions problems, or lack of
+                    server resources.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845255360"></a>Error forking child process</h4></div></div></div><p>When a client connects to guacd, it must create a new
+                    process to handle the connection while the old guacd process
+                    continues to listen for new connections. If, for any reason,
+                    guacd cannot create this process, the connection from that
+                    client will be denied, and the cause of the error will be
+                    logged. Possible causes include permissions problems, or
+                    lack of server resources.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845253520"></a>Error closing daemon reference to child
+                    descriptor</h4></div></div></div><p>When guacd receives a connection, and it creates a new
+                    process to handle that connection, it gains a copy of the
+                    file descriptor that the client will use for communication.
+                    As this connection can never be closed unless all references
+                    to the descriptor are closed, the server must close its copy
+                    such that the client is the only remaining holder of the
+                    file descriptor. If the server cannot close the descriptor,
+                    it will log this error message along with the cause.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845251536"></a>Error sending "sync" instruction</h4></div></div></div><p>During the course of a Guacamole session, guacd must
+                    occasionally "ping" the client to make sure it is still
+                    alive. This ping takes the form of a "sync" instruction,
+                    which the client is obligated to respond to as soon as it is
+                    received. If guacd cannot send this instruction, this error
+                    will be logged, along with the cause. Chances are the
+                    connection has simply been closed, and this error can be
+                    ignored.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845249648"></a>Error flushing output</h4></div></div></div><p>After the client plugin is finished (for the time being)
+                    with handling server messages, the socket is automatically
+                    flushed. If the server cannot flush this socket for some
+                    reason, such as the connection already being closed, you
+                    will see this error. Normally, this error does not indicate
+                    a problem, but rather that the client has simply closed the
+                    connection.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845247840"></a>Error handling server messages</h4></div></div></div><p>While the client plugin is running, guacd will
+                    occasionally ask the plugin to check and handle any messages
+                    that it may have received from the server it connected to.
+                    If the client plugin fails for some reason while doing this,
+                    this error will be logged, and the cause of the error will
+                    likely be logged in previous log entries by the client
+                    plugin.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845246032"></a>Error reading instruction</h4></div></div></div><p>During the course of a Guacamole session, instructions are
+                    sent from client to server which are to be handled by the
+                    client plugin. If an instruction cannot be read, this error
+                    will be logged. Usually this means simply that the
+                    connection was closed, but it could also indicate that the
+                    version of the client in use is so old that it doesn't
+                    support the current Guacamole protocol at all. If the cause
+                    looks like the connection was closed (end of stream reached,
+                    etc.), this log entry can be ignored. Otherwise, if the
+                    first two numbers of the version numbers of all Guacamole
+                    components match, you have probably found a bug.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845244704"></a>Client instruction handler error</h4></div></div></div><p>This error indicates that a client plugin failed inside
+                    the handler for a specific instruction. When the server
+                    receives instructions from the client, it then invokes
+                    specific instruction handles within the client plugin. In
+                    general, this error is not useful to a user or system
+                    administrator. If the cause looks benign, such as reaching
+                    the end of a stream (the connection closed), it can be
+                    ignored as normal. Otherwise, this error can indicate a bug
+                    either in the client plugin or in a library used by the
+                    client plugin.</p><p>It can also indicate a problem in the remote desktop
+                    server which is causing the client plugin to fail while
+                    communicating with it.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845242768"></a>Error reading "<em class="replaceable"><code>OPCODE</code></em>"</h4></div></div></div><p>During the handshake of the Guacamole protocol, the server
+                    expects a very specific sequence of instructions to be
+                    received. If the wrong instructions are received, or the
+                    connection is abruptly closed during the handshake, the
+                    above error will occur.</p><p>In the case that the cause is the connection closing, this
+                    is normal, and probably just means that the client
+                    disconnected before the initial handshake completed.</p><p>If the connection was not closed abruptly, but instead the
+                    wrong instruction was received, this could mean either that
+                    the connecting client is from an incompatible version of
+                    Guacamole (and thus does not know the proper handshake
+                    procedure) or you have found a bug. Check whether all
+                    installed components came from the same upstream release
+                    bundle.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845239120"></a>Error sending "args"</h4></div></div></div><p>During the handshake of the Guacamole protocol, the server
+                    must expose all parameters used by the client plugin via the
+                    args instruction. If this cannot be sent, you will see this
+                    error in the logs. The cause will be included in the error
+                    message, and usually just indicates that the connection was
+                    closed during the handshake, and thus the handshake cannot
+                    continue.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845237312"></a>Error loading client plugin</h4></div></div></div><p>When the client connects, it sends an instruction to guacd
+                    informing it what protocol it wishes to use. If the
+                    corresponding client plugin cannot be found or used for any
+                    reason, this message will appear in the logs. Normally this
+                    indicates that the corresponding client plugin is not
+                    actually installed. The cause listed after the error message
+                    will indicate whether this is the case.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845235984"></a>Error instantiating client</h4></div></div></div><p>After the client plugin is loaded, an initialization
+                    function provided by the client plugin is invoked. If this
+                    function fails, then the client itself cannot be created,
+                    and this error will be logged. Usually this indicates that
+                    one or more of the parameters given to the client plugin are
+                    incorrect or malformed. Check the configuration of the
+                    connection in use at the time.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-client-vnc-errors"></a>libguac-client-vnc errors</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845232768"></a>Error waiting for VNC message</h4></div></div></div><p>The VNC client plugin must wait for messages sent by the
+                    VNC server, and handle them when they arrive. If there was
+                    an error while waiting for a message from the VNC server,
+                    this error message will be displayed. Usually this means
+                    that the VNC server closed the connection, or there is a
+                    problem with the VNC server itself, but the true cause of
+                    the error will be logged.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845230928"></a>Error handling VNC server message</h4></div></div></div><p>When messages are received from the VNC server,
+                    libvncclient must handle them and then invoke the functions
+                    of libguac-client-vnc as necessary. If libvncclient fails
+                    during the handling of a received message, this error will
+                    be logged, along with (hopefully) the cause. This may
+                    indicate a problem with the VNC server, or a lack of support
+                    within libvncclient.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845229104"></a>Wrong argument count received</h4></div></div></div><p>The connecting client is required to send exactly the same
+                    number of arguments as requested by the client plugin. If
+                    you see this message, it means there is a bug in the client
+                    connecting to guacd, most likely the web application.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-client-rdp-errors"></a>libguac-client-rdp errors</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845226096"></a>Invalid <em class="replaceable"><code>parameter</code></em></h4></div></div></div><p>If one of the parameters given, such as "width", "height",
+                    or "color-depth", is invalid (not an integer, for example),
+                    you will receive this error. Check the parameters of the
+                    connection in use and try again.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845224208"></a>Support for the CLIPRDR channel (clipboard redirection) could not be
+                    loaded</h4></div></div></div><p>FreeRDP provides a plugin which provides clipboard support for RDP. This
+                    plugin is typically built into FreeRDP, but some distributions may bundle this
+                    separately. libguac-client-rdp loads this plugin in order to support clipboard,
+                    as well. If this plugin could not be loaded, then clipboard support will not be
+                    available, and the reason will be logged.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845222816"></a>Cannot create static channel "<em class="replaceable"><code>name</code></em>": failed to
+                    load "guac-common-svc" plugin for FreeRDP</h4></div></div></div><p>RDP provides support for much of its feature set through static virtual
+                    channels. Sound support, for example is provided through the "RDPSND" channel.
+                    Device redirection for printers and drives is provided through "RDPDR". To
+                    support these and other static virtual channels, libguac-client-rdp builds a
+                    plugin for FreeRDP called "guac-common-svc" which allows Guacamole to hook into
+                    the parts of FreeRDP that support virtual channels.</p><p>If libguac-client-rdp cannot load this plugin, support for any features which
+                    leverage static virtual channels will not work, and the reason will be logged. A
+                    likely explanation is that libguac-client-rdp was built from source, and the
+                    directory specified for FreeRDP's installation location was incorrect. For
+                    FreeRDP to be able to find plugins, those plugins must be placed in the
+                        <code class="filename">freerdp2/</code> subdirectory of whichever directory contains
+                    the <code class="filename">libfreerdp2.so</code> library.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845218672"></a>Server requested unsupported clipboard data type</h4></div></div></div><p>When clipboard support is loaded, libguac-client-rdp
+                    informs the RDP server of all supported clipboard data
+                    types. The RDP server is required to send only those types
+                    supported by the client. If the server decides to send an
+                    unsupported type anyway, libguac-client-rdp ignores the data
+                    sent, and logs this message.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845216896"></a>Clipboard data missing null terminator</h4></div></div></div><p>When text is sent via a clipboard message, it is required
+                    to have a terminating null byte. If this is not the case,
+                    the clipboard data is invalid, and libguac-client-rdp
+                    ignores it, logging this error message.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="servlet-container-logs"></a>Servlet container logs</h2></div></div></div><p>Your servlet container will have logs which the web application
+            side of Guacamole will log errors to. In the case of Tomcat, this is
+            usually <code class="filename">catalina.out</code> or
+                    <code class="filename"><em class="replaceable"><code>HOSTNAME</code></em>.log</code>
+            (for example, <code class="filename">localhost.log</code>).</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="user-mapping-xml-errors"></a><code class="filename">user-mapping.xml</code> errors</h3></div></div></div><p>Errors in the relating to the
+                    <code class="filename">user-mapping.xml</code> file usually indicate
+                that either the XML is malformed, or the file itself cannot be
+                found.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845209248"></a>Attribute "name" required for connection tag</h4></div></div></div><p>If you specify a connection with a
+                        <code class="code">&lt;connection&gt;</code> tag, it must have a
+                    corresponding name set via the <code class="code">name</code> attribute.
+                    If it does not, then the XML is malformed, and this error
+                    will be logged. No users will be able to login.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845206816"></a>Attribute "name" required for param tag</h4></div></div></div><p>Each parameter specified with a <code class="code">&lt;param&gt;</code>
+                    tag must have a corresponding name set via the
+                        <code class="code">name</code> attribute. If it does not, then the
+                    XML is malformed, and this error will be logged. No users
+                    will be able to login.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845204320"></a>Unexpected character data</h4></div></div></div><p>Character data (text not within angle brackets) can only
+                    exist within the <code class="code">&lt;param&gt;</code> tag. If it exists
+                    elsewhere, then the XML is malformed, and this error will be
+                    logged. No users will be able to login.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845202288"></a>Invalid encoding type</h4></div></div></div><p>There are only two legal values for the
+                        <code class="code">encoding</code> attribute of the
+                        <code class="code">&lt;authorize&gt;</code> tag: <code class="code">plain</code>
+                    (indicating plain text) and <code class="code">md5</code> (indicating a
+                    value hashed with the MD5 digest). If any other value is
+                    used, then the XML is malformed, and this error will be
+                    logged. No users will be able to login.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845198832"></a>User mapping could not be read</h4></div></div></div><p>If for any reason the user mapping file cannot be read
+                    (the servlet container lacks read permission for the file,
+                    the file does not exist, etc.), this error will be logged.
+                    Check <code class="filename">guacamole.properties</code> to see where
+                    the user mapping file is specified to exist, and then check
+                    that is both exists and is readable by your servlet
+                    container.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-properties-errors"></a><code class="filename">guacamole.properties</code> errors</h3></div></div></div><p>If a property is malformed or a required property is missing,
+                an error describing the problem will be logged.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845194576"></a>Property <em class="replaceable"><code>PROPERTY</code></em> is
+                    required</h4></div></div></div><p>If Guacamole or an extension of Guacamole requires a
+                    specific property in
+                        <code class="filename">guacamole.properties</code>, but this
+                    property is not defined, this error will be logged. Check
+                    which properties are required by the authentication provider
+                    (or other extensions) in use, and then compare that against
+                    the properties within
+                        <code class="filename">guacamole.properties</code>.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845191520"></a>Specified authentication provider class is not a
+                    AuthenticationProvider</h4></div></div></div><p>The <code class="code">auth-provider</code> property allows you to
+                    specify a custom authentication provider class which will
+                    handle all authentication, but these classes must implement
+                    the <code class="classname">AuthenticationProvider</code> interface.
+                    If the class specified does not, this error will be logged.
+                    Check that your authentication provider class implements
+                        <code class="classname">AuthenticationProvider</code> (if you
+                    implemented it yourself), and verify that you are specifying
+                    the correct class.</p><p>If you are certain that the class specified is correct,
+                    you may have placed the .jar file for your authentication
+                    provider in the wrong directory. Make sure the .jar file is
+                    in the directory specified by the <code class="code">lib-directory</code>
+                    parameter in guacamole.properties.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845187088"></a>Resource /guacamole.properties not found</h4></div></div></div><p>Guacamole requires that the
+                        <code class="filename">guacamole.properties</code> file is in the
+                    classpath of your servlet container. If it is not, this
+                    error will be logged. Check that
+                        <code class="filename">guacamole.properties</code> is in the
+                    proper location, and then restart your servlet
+                    container.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845184528"></a>Missing "basic-user-mapping" parameter required for basic
+                    login</h4></div></div></div><p>If you are using the authentication provider included with
+                    Guacamole, it requires the <code class="code">basic-user-mapping</code>
+                    property to be set. If this property is missing, you will
+                    see this error. Add the missing property to
+                        <code class="filename">guacamole.properties</code>, restart your
+                    servlet container, and try again.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-auth-errors"></a>Authentication errors</h3></div></div></div><p>If someone attempts to login with invalid credentials, or
+                someone attempts to access a resource or connection that does
+                not exist or they do not have access to, errors regarding the
+                invalid attempt will be logged.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845179984"></a>Cannot connect - user not logged in</h4></div></div></div><p>A user attempted to connect using the HTTP tunnel, and
+                    while the tunnel does exist and is attached to their
+                    session, they are not actually logged in. Normally, this
+                    isn't strictly possible, as a user has to have logged in for
+                    a tunnel to be attached to their session, but as it isn't an
+                    impossibility, this error does exist. If you see this error,
+                    it could mean that the user logged out at the same time that
+                    they made a connection attempt.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845178064"></a>Requested configuration is not authorized</h4></div></div></div><p>A user attempted to connect to a configuration with a
+                    given ID, and while that configuration does exist, they are
+                    not authorized to use it. This could mean that the user is
+                    trying to access things they have no privileges for, or that
+                    they are trying to access configurations they legitimately
+                    should, but are actually logged out.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845176272"></a>User has no session</h4></div></div></div><p>A user attempted to access a page that needs data from
+                    their session, but their session does not actually exist.
+                    This usually means the user has not logged in, as sessions
+                    are created through the login process.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-tunnel-errors"></a>Tunnel errors</h3></div></div></div><p>The tunnel frequently returns errors if guacd is killed, the
+                connection is closed, or the client abruptly closes the
+                connection.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845172816"></a>No such tunnel</h4></div></div></div><p>An attempt was made to use a tunnel which does not
+                    actually exist. This is usually just the JavaScript client
+                    sending a leftover message or two while it hasn't realized
+                    that the server has disconnected. If this error happens
+                    consistently and is associated with Guacamole generally not
+                    working, it could be a bug.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845171072"></a>No tunnel created</h4></div></div></div><p>A connection attempt for a specific configuration was
+                    made, but the connection failed, and no tunnel was created.
+                    This is usually because the user was not authorized to use
+                    that connection, and thus no tunnel was created for access
+                    to that connection.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845169408"></a>No query string provided</h4></div></div></div><p>When the JavaScript client is communicating with the HTTP
+                    tunnel, it <span class="emphasis"><em>must</em></span> provide data in the
+                    query string describing whether it wants to connect, read,
+                    or write. If this data is missing as the error indicates,
+                    there is a bug in the HTTP tunnel.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845167296"></a>Tunnel reached end of stream</h4></div></div></div><p>An attempt to read from the tunnel was made, but the
+                    tunnel in question has already reached the end of stream
+                    (the connection is closed). This is mostly an informative
+                    error, and can be ignored.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845165696"></a>Tunnel is closed</h4></div></div></div><p>An attempt to read from the tunnel was made, but the
+                    tunnel in question is already closed. This can happen if the
+                    client or guacd have closed the connection, but the client
+                    has not yet settled down and is still making read attempts.
+                    As there can be lags between when connections close and when
+                    the client realizes it, this can be safely ignored.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845164384"></a>End of stream during initial handshake</h4></div></div></div><p>If guacd closes the connection suddenly without allowing
+                    the client to complete the initial handshake required by the
+                    Guacamole protocol, this error will appear in the logs. If
+                    you see this error, you should check syslog for any errors
+                    logged by guacd to determine why it closed the connection so
+                    early.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845162640"></a>Element terminator of instruction was not ';' nor
+                    ','</h4></div></div></div><p>The Guacamole protocol imposes a strict format which
+                    requires individual parts of instructions (called
+                    "elements") to end with either a ";" or "," character. If
+                    they do not, then something has gone wrong during
+                    transmission. This usually indicates a bug in the client
+                    plugin in use, guacd, or libguac.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845160848"></a>Non-numeric character in element length</h4></div></div></div><p>The Guacamole protocol imposes a strict format which
+                    requires each element of an instruction to have a length
+                    prefix, which must be composed entirely of numeric
+                    characters (digits 0 through 9). If a non-numeric character
+                    is read, then something has gone wrong during transmission.
+                    This usually indicates a bug in the client plugin in use,
+                    guacd, or libguac.</p></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="administration.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="developers-guide.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 16. Administration </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Part II. Developer's Guide</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/users-guide.html b/doc/1.1.0/gug/users-guide.html
new file mode 100644
index 0000000..8ce8d06
--- /dev/null
+++ b/doc/1.1.0/gug/users-guide.html
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part I. User's Guide</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="index.html" title="Guacamole Manual" /><link rel="prev" href="preface.html" title="Introduction" /><link rel="next" href="guacamole-architecture.html" title="Chapter 1. Implementation and architecture" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part I. User's Guide</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="preface.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="guacamole-architecture.html">Next</a></td></tr></table><hr /></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a id="users-guide"></a>Part I. User's Guide</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="chapter"><a href="guacamole-architecture.html">1. Implementation and architecture</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-architecture.html#guacamole-protocol-architecture">The Guacamole protocol </a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#guacd">guacd</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#web-application">The web application</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#realmint">RealMint</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#vnc-client">VNC Client</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#gateway">Remote Desktop Gateway</a></span></dt></dl></dd><dt><span class="chapter"><a href="installing-guacamole.html">2. Installing Guacamole natively</a></span></dt><dd><dl><dt><span class="section"><a href="installing-guacamole.html#building-guacamole-server">Building <span class="package">guacamole-server</span></a></span></dt><dt><span class="section"><a href="installing-guacamole.html#building-guacamole-client"><span class="package">guacamole-client</span></a></span></dt><dt><span class="section"><a href="installing-guacamole.html#deploying-guacamole">Deploying Guacamole</a></span></dt></dl></dd><dt><span class="chapter"><a href="guacamole-docker.html">3. Installing Guacamole with Docker</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-docker.html#guacd-docker-image">Running the <span class="package">guacd</span> Docker image</a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-image">The Guacamole Docker image</a></span></dt></dl></dd><dt><span class="chapter"><a href="proxying-guacamole.html">4. Proxying Guacamole</a></span></dt><dd><dl><dt><span class="section"><a href="proxying-guacamole.html#preparing-servlet-container">Preparing your servlet container</a></span></dt><dt><span class="section"><a href="proxying-guacamole.html#nginx">Nginx</a></span></dt><dt><span class="section"><a href="proxying-guacamole.html#apache">Apache and <span class="package">mod_proxy</span></a></span></dt></dl></dd><dt><span class="chapter"><a href="configuring-guacamole.html">5. Configuring Guacamole</a></span></dt><dd><dl><dt><span class="section"><a href="configuring-guacamole.html#guacamole-home"><code class="varname">GUACAMOLE_HOME</code> (<code class="filename">/etc/guacamole</code>)</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#initial-setup"><code class="filename">guacamole.properties</code></a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#basic-auth">Using the default authentication</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#connection-configuration">Configuring connections</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></span></dt></dl></dd><dt><span class="chapter"><a href="jdbc-auth.html">6. Database authentication</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc-auth.html#idm46420848531088">Downloading the database authentication extension</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-database-creation">Creating the Guacamole database</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#idm46420849413472">Upgrading an existing Guacamole database</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#idm46420847663760">Granting Guacamole access to the database</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-installation">Installing database authentication</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-default-user">Logging in</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema">Modifying data manually</a></span></dt></dl></dd><dt><span class="chapter"><a href="ldap-auth.html">7. LDAP authentication</a></span></dt><dd><dl><dt><span class="section"><a href="ldap-auth.html#ldap-architecture">How Guacamole uses LDAP</a></span></dt><dt><span class="section"><a href="ldap-auth.html#ldap-downloading">Downloading the LDAP extension</a></span></dt><dt><span class="section"><a href="ldap-auth.html#ldap-schema-changes">Preparing your LDAP directory (optional)</a></span></dt><dt><span class="section"><a href="ldap-auth.html#ldap-and-database">Associating LDAP with a database</a></span></dt><dt><span class="section"><a href="ldap-auth.html#installing-ldap-auth">Installing LDAP authentication</a></span></dt><dt><span class="section"><a href="ldap-auth.html#ldap-auth-schema">The LDAP schema</a></span></dt></dl></dd><dt><span class="chapter"><a href="duo-auth.html">8. Duo two-factor authentication</a></span></dt><dd><dl><dt><span class="section"><a href="duo-auth.html#duo-architecture">How Duo works with Guacamole</a></span></dt><dt><span class="section"><a href="duo-auth.html#duo-downloading">Downloading the Duo extension</a></span></dt><dt><span class="section"><a href="duo-auth.html#installing-duo-auth">Installing Duo authentication</a></span></dt></dl></dd><dt><span class="chapter"><a href="totp-auth.html">9. TOTP two-factor authentication</a></span></dt><dd><dl><dt><span class="section"><a href="totp-auth.html#totp-prerequisites">Prerequisites</a></span></dt><dt><span class="section"><a href="totp-auth.html#totp-architecture">How TOTP works with Guacamole</a></span></dt><dt><span class="section"><a href="totp-auth.html#totp-downloading">Downloading the TOTP extension</a></span></dt><dt><span class="section"><a href="totp-auth.html#installing-totp-auth">Installing TOTP authentication</a></span></dt></dl></dd><dt><span class="chapter"><a href="header-auth.html">10. HTTP header authentication</a></span></dt><dd><dl><dt><span class="section"><a href="header-auth.html#header-downloading">Downloading the HTTP header authentication extension</a></span></dt><dt><span class="section"><a href="header-auth.html#installing-header-auth">Installing HTTP header authentication</a></span></dt></dl></dd><dt><span class="chapter"><a href="cas-auth.html">11. CAS Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="cas-auth.html#cas-downloading">Downloading the CAS authentication extension</a></span></dt><dt><span class="section"><a href="cas-auth.html#installing-cas-auth">Installing CAS authentication</a></span></dt></dl></dd><dt><span class="chapter"><a href="openid-auth.html">12. OpenID Connect Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="openid-auth.html#openid-downloading">Downloading the OpenID Connect authentication extension</a></span></dt><dt><span class="section"><a href="openid-auth.html#installing-openid-auth">Installing support for OpenID Connect</a></span></dt></dl></dd><dt><span class="chapter"><a href="radius-auth.html">13. RADIUS Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="radius-auth.html#radius-downloading">Downloading the RADIUS authentication extension</a></span></dt><dt><span class="section"><a href="radius-auth.html#installing-radius-auth">Installing RADIUS authentication</a></span></dt><dt><span class="section"><a href="radius-auth.html#guac-radius-config">Configuring Guacamole for RADIUS authentication</a></span></dt><dt><span class="section"><a href="radius-auth.html#completing-radius-install">Completing the installation</a></span></dt></dl></dd><dt><span class="chapter"><a href="adhoc-connections.html">14. Ad-hoc Connections</a></span></dt><dd><dl><dt><span class="section"><a href="adhoc-connections.html#quickconnect-downloading">Downloading the quickconnect extension</a></span></dt><dt><span class="section"><a href="adhoc-connections.html#installing-quickconnect">Installing the quickconnect extension</a></span></dt><dt><span class="section"><a href="adhoc-connections.html#using-quickconnect">Using the quickconnect extension</a></span></dt></dl></dd><dt><span class="chapter"><a href="using-guacamole.html">15. Using Guacamole</a></span></dt><dd><dl><dt><span class="section"><a href="using-guacamole.html#home-screen">Home screen</a></span></dt><dt><span class="section"><a href="using-guacamole.html#client-screen">Client screen</a></span></dt><dt><span class="section"><a href="using-guacamole.html#using-the-clipboard">Copying/pasting text</a></span></dt><dt><span class="section"><a href="using-guacamole.html#client-user-menu">Disconnecting and navigation</a></span></dt><dt><span class="section"><a href="using-guacamole.html#client-share-menu">Sharing the connection</a></span></dt><dt><span class="section"><a href="using-guacamole.html#file-transfer">Transferring files</a></span></dt><dt><span class="section"><a href="using-guacamole.html#using-the-osk">On-screen keyboard</a></span></dt><dt><span class="section"><a href="using-guacamole.html#scaling-display">Scaling the display</a></span></dt><dt><span class="section"><a href="using-guacamole.html#touch-devices">Mobile or touch devices</a></span></dt><dt><span class="section"><a href="using-guacamole.html#preferences">Changing preferences</a></span></dt></dl></dd><dt><span class="chapter"><a href="administration.html">16. Administration</a></span></dt><dd><dl><dt><span class="section"><a href="administration.html#session-management">Managing sessions</a></span></dt><dt><span class="section"><a href="administration.html#connection-history">Connection history</a></span></dt><dt><span class="section"><a href="administration.html#user-management">User management</a></span></dt><dt><span class="section"><a href="administration.html#user-group-management">User group management</a></span></dt><dt><span class="section"><a href="administration.html#connection-management">Connections and connection groups</a></span></dt></dl></dd><dt><span class="chapter"><a href="troubleshooting.html">17. Troubleshooting</a></span></dt><dd><dl><dt><span class="section"><a href="troubleshooting.html#not-working">It isn't working</a></span></dt><dt><span class="section"><a href="troubleshooting.html#syslog">syslog</a></span></dt><dt><span class="section"><a href="troubleshooting.html#servlet-container-logs">Servlet container logs</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="preface.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="guacamole-architecture.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Introduction </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 1. Implementation and architecture</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/using-guacamole.html b/doc/1.1.0/gug/using-guacamole.html
new file mode 100644
index 0000000..211a476
--- /dev/null
+++ b/doc/1.1.0/gug/using-guacamole.html
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 15. Using Guacamole</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="adhoc-connections.html" title="Chapter 14. Ad-hoc Connections" /><link rel="next" href="administration.html" title="Chapter 16. Administration" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 15. Using Guacamole</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="adhoc-connections.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="administration.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="using-guacamole"></a>Chapter 15. Using Guacamole</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="using-guacamole.html#home-screen">Home screen</a></span></dt><dd><dl><dt><span class="section"><a href="using-guacamole.html#user-menu">User menu</a></span></dt></dl></dd><dt><span class="section"><a href="using-guacamole.html#client-screen">Client screen</a></span></dt><dd><dl><dt><span class="section"><a href="using-guacamole.html#guacamole-menu">The Guacamole menu</a></span></dt></dl></dd><dt><span class="section"><a href="using-guacamole.html#using-the-clipboard">Copying/pasting text</a></span></dt><dt><span class="section"><a href="using-guacamole.html#client-user-menu">Disconnecting and navigation</a></span></dt><dt><span class="section"><a href="using-guacamole.html#client-share-menu">Sharing the connection</a></span></dt><dt><span class="section"><a href="using-guacamole.html#file-transfer">Transferring files</a></span></dt><dd><dl><dt><span class="section"><a href="using-guacamole.html#file-browser">Using the file browser</a></span></dt><dt><span class="section"><a href="using-guacamole.html#rdp-virtual-drive">The RDP virtual drive</a></span></dt><dt><span class="section"><a href="using-guacamole.html#guacctl"><span class="command"><strong>guacctl</strong></span> / <span class="command"><strong>guacget</strong></span></a></span></dt></dl></dd><dt><span class="section"><a href="using-guacamole.html#using-the-osk">On-screen keyboard</a></span></dt><dt><span class="section"><a href="using-guacamole.html#scaling-display">Scaling the display</a></span></dt><dt><span class="section"><a href="using-guacamole.html#touch-devices">Mobile or touch devices</a></span></dt><dd><dl><dt><span class="section"><a href="using-guacamole.html#touch-mouse">Mouse emulation</a></span></dt><dt><span class="section"><a href="using-guacamole.html#text-input">Typing without a physical keyboard</a></span></dt></dl></dd><dt><span class="section"><a href="using-guacamole.html#preferences">Changing preferences</a></span></dt><dd><dl><dt><span class="section"><a href="using-guacamole.html#display-language">Display language</a></span></dt><dt><span class="section"><a href="using-guacamole.html#changing-password">Changing your password</a></span></dt><dt><span class="section"><a href="using-guacamole.html#default-input-settings">Default input settings</a></span></dt></dl></dd></dl></div><p><a id="idm46420847819824" class="indexterm"></a>Guacamole provides access to much of the functionality of a desktop from within
+        your web browser. Although most people use remote desktop tools only when absolutely
+        necessary, we believe that Guacamole must be aimed at becoming a primary means of accessing
+        desktops, and the interface is thus intended to be as seamless and unobtrusive as
+        possible.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="home-screen"></a>Home screen</h2></div></div></div><p>Once you have successfully logged in, you will be taken to either the Guacamole home
+            screen, where all available connections are listed, or directly to a connection, if you
+            only have access to one connection.</p><p>The home screen will contain a list of all connections to which you have access, along
+            with thumbnails of any recently used or active connections. If you have access to a
+            large number of connections and wish to quickly locate a specific connection, you can
+            also enter search terms within the "Filter" field to filter the list of connections by
+            name.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/guacamole-home-screen.png" width="450" /><div class="caption"><p>The Guacamole home screen. The user menu and several recently-used
+                            connections are visible, along with one active connection.</p></div></div></div></div><p>Clicking on any connection will open that connection within the current window or tab,
+            but multiple connections can be used simultaneously. You can easily navigate back to the
+            home screen without disconnecting by using your browsers back button or the "Home"
+            button in the Guacamole menu. Each connection you use will remain active until
+            explicitly disconnected, or until you navigate away from Guacamole entirely. Active
+            connections can be seen as thumbnails updating in real-time on the home screen.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="user-menu"></a>User menu</h3></div></div></div><p>With the exception of the client screen discussed below, all Guacamole screens
+                contain a menu in the upper-right corner called the "user menu". This menu displays
+                your username and contains several options which depend on your user's level of
+                access:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">Home</span></dt><dd><p>Navigates back to the home screen, if you are not already there. If
+                            you only have access to one connection, this will be replaced with a
+                            link to that connection.</p></dd><dt><span class="term">Settings</span></dt><dd><p>Navigates to the settings interface, which provides access to user
+                            preferences such as display language. If you have access to
+                            administrative functions, those are found within the settings interface,
+                            as well, and are discussed in more detail in <a class="xref" href="administration.html" title="Chapter 16. Administration">Chapter 16, <em>Administration</em></a>.</p></dd><dt><span class="term">Logout</span></dt><dd><p>Logs out of Guacamole completely, closing all current connections and
+                            ending the Guacamole session.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="client-screen"></a>Client screen</h2></div></div></div><p>Once you open a connection, you will see a real-time view of the remote display. You
+            can interact with this display just as you would your normal desktop. Your mouse and
+            keyboard will function as if they were connected directly to the remote machine.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/guacamole-client-interface.png" width="540" /><div class="caption"><p>Guacamole client interface, with the Guacamole menu open.</p></div></div></div></div><p>The remote display will take up the entire browser window, with no buttons or menus to
+            disturb the view. With the intent of providing a seamless experience, options specific
+            to remote desktop are hidden within the Guacamole menu, which can be opened as
+            needed.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-menu"></a>The Guacamole menu</h3></div></div></div><p>The Guacamole menu is a sidebar which is hidden until explicitly shown. On a
+                desktop or other device which has a hardware keyboard, you can show this menu by
+                pressing <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Shift</strong></span>. If you are using a mobile or touchscreen device that lacks a keyboard,
+                you can also show the menu by swiping right from the left edge of the screen. To
+                hide the menu, you press <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Shift</strong></span> again or swipe left across the screen.</p><p>The Guacamole menu provides options for:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Navigating back to the home screen</p></li><li class="listitem"><p>Sharing the current connection</p></li><li class="listitem"><p>Reading from (and writing to) the clipboard of the remote
+                            desktop</p></li><li class="listitem"><p>Uploading and downloading files</p></li><li class="listitem"><p>Selecting alternative methods of typing or controlling the mouse,
+                            particularly for use on mobile or touchscreen devices</p></li><li class="listitem"><p>Zooming in and out of the remote display</p></li><li class="listitem"><p>Disconnecting from the current connection entirely</p></li></ul></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="using-the-clipboard"></a>Copying/pasting text</h2></div></div></div><p><a id="idm46420847490688" class="indexterm"></a>At the top of the Guacamole menu is a text area labeled "clipboard" along
+            with some basic instructions:</p><div class="blockquote"><blockquote class="blockquote"><p>Text copied/cut within Guacamole will appear here. Changes to the text below will
+                affect the remote clipboard.</p></blockquote></div><p>The text area functions as an interface between the remote clipboard and the local
+            clipboard. Text from the local clipboard can be pasted into the text area, causing that
+            text to be sent to the clipboard of the remote desktop. Similarly, if you copy or cut
+            text within the remote desktop, you will see that text within the text area, and can
+            manually copy it into the local clipboard if desired.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="client-user-menu"></a>Disconnecting and navigation</h2></div></div></div><p>When you are done using the current connection, or you wish to navigate elsewhere
+            temporarily, options to do so are within the user menu inside the Guacamole menu:</p><div class="informalfigure"><div class="mediaobject"><img src="images/guac-menu-disconnect.png" width="540" /><div class="caption"><p>The user menu within the Guacamole menu.</p></div></div><p>The user menu within the Guacamole menu provides an additional "Disconnect" option
+                that allows you to explicitly close the current connection only. Clicking "Logout"
+                will also implicitly disconnect all active connections, including the current
+                connection.</p><p>Navigating back to the home screen or to the settings screen will not disconnect
+                you: your connection will continue running in the background while you change
+                settings or initiate another connection, and you can resume any active connection by
+                clicking on it within the home screen.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="client-share-menu"></a>Sharing the connection</h2></div></div></div><p>If the Guacamole server is configured to allow connection sharing, and you have been
+            granted permission to share the current connection, an additional "Share" menu will
+            appear next to your username in the Guacamole menu. Clicking on this menu opens a list
+            of options for sharing the current connection.</p><div class="informalfigure"><div class="mediaobject"><img src="images/guac-menu-share.png" width="540" /></div></div><p>Clicking any of the options within the "Share" menu will immediately generate a unique
+            share link which can be distributed to anyone, even to users which do not otherwise have
+            accounts within the same Guacamole system.</p><div class="informalfigure"><div class="mediaobject"><img src="images/guac-menu-share-link.png" width="540" /></div></div><p>When the link is visited, that user will be given temporary access to your connection,
+            restricted according to the sharing option chosen. This access, and the validity of the
+            link overall, lasts only until you disconnect. Once the connection is closed, the link
+            ceases to be valid, and any users sharing the connection with you will be
+            disconnected.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="file-transfer"></a>Transferring files</h2></div></div></div><a id="idm46420847395568" class="indexterm"></a><p>You can transfer files back and forth between your local computer and the remote
+            desktop if it is supported by the underlying protocol and enabled on the connection.
+            Currently, Guacamole supports file transfer for VNC, RDP, and SSH, using either the
+            native file transfer support of the protocol or SFTP.</p><p>Files can be transferred to the remote computer by dragging and dropping the files
+            into your browser window, or through using the file browser located in the Guacamole
+            menu.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="file-browser"></a>Using the file browser</h3></div></div></div><p>If file transfer is enabled on the connection, you will see one or more filesystem
+                devices listed within the Guacamole menu. Clicking on one of the filesystems opens a
+                file browser which lists the files and directories within that filesystem.</p><div class="mediaobject"><img src="images/file-browser.png" width="270" /><div class="caption"><p>The file browser within the Guacamole menu.</p></div></div><p>Double-clicking on any directory will change the current location of the file
+                browser to that directory, updating the list of files shown as well as the
+                "breadcrumbs" at the top of the file browser. Clicking on any of the directory names
+                listed in the breadcrumbs will bring you back to that directory, and clicking on the
+                drive icon on the far left will bring you all the way back to the root level.</p><p>Downloads are initiated by double-clicking on any file shown, while uploads are
+                initiated by clicking the "Upload Files" button. Clicking "Upload Files" will open a
+                file browsing dialog where you can choose one or more files from your local
+                computer, ultimately uploading the selected files to the directory currently
+                displayed within the file browser.</p><p>The state of all file uploads can be observed within the notification dialog that
+                appears once an upload begins, and can be cleared once completed by clicking the
+                "Clear" button. Downloads are tracked through your browser's own download
+                notification system.</p><div class="mediaobject"><img src="images/file-transfers.png" width="270" /><div class="caption"><p>In-progress and completed file transfers.</p></div></div><p>When you are done browsing the filesystem and transferring files, click "Back" to
+                return to the Guacamole menu.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="rdp-virtual-drive"></a>The RDP virtual drive</h3></div></div></div><p>RDP provides its own native support for file transfer called "drive redirection"
+                or "RDPDR". Guacamole provides support for this mechanism by emulating a virtual
+                drive. Typically, this virtual drive will appear as a network drive within the RDP
+                session. Files uploaded and downloaded will be preserved within this drive, even
+                after disconnecting.</p><div class="mediaobject"><img src="images/guacamole-drive.png" width="450" /><div class="caption"><p>The Guacamole drive within a Windows RDP session.</p></div></div><p>Files can be downloaded from this drive using the file browser in the Guacamole
+                menu or using the special "Download" folder within the virtual drive. All files
+                dropped into this folder will automatically begin uploading to the client, and thus
+                downloading through the browser.</p><div class="mediaobject"><img src="images/guacamole-drive-download.png" width="450" /><div class="caption"><p>The Guacamole drive's "Download" folder.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacctl"></a><span class="command"><strong>guacctl</strong></span> / <span class="command"><strong>guacget</strong></span></h3></div></div></div><p><a id="idm46420847371648" class="indexterm"></a><a id="idm46420847370784" class="indexterm"></a><a id="idm46420847369920" class="indexterm"></a><a id="idm46420847368608" class="indexterm"></a>In addition to traditional drag-and-drop and the file browser,
+                Guacamole's SSH support can be used with the <span class="command"><strong>guacctl</strong></span> utility. The
+                    <span class="command"><strong>guacctl</strong></span> utility is a simple shell script <a class="link" href="https://raw.githubusercontent.com/apache/guacamole-server/master/bin/guacctl" target="_top">included with Guacamole</a> which allows you to use and configure file
+                transfer directly from the command line within the SSH session:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guacctl</code></strong>
+<code class="computeroutput">guacctl 0.8.0, Guacamole SSH session control utility.
+Usage: guacctl [OPTION] [FILE]...
+
+    -d, --download         download each of the files listed.
+    -s, --set-directory    set the destination directory for future uploaded 
+                           files.</code>
+<code class="prompt">$</code> <strong class="userinput"><code>guacctl -d <em class="replaceable"><code>FILENAME</code></em></code></strong>
+<code class="prompt">$</code> <strong class="userinput"><code>guacctl -s <em class="replaceable"><code>DIRECTORY</code></em></code></strong>
+$</pre></div><p>For convenience, you may also create a symbolic link or alias to
+                    <span class="command"><strong>guacctl</strong></span> called <span class="command"><strong>guacget</strong></span>. When run as
+                    <span class="command"><strong>guacget</strong></span>, the utility behaves as if the
+                    <code class="option">--download</code> option were supplied and initiates a download for
+                each file specified on the command line.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="using-the-osk"></a>On-screen keyboard</h2></div></div></div><p>Certain key combinations are impossible to press within a web application like
+            Guacamole because they are reserved by the operating system (<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Del</strong></span> or <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Tab</strong></span>, for example) or by the web browser. If you press one of these reserved
+            combinations, the effect will be observed locally, not remotely, and the remote desktop
+            will receive only some of the keys.</p><p>Guacamole provides its own, built-in on-screen keyboard which allows keys to be sent
+            to the remote desktop without affecting the local system. If the device you're using
+            does not have certain keys which the remote desktop depends on, such as the arrow keys
+            or <span class="keycap"><strong>Ctrl</strong></span>, you can use the on-screen keyboard for this, too. You can show
+            the on-screen keyboard by selecting the "On-screen keyboard" option from the
+            menu.</p><p>Clicking (or tapping) the buttons of the on-screen keyboard has the same effect as
+            pressing the same buttons on a real keyboard, except that the operating system and
+            browser will not intercept these keypresses; they will only be sent to the remote
+            desktop.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="scaling-display"></a>Scaling the display</h2></div></div></div><p><a id="idm46420847771680" class="indexterm"></a>Guacamole will default to shrinking or expanding the remote display to fit
+            the browser window exactly, but this is not necessarily ideal. If the remote display is
+            much larger than your local display, the screen may be impossible to see or interact
+            with. This is especially true for mobile phones, whose screens need to be small enough
+            to fit in the average hand.</p><p>You can scale the display on touch devices by using the familiar pinch gesture. Place
+            two fingers on the screen and bring them closer together to zoom out or further apart to
+            zoom in.</p><p>If your device lacks a touch screen, you can also control the zoom level through the
+            menu. The controls for zooming in and out are located at the bottom of the menu. The
+            current zoom level is displayed between two "-" and "+" buttons which control the zoom
+            level in 10% increments.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="touch-devices"></a>Mobile or touch devices</h2></div></div></div><p>Guacamole is designed to work equally well across all HTML5 browsers, including those
+            of mobile devices. It will automatically handle input from a touch screen or a
+            traditional mouse (or both, if you happen to have such a gifted computer), and provides
+            alternative input methods for devices which lack a physical keyboard.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="touch-mouse"></a>Mouse emulation</h3></div></div></div><p><a id="idm46420847765920" class="indexterm"></a>In the case that your device has a touchscreen and lacks a mouse,
+                Guacamole will emulate a mouse for the sake of interacting with remote desktops that
+                expect mouse input. By default, Guacamole uses "absolute" mouse emulation. This
+                means that the mouse pointer is positioned at the location of each tap on the
+                screen.</p><p>In both absolute and relative modes, you can click-and-drag by tapping the screen
+                and then quickly placing your finger back down. This gesture only causes the mouse
+                button to press down, but does not release it again until you lift your finger back
+                up.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="absolute-mouse-emulation"></a>Absolute mode (touchscreen)</h4></div></div></div><p>Absolute mouse emulation is the default as it tends to be what people expect
+                    when using a touch device to interact with applications designed for mouse
+                    input.</p><p>Each tap on the screen is translated into a left-click at that position.
+                    Right-clicking is accomplished through pressing and holding your finger on the
+                    screen. If parts of the remote display are off-screen, you can drag your finger
+                    around the screen to pan the off-screen parts back into view.</p><p>Although absolute mouse emulation works generally well, a finger makes for a
+                    very inaccurate pointing device. To address this, Guacamole also provides
+                    "relative" mouse emulation. Relative mouse emulation provides a way to deal with
+                    the need for accurate pointer control, when a true pointer device is not
+                    present.</p><div class="informalfigure"><div class="mediaobject"><img src="images/touchscreen.png" width="135" /></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="relative-mouse-emulation"></a>Relative mode (touchpad)</h4></div></div></div><p>Guacamole's relative mouse emulation behaves similarly to the touchpad present
+                    on most modern laptops. You drag your finger across the display to move the
+                    mouse pointer, and tap the display to left-click. The pointer moves relative to
+                    the motion of your finger. Right-clicking is accomplished with a two-finger tap,
+                    and middle-clicking with a three-finger tap. The mouse scroll wheel can be
+                    operated by dragging two fingers up or down.</p><p>Because the relative mouse emulation reserves so many gestures for the
+                    different mouse buttons and actions, common touch gestures like panning and
+                    pinch-to-zoom will not work while relative mouse emulation is enabled. Instead,
+                    the screen will automatically pan to keep the mouse pointer in view, and you can
+                    zoom through the buttons in the menu.</p><div class="informalfigure"><div class="mediaobject"><img src="images/touchpad.png" width="135" /></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="text-input"></a>Typing without a physical keyboard</h3></div></div></div><p>Many mobile devices lack a physical keyboard entirely, and instead provide their
+                own on-screen keyboards. As these are not true keyboards per se and do not produce
+                key presses, Guacamole's text input mode is required for typing on these
+                platforms.</p><p>"Text input" allows input of keystrokes based on the input of text. Choosing "Text
+                input" tells Guacamole to infer keystrokes by tracking text entered, rather than
+                relying on actual key presses. Guacamole will instead determine the combination of
+                keypresses necessary to produce the same pattern of input, including
+                deletions.</p><p><a id="idm46420847750064" class="indexterm"></a>If you wish to type via an IME (input method editor), such as those
+                required for Chinese, Japanese, or Korean, text input mode is required for this as
+                well. Such IMEs function through the explicit insertion of text and do not send
+                traditional key presses. Using text input mode within Guacamole thus allows you to
+                use a locally-installed IME, without requiring the IME to be installed on the remote
+                desktop.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="preferences"></a>Changing preferences</h2></div></div></div><p>User preferences can be changed within the settings screen. These preferences are
+            stored locally within the browser, so if you use multiple computers to access Guacamole,
+            you can have different settings for each location. The settings screen allows users to
+            change the language of the Guacamole interface, to change the default input method used
+            by Guacamole connections, and to change the default mouse emulation mode for if a touch
+            device is used. If you have sufficient permissions, you may also change your password,
+            or administer the system.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/guacamole-preferences.png" width="540" /><div class="caption"><p>Guacamole preferences screen.</p></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="display-language"></a>Display language</h3></div></div></div><p>The Guacamole interface is currently available in English, Dutch, French, German,
+                Italian, and Russian. By default, Guacamole will attempt to determine the
+                appropriate display language by checking the language preferences of the browser in
+                use. If this fails, or the browser is using a language not yet available within
+                Guacamole, English will be used as a fallback.</p><p>If you wish to override the current display language, you can do so by selecting a
+                different language within the "Display language" field. The change will take effect
+                immediately.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="changing-password"></a>Changing your password</h3></div></div></div><p>System administrators can restrict the ability of individual users to change their
+                own passwords, so this section may not always be available. If your account
+                    <span class="emphasis"><em>does</em></span> have permission, the preferences screen will contain a
+                "Change Password" section.</p><p>To change your password, you must provide your current password, enter the desired
+                new password, and click "Update Password". You will remain logged in, and the change
+                will affect any future login attempt.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="default-input-settings"></a>Default input settings</h3></div></div></div><p>Guacamole provides multiple keyboard input methods and multiple mouse emulation
+                modes. Many of these settings are specifically useful for touch devices, while
+                others are aimed mainly at traditional desktop use. By default, Guacamole will use
+                the keyboard and mouse modes most commonly preferred by users, but you can change
+                these defaults if they do not fit your tastes or your current device.</p><p>The choices available mirror those within the Guacamole menu discussed earlier in
+                this chapter, and changing these settings will affect the default values selected
+                within the Guacamole menu of future connections.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="adhoc-connections.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="administration.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 14. Ad-hoc Connections </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 16. Administration</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/writing-you-own-guacamole-app.html b/doc/1.1.0/gug/writing-you-own-guacamole-app.html
new file mode 100644
index 0000000..c3dcb7e
--- /dev/null
+++ b/doc/1.1.0/gug/writing-you-own-guacamole-app.html
@@ -0,0 +1,426 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 26. Writing your own Guacamole application</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="event-listeners.html" title="Chapter 25. Event listeners" /><link rel="next" href="appendices.html" title="Part III. Appendices" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 26. Writing your own Guacamole application</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="event-listeners.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="appendices.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="writing-you-own-guacamole-app"></a>Chapter 26. Writing your own Guacamole application</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="writing-you-own-guacamole-app.html#basic-guacamole-architecture">The basics</a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#web-app-skeleton">Web application skeleton</a></span></dt><dd><dl><dt><span class="section"><a href="writing-you-own-guacamole-app.html#idm46420844261200"><code class="filename">pom.xml</code></a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#idm46420844254592"><code class="filename">WEB-INF/web.xml</code></a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#idm46420844250384"><code class="filename">index.html</code></a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#idm46420844244896">Building the skeleton</a></span></dt></dl></dd><dt><span class="section"><a href="writing-you-own-guacamole-app.html#guacamole-skeleton">Adding Guacamole</a></span></dt><dd><dl><dt><span class="section"><a href="writing-you-own-guacamole-app.html#adding-guac-to-pom">Updating <code class="filename">pom.xml</code></a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#simple-tunnel">The simplest tunnel possible</a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#simple-client">Adding the client</a></span></dt></dl></dd><dt><span class="section"><a href="writing-you-own-guacamole-app.html#next-steps">Where to go from here</a></span></dt></dl></div><a id="idm46420844277056" class="indexterm"></a><a id="idm46420844276048" class="indexterm"></a><p>As Guacamole is an API, one of the best ways to put Guacamole to use is by building your
+        own Guacamole-driven web application, integrating HTML5 remote desktop into whatever you
+        think needs it.</p><p>The Guacamole project provides an example of doing this called "guacamole-example", but
+        this example is already completed for you, and from a quick glance at this example, it may
+        not be obvious just how easy it is to integrate remote access into a web application. This
+        tutorial will walk you through the basic steps of building an HTML5 remote desktop
+        application using the Guacamole API and Maven.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="basic-guacamole-architecture"></a>The basics</h2></div></div></div><p>Guacamole's architecture is made up of many components, but it's actually
+            straightforward, especially from the perspective of the web application.</p><p>Guacamole has a proxy daemon, guacd, which handles communication using remote desktop
+            protocols, exposing those to whatever connects to it (in this case, the web application)
+            using the Guacamole protocol. From where the web application is standing, it doesn't
+            really matter that guacd dynamically loads protocol plugins or that it shares a common
+            library allowing this; all that matters is that the web application just has to connect
+            to port 4822 (where guacd listens by default) and use the Guacamole protocol. The
+            architecture will take care of the rest.</p><p>Thankfully, the Java side of the Guacamole API provides simple classes which already
+            implement the Guacamole protocol with the intent of tunneling it between guacd and the
+            JavaScript half of your web application. A typical web application leveraging these
+            classes needs only the following:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>A class which extends <code class="classname">GuacamoleHTTPTunnelServlet</code>,
+                        providing the tunnel between the JavaScript client (presumably using
+                        guacamole-common-js) and guacd.</p><p><code class="classname">GuacamoleHTTPTunnelServlet</code> is an abstract class
+                        which is provided by the Guacamole API and already implements a fully
+                        functional, HTTP-based tunnel which the tunneling objects already part of
+                        guacamole-common-js are written to connect to. This class exists to make it
+                        easy for you to use Guacamole's existing and robust HTTP tunnel
+                        implementation.</p><p>If you want to not use this class and instead use your own tunneling
+                        mechanism, perhaps WebSocket, this is fine; the JavaScript object mentioned
+                        above implements a common interface which you can also implement, and the
+                        Guacamole JavaScript client which is also part of guacamole-common-js will
+                        happily use your implementation as long as it provides that
+                        interface.</p></li><li class="listitem"><p>A web page which includes JavaScript files from guacamole-common-js and
+                        uses the client and tunnel objects to connect back to the web
+                        application.</p><p>The JavaScript API provided by the Guacamole project includes a full
+                        implementation of the Guacamole protocol as a client, implementations of
+                        HTTP and WebSocket-based tunnels, and mouse/keyboard/touch input
+                        abstraction. Again, as the Guacamole protocol and all parts of the
+                        architecture are documented here, you don't absolutely need to use these
+                        objects, but it will make your life easier. Mouse and keyboard support in
+                        JavaScript is finicky business, and the Guacamole client provided is
+                        well-known to work with other components in the API, being the official
+                        client of the project.</p></li></ol></div><p>That's really all there is to it.</p><p>If you want authentication, the place to implement that would be in your extended
+            version of <code class="classname">GuacamoleHTTPTunnelServlet</code>; this is what the Guacamole
+            web application does. Besides authentication, there are many other things you could wrap
+            around your remote desktop application, but ultimately the base of all this is simple:
+            you have a tunnel which allows the JavaScript client to communicate with guacd, and you
+            have the JavaScript client itself, with the hard part already provided within
+            guacamole-common-js.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="web-app-skeleton"></a>Web application skeleton</h2></div></div></div><p>As with most tutorials, this tutorial begins with creating a project skeleton that
+            establishes a minimal base for the tutorial to enhance in subsequent steps.</p><p>This tutorial will use Maven, which is the same build system used by the upstream
+            Guacamole project. As the Guacamole project has a Maven repository for both the Java and
+            JavaScript APIs, writing a Guacamole-based application using Maven is much easier; Maven
+            will download and use the Guacamole API automatically.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420844261200"></a><code class="filename">pom.xml</code></h3></div></div></div><p>All Maven projects must have a project descriptor, the
+                    <code class="filename">pom.xml</code> file, in the root directory of the project. This
+                file describes project dependencies and specific build requirements. Unlike other
+                build tools like Apache Ant or GNU Autotools, Maven chooses convention over
+                configuration: files within the project must be placed in specific locations, and
+                the project dependencies must be fully described in the pom.xml. If this is done,
+                the build will be handled automatically.</p><p>The basis of this Guacamole-driven web application will be a simple HTML file
+                which will ultimately become the client. While the finished product will have an
+                HTTP tunnel written in Java, we don't need this yet for our skeleton. We will create
+                a very basic, barebones Maven project containing only
+                    <code class="filename">index.html</code> and a web application descriptor file,
+                    <code class="filename">web.xml</code>. Once these files are in place, the project can be
+                packaged into a <code class="filename">.war</code> file which can be deployed to your servlet
+                container of choice (such as Apache Tomcat).</p><p>As this skeleton will contain no Java code, it has no dependencies, and no build
+                requirements beyond the metadata common to any Maven project. The
+                    <code class="filename">pom.xml</code> is thus very simple for the time being:</p><div class="informalexample"><pre class="programlisting">&lt;project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
+                             http://maven.apache.org/maven-v4_0_0.xsd"&gt;
+
+    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
+    &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+    &lt;artifactId&gt;guacamole-tutorial&lt;/artifactId&gt;
+    &lt;packaging&gt;war&lt;/packaging&gt;
+    &lt;version&gt;1.1.0&lt;/version&gt;
+    &lt;name&gt;guacamole-tutorial&lt;/name&gt;
+
+    &lt;properties&gt;
+        &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
+    &lt;/properties&gt;
+
+&lt;/project&gt;</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420844254592"></a><code class="filename">WEB-INF/web.xml</code></h3></div></div></div><p>Before the project will build, there needs to be a web application deployment
+                descriptor, <code class="filename">web.xml</code>. This file is required by the Java EE
+                standard for building the <code class="filename">.war</code> file which will contain the web
+                application, and will be read by the servlet container when the application is
+                actually deployed. For Maven to find and use this file when building the
+                    <code class="filename">.war</code>, it must be placed in the
+                    <code class="filename">src/main/webapp/WEB-INF/</code> directory.</p><div class="informalexample"><pre class="programlisting">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+
+&lt;web-app version="2.5"
+    xmlns="http://java.sun.com/xml/ns/javaee"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
+                        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+
+    &lt;!-- Basic config --&gt;
+    &lt;welcome-file-list&gt;
+        &lt;welcome-file&gt;index.html&lt;/welcome-file&gt;
+    &lt;/welcome-file-list&gt;
+
+&lt;/web-app&gt;</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420844250384"></a><code class="filename">index.html</code></h3></div></div></div><p>With the <code class="filename">web.xml</code> file in place and the skeleton
+                    <code class="filename">pom.xml</code> written, the web application will now build
+                successfully. However, as the <code class="filename">web.xml</code> refers to a "welcome
+                file" called <code class="filename">index.html</code> (which will ultimately contain our
+                client), we need to put this in place so the servlet container will have something
+                to serve. This file, as well as any other future static files, belongs within
+                    <code class="filename">src/main/webapp</code>.</p><p>For now, this file can contain anything, since the other parts of our
+                Guacamole-driven web application are not written yet. It is a placeholder which we
+                will replace later:</p><div class="informalexample"><pre class="programlisting">&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+
+    &lt;head&gt;
+        &lt;title&gt;Guacamole Tutorial&lt;/title&gt;
+    &lt;/head&gt;
+
+    &lt;body&gt;
+        &lt;p&gt;Hello World&lt;/p&gt;
+    &lt;/body&gt;
+
+&lt;/html&gt;</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420844244896"></a>Building the skeleton</h3></div></div></div><p>Once all three of the above files are in place, the web application will build,
+                and can even be deployed to your servlet container. It won't do anything yet other
+                than serve the <code class="filename">index.html</code> file, but it's good to at least try
+                building the web application to make sure nothing is missing and all steps were
+                followed correctly before proceeding:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> mvn package
+<code class="computeroutput">[INFO] Scanning for projects...
+[INFO] ------------------------------------------------------------------------
+[INFO] Building guacamole-tutorial
+[INFO]    task-segment: [package]
+[INFO] ------------------------------------------------------------------------
+...
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESSFUL
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 4 seconds
+[INFO] Finished at: Fri Jan 11 13:04:11 PST 2013
+[INFO] Final Memory: 18M/128M
+[INFO] ------------------------------------------------------------------------</code>
+<code class="prompt">$</code></pre></div><p>Assuming you see the "<code class="computeroutput">BUILD SUCCESSFUL</code>" message
+                when you build the web application, there will be a new file,
+                    <code class="filename">target/guacamole-tutorial-1.1.0.war</code>, which
+                can be deployed to your servlet container and tested. If you changed the name or
+                version of the project in the <code class="filename">pom.xml</code> file, the name of this new
+                    <code class="filename">.war</code> file will be different, but it can still be found
+                within <code class="filename">target/</code>.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-skeleton"></a>Adding Guacamole</h2></div></div></div><p>Once we have a functional web application built, the next step is to actually add the
+            references to the Guacamole API and integrate a Guacamole client into the
+            application.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="adding-guac-to-pom"></a>Updating <code class="filename">pom.xml</code></h3></div></div></div><p>Now that we're adding Guacamole components to our project, we need to modify
+                    <code class="filename">pom.xml</code> to specify which components are being used, and
+                where they can be obtained. With this information in place, Maven will automatically
+                resolve dependencies and download them as necessary during the build.</p><p>Regarding the build process itself, there are two main changes: we are now going
+                to be using Java, and we need the JavaScript files from guacamole-common-js included
+                automatically inside the <code class="filename">.war</code>.</p><p>Guacamole requires at least Java 1.6, thus we must add a section to the
+                    <code class="filename">pom.xml</code> which describes the source and target Java
+                versions:</p><div class="informalexample"><pre class="programlisting">    ...
+
+    &lt;build&gt;
+        &lt;plugins&gt;
+
+            &lt;!-- Compile using Java 1.6 --&gt;
+            &lt;plugin&gt;
+                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+                &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
+                &lt;version&gt;3.3&lt;/version&gt;
+                &lt;configuration&gt;
+                    &lt;source&gt;1.6&lt;/source&gt;
+                    &lt;target&gt;1.6&lt;/target&gt;
+                &lt;/configuration&gt;
+            &lt;/plugin&gt;
+
+        &lt;/plugins&gt;
+
+    &lt;/build&gt;
+
+    ...</pre></div><p>Including the JavaScript files from an external project like guacamole-common-js
+                requires using a feature of the maven war plugin called overlays. To add an overlay
+                containing guacamole-common-js, we add a section describing the configuration of the
+                Maven war plugin, listing guacamole-common-js as an overlay:</p><div class="informalexample"><pre class="programlisting">    ...
+
+    &lt;build&gt;
+        &lt;plugins&gt;
+
+            ...
+
+            &lt;!-- Overlay guacamole-common-js (zip) --&gt;
+            &lt;plugin&gt;
+                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+                &lt;artifactId&gt;maven-war-plugin&lt;/artifactId&gt;
+                &lt;version&gt;2.6&lt;/version&gt;
+                &lt;configuration&gt;
+                    &lt;overlays&gt;
+                        &lt;overlay&gt;
+                            &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+                            &lt;artifactId&gt;guacamole-common-js&lt;/artifactId&gt;
+                            &lt;type&gt;zip&lt;/type&gt;
+                        &lt;/overlay&gt;
+                    &lt;/overlays&gt;
+                &lt;/configuration&gt;
+            &lt;/plugin&gt;
+
+        &lt;/plugins&gt;
+
+    &lt;/build&gt;
+
+    ...</pre></div><p>With the build now configured, we still need to add dependencies and list the
+                repositories those dependencies can be downloaded from.</p><p>As this is a web application which will use the Java Servlet API, we must
+                explicitly include this as a dependency, as well as the Guacamole Java and
+                JavaScript APIs:</p><div class="informalexample"><pre class="programlisting">    ...
+
+    &lt;dependencies&gt;
+
+        &lt;!-- Servlet API --&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
+            &lt;artifactId&gt;servlet-api&lt;/artifactId&gt;
+            &lt;version&gt;2.5&lt;/version&gt;
+            &lt;scope&gt;provided&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;!-- Main Guacamole library --&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+            &lt;artifactId&gt;guacamole-common&lt;/artifactId&gt;
+            &lt;version&gt;1.1.0&lt;/version&gt;
+            &lt;scope&gt;compile&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;!-- Guacamole JavaScript library --&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+            &lt;artifactId&gt;guacamole-common-js&lt;/artifactId&gt;
+            &lt;version&gt;1.1.0&lt;/version&gt;
+            &lt;type&gt;zip&lt;/type&gt;
+            &lt;scope&gt;runtime&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+    &lt;/dependencies&gt;
+
+    ...</pre></div><p>The Java Servlet API will be provided by your servlet container, so Maven does not
+                need to download it during the build, and it need not exist in any Maven
+                repository.</p><p>With these changes, the web application will still build at this point, even
+                though no Java code has been written yet. You may wish to verify that everything
+                still works.</p><p>If the <code class="filename">pom.xml</code> was updated properly as described above, the
+                web application should build successfully, and the Guacamole JavaScript API should
+                be accessible in the <code class="filename">guacamole-common-js/</code> subdirectory of your
+                web application after it is deployed. A quick check that you can access
+                    <code class="uri">/guacamole-tutorial-1.1.0/guacamole-common-js/all.min.js</code>
+                is probably worth the effort.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="simple-tunnel"></a>The simplest tunnel possible</h3></div></div></div><p>As with the other tutorials in this book, we will keep this simple for the sake of
+                demonstrating the principles behind a Guacamole-based web application, and to give
+                developers a good idea of where to start looking when it's time to consult the API
+                documentation.</p><p>It is the duty of the class extending
+                    <code class="classname">GuacamoleHTTPTunnelServlet</code> to implement a function called
+                    <code class="methodname">doConnect()</code>. This is the only function required to be
+                implemented, and in general it is the only function you should implement; the other
+                functions involved are already optimized for tunneling the Guacamole
+                protocol.</p><p>The <code class="methodname">doConnect()</code> function returns a
+                    <code class="classname">GuacamoleTunnel</code>, which provides a persistent
+                communication channel for <code class="classname">GuacamoleHTTPTunnelServlet</code> to use
+                when talking with guacd and initiating a connection with some arbitrary remote
+                desktop using some arbitrary remote desktop protocol. In our simple tunnel, this
+                configuration will be hard-coded, and no authentication will be attempted. Any user
+                accessing this web application will be immediately given a functional remote
+                desktop, no questions asked.</p><p>Create a new file, <code class="filename">TutorialGuacamoleTunnelServlet.java</code>,
+                defining a basic implementation of a tunnel servlet class:</p><div class="informalexample"><pre class="programlisting">package org.apache.guacamole.net.example;
+
+import javax.servlet.http.HttpServletRequest;
+import org.apache.guacamole.GuacamoleException;
+import org.apache.guacamole.net.GuacamoleSocket;
+import org.apache.guacamole.net.GuacamoleTunnel;
+import org.apache.guacamole.net.InetGuacamoleSocket;
+import org.apache.guacamole.net.SimpleGuacamoleTunnel;
+import org.apache.guacamole.protocol.ConfiguredGuacamoleSocket;
+import org.apache.guacamole.protocol.GuacamoleConfiguration;
+import org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet;
+
+public class TutorialGuacamoleTunnelServlet
+    extends GuacamoleHTTPTunnelServlet {
+
+    @Override
+    protected GuacamoleTunnel doConnect(HttpServletRequest request)
+        throws GuacamoleException {
+
+        // Create our configuration
+        GuacamoleConfiguration config = new GuacamoleConfiguration();
+        config.setProtocol("vnc");
+        config.setParameter("hostname", "localhost");
+        config.setParameter("port", "5901");
+        config.setParameter("password", "potato");
+
+        // Connect to guacd - everything is hard-coded here.
+        GuacamoleSocket socket = new ConfiguredGuacamoleSocket(
+                new InetGuacamoleSocket("localhost", 4822),
+                config
+        );
+
+        // Return a new tunnel which uses the connected socket
+        return new SimpleGuacamoleTunnel(socket);;
+
+    }
+
+}</pre></div><p>Place this file in the
+                    <code class="filename">src/main/java/org/apache/guacamole/net/example</code> subdirectory
+                of the project. The initial part of this subdirectory,
+                    <code class="filename">src/main/java</code>, is the path required by Maven, while the
+                rest is the directory required by Java based on the package associated with the
+                class.</p><p>Once the class defining our tunnel is created, it must be added to the
+                    <code class="filename">web.xml</code> such that the servlet container knows which URL
+                maps to it. This URL will later be given to the JavaScript client to establish the
+                connection back to the Guacamole server:</p><div class="informalexample"><pre class="programlisting">    ...
+
+    &lt;!-- Guacamole Tunnel Servlet --&gt;
+    &lt;servlet&gt;
+        &lt;description&gt;Tunnel servlet.&lt;/description&gt;
+        &lt;servlet-name&gt;Tunnel&lt;/servlet-name&gt;
+        &lt;servlet-class&gt;
+            org.apache.guacamole.net.example.TutorialGuacamoleTunnelServlet
+        &lt;/servlet-class&gt;
+    &lt;/servlet&gt;
+
+    &lt;servlet-mapping&gt;
+        &lt;servlet-name&gt;Tunnel&lt;/servlet-name&gt;
+        &lt;url-pattern&gt;/tunnel&lt;/url-pattern&gt;
+    &lt;/servlet-mapping&gt;
+
+    ...</pre></div><p>The first section assigns a unique name, "Tunnel", to the servlet class we just
+                defined. The second section maps the servlet class by it's servlet name ("Tunnel")
+                to the URL we wish to use when making HTTP requests to the servlet:
+                    <code class="uri">/tunnel</code>. This URL is relative to the context root of the web
+                application. In the case of this web application, the final absolute URL will be
+                    <code class="uri">/guacamole-tutorial-1.1.0/tunnel</code>.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="simple-client"></a>Adding the client</h3></div></div></div><p>As the Guacamole JavaScript API already provides functional client and tunnel
+                implementations, as well as mouse and keyboard input objects, the coding required
+                for the "web" side of the web application is very minimal.</p><p>We must create a <code class="classname">Guacamole.HTTPTunnel</code>, connect it to our
+                previously-implemented tunnel servlet, and pass that tunnel to a new
+                    <code class="classname">Guacamole.Client</code>. Once that is done, and the
+                    <code class="methodname">connect()</code> function of the client is called,
+                communication will immediately ensue, and your remote desktop will be
+                visible:</p><div class="informalexample"><pre class="programlisting">    ...
+    &lt;body&gt;
+
+        &lt;!-- Guacamole --&gt;
+        &lt;script type="text/javascript"
+            src="guacamole-common-js/all.min.js"&gt;&lt;/script&gt;
+
+        &lt;!-- Display --&gt;
+        &lt;div id="display"&gt;&lt;/div&gt;
+
+        &lt;!-- Init --&gt;
+        &lt;script type="text/javascript"&gt; /* &lt;![CDATA[ */
+
+            // Get display div from document
+            var display = document.getElementById("display");
+
+            // Instantiate client, using an HTTP tunnel for communications.
+            var guac = new Guacamole.Client(
+                new Guacamole.HTTPTunnel("tunnel")
+            );
+
+            // Add client to display div
+            display.appendChild(guac.getDisplay().getElement());
+            
+            // Error handler
+            guac.onerror = function(error) {
+                alert(error);
+            };
+
+            // Connect
+            guac.connect();
+
+            // Disconnect on close
+            window.onunload = function() {
+                guac.disconnect();
+            }
+
+        /* ]]&gt; */ &lt;/script&gt;
+
+    &lt;/body&gt;
+    ...</pre></div><p>If you build and deploy the web application now, it will work, but mouse and
+                keyboard input will not. This is because input is not implemented by the client
+                directly. The Guacamole.Client object only decodes the Guacamole protocol and
+                handles the display, providing an element which you can add manually to the DOM.
+                While it will also send keyboard and mouse events for you, you need to call the
+                respective functions manually. The Guacamole API provides keyboard and mouse
+                abstraction objects which make this easy.</p><p>We need only create a <code class="classname">Guacamole.Mouse</code> and
+                    <code class="methodname">Guacamole.Keyboard</code>, and add event handlers to handle
+                their corresponding input events, calling whichever function of the Guacamole client
+                is appropriate to send the input event through the tunnel to guacd:</p><div class="informalexample"><pre class="programlisting">        ...
+
+        &lt;!-- Init --&gt;
+        &lt;script type="text/javascript"&gt; /* &lt;![CDATA[ */
+
+            ...
+
+            // Mouse
+            var mouse = new Guacamole.Mouse(guac.getDisplay().getElement());
+
+            mouse.onmousedown = 
+            mouse.onmouseup   =
+            mouse.onmousemove = function(mouseState) {
+                guac.sendMouseState(mouseState);
+            };
+
+            // Keyboard
+            var keyboard = new Guacamole.Keyboard(document);
+
+            keyboard.onkeydown = function (keysym) {
+                guac.sendKeyEvent(1, keysym);
+            };
+
+            keyboard.onkeyup = function (keysym) {
+                guac.sendKeyEvent(0, keysym);
+            };
+
+        /* ]]&gt; */ &lt;/script&gt;
+
+        ...</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="next-steps"></a>Where to go from here</h2></div></div></div><p>At this point, we now have a fully functional Guacamole-based web application. This
+            web application inherits all the core functionality present in the official Guacamole
+            web application, including sound and video, without very much coding.</p><p>Extending this application to provide authentication, multiple connections per user,
+            or a spiffy interface which is compatible with mobile is not too much of a stretch. This
+            is exactly how the Guacamole web application is written. Integrating Guacamole into an
+            existing application would be similar.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="event-listeners.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="appendices.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 25. Event listeners </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Part III. Appendices</td></tr></table></div>
+
+            </div></div>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/libguac/annotated.html b/doc/1.1.0/libguac/annotated.html
new file mode 100644
index 0000000..b17cbac
--- /dev/null
+++ b/doc/1.1.0/libguac/annotated.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Data Structures</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Data Structures</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__audio__encoder.html" target="_self">guac_audio_encoder</a></td><td class="desc">Arbitrary audio codec encoder </td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__audio__stream.html" target="_self">guac_audio_stream</a></td><td class="desc">Basic audio stream </td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__client.html" target="_self">guac_client</a></td><td class="desc">Guacamole proxy client </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__layer.html" target="_self">guac_layer</a></td><td class="desc">Represents a single layer within the Guacamole protocol </td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__object.html" target="_self">guac_object</a></td><td class="desc">Represents a single object within the Guacamole protocol </td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__parser.html" target="_self">guac_parser</a></td><td class="desc">A Guacamole protocol parser, which reads individual instructions, filling its own internal structure with the most recently read instruction data </td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__pool.html" target="_self">guac_pool</a></td><td class="desc">A pool of integers </td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__pool__int.html" target="_self">guac_pool_int</a></td><td class="desc">Represents a single integer within a larger pool of integers </td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__socket.html" target="_self">guac_socket</a></td><td class="desc">The core I/O object of Guacamole </td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__socket__ssl__data.html" target="_self">guac_socket_ssl_data</a></td><td class="desc">SSL socket-specific data </td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__stream.html" target="_self">guac_stream</a></td><td class="desc">Represents a single stream within the Guacamole protocol </td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__user.html" target="_self">guac_user</a></td><td class="desc">Representation of a physical connection within a larger logical connection which may be shared </td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__user__info.html" target="_self">guac_user_info</a></td><td class="desc">Information exposed by the remote client during the connection handshake which can be used by a client plugin </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/audio-fntypes_8h.html b/doc/1.1.0/libguac/audio-fntypes_8h.html
new file mode 100644
index 0000000..ec6254e
--- /dev/null
+++ b/doc/1.1.0/libguac/audio-fntypes_8h.html
@@ -0,0 +1,224 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/audio-fntypes.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">audio-fntypes.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Function type definitions related to simple streaming audio.  
+<a href="#details">More...</a></p>
+
+<p><a href="audio-fntypes_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a0b14abed1928c4e00129c7b87e391816"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">guac_audio_encoder_begin_handler</a>(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio)</td></tr>
+<tr class="memdesc:a0b14abed1928c4e00129c7b87e391816"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which is called when the audio stream is opened.  <a href="#a0b14abed1928c4e00129c7b87e391816">More...</a><br /></td></tr>
+<tr class="separator:a0b14abed1928c4e00129c7b87e391816"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8736cc2b634df9c222cf09dcc6507162"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">guac_audio_encoder_flush_handler</a>(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio)</td></tr>
+<tr class="memdesc:a8736cc2b634df9c222cf09dcc6507162"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which is called when the audio stream needs to be flushed.  <a href="#a8736cc2b634df9c222cf09dcc6507162">More...</a><br /></td></tr>
+<tr class="separator:a8736cc2b634df9c222cf09dcc6507162"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa29dc3999c06e82c20d7a5e5d1e1565d"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">guac_audio_encoder_end_handler</a>(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio)</td></tr>
+<tr class="memdesc:aa29dc3999c06e82c20d7a5e5d1e1565d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which is called when the audio stream is closed.  <a href="#aa29dc3999c06e82c20d7a5e5d1e1565d">More...</a><br /></td></tr>
+<tr class="separator:aa29dc3999c06e82c20d7a5e5d1e1565d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d1fac87cc2ee072112d9d65d43ae70e"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">guac_audio_encoder_join_handler</a>(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio, <a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a9d1fac87cc2ee072112d9d65d43ae70e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which is called when a new user has joined the Guacamole connection associated with the audio stream.  <a href="#a9d1fac87cc2ee072112d9d65d43ae70e">More...</a><br /></td></tr>
+<tr class="separator:a9d1fac87cc2ee072112d9d65d43ae70e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a57fe16e56c1c115b2321e50b9d9ce11a"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">guac_audio_encoder_write_handler</a>(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio, const unsigned char *pcm_data, int length)</td></tr>
+<tr class="memdesc:a57fe16e56c1c115b2321e50b9d9ce11a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which is called when PCM data is written to the audio stream.  <a href="#a57fe16e56c1c115b2321e50b9d9ce11a">More...</a><br /></td></tr>
+<tr class="separator:a57fe16e56c1c115b2321e50b9d9ce11a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Function type definitions related to simple streaming audio. </p>
+</div><h2 class="groupheader">Typedef Documentation</h2>
+<a id="a0b14abed1928c4e00129c7b87e391816"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0b14abed1928c4e00129c7b87e391816">&#9670;&nbsp;</a></span>guac_audio_encoder_begin_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_audio_encoder_begin_handler(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler which is called when the audio stream is opened. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The audio stream being opened. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="aa29dc3999c06e82c20d7a5e5d1e1565d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa29dc3999c06e82c20d7a5e5d1e1565d">&#9670;&nbsp;</a></span>guac_audio_encoder_end_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_audio_encoder_end_handler(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler which is called when the audio stream is closed. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The audio stream being closed. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a8736cc2b634df9c222cf09dcc6507162"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8736cc2b634df9c222cf09dcc6507162">&#9670;&nbsp;</a></span>guac_audio_encoder_flush_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_audio_encoder_flush_handler(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler which is called when the audio stream needs to be flushed. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The audio stream being flushed. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a9d1fac87cc2ee072112d9d65d43ae70e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9d1fac87cc2ee072112d9d65d43ae70e">&#9670;&nbsp;</a></span>guac_audio_encoder_join_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_audio_encoder_join_handler(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio, <a class="el" href="structguac__user.html">guac_user</a> *user)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler which is called when a new user has joined the Guacamole connection associated with the audio stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The audio stream associated with the Guacamole connection being joined.</td></tr>
+    <tr><td class="paramname">user</td><td>The user that joined the connection. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a57fe16e56c1c115b2321e50b9d9ce11a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a57fe16e56c1c115b2321e50b9d9ce11a">&#9670;&nbsp;</a></span>guac_audio_encoder_write_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_audio_encoder_write_handler(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio, const unsigned char *pcm_data, int length)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler which is called when PCM data is written to the audio stream. </p>
+<p>The format of the PCM data is dictated by the properties of the audio stream.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The audio stream to which data is being written.</td></tr>
+    <tr><td class="paramname">pcm_data</td><td>A buffer containing the raw PCM data to be written.</td></tr>
+    <tr><td class="paramname">length</td><td>The number of bytes within the buffer that should be written to the audio stream. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/audio-fntypes_8h_source.html b/doc/1.1.0/libguac/audio-fntypes_8h_source.html
new file mode 100644
index 0000000..5263a9e
--- /dev/null
+++ b/doc/1.1.0/libguac/audio-fntypes_8h_source.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/audio-fntypes.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">audio-fntypes.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="audio-fntypes_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_AUDIO_FNTYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_AUDIO_FNTYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="audio-types_8h.html">audio-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-types_8h.html">user-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">   38</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">guac_audio_encoder_begin_handler</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio);</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">   46</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">guac_audio_encoder_flush_handler</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio);</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">   54</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">guac_audio_encoder_end_handler</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio);</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">   67</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">guac_audio_encoder_join_handler</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio,</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        <a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">   84</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">guac_audio_encoder_write_handler</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio,</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* pcm_data, <span class="keywordtype">int</span> length);</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="ttc" id="audio-fntypes_8h_html_aa29dc3999c06e82c20d7a5e5d1e1565d"><div class="ttname"><a href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">guac_audio_encoder_end_handler</a></div><div class="ttdeci">void guac_audio_encoder_end_handler(guac_audio_stream *audio)</div><div class="ttdoc">Handler which is called when the audio stream is closed. </div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:54</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a8736cc2b634df9c222cf09dcc6507162"><div class="ttname"><a href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">guac_audio_encoder_flush_handler</a></div><div class="ttdeci">void guac_audio_encoder_flush_handler(guac_audio_stream *audio)</div><div class="ttdoc">Handler which is called when the audio stream needs to be flushed. </div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:46</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a57fe16e56c1c115b2321e50b9d9ce11a"><div class="ttname"><a href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">guac_audio_encoder_write_handler</a></div><div class="ttdeci">void guac_audio_encoder_write_handler(guac_audio_stream *audio, const unsigned char *pcm_data, int length)</div><div class="ttdoc">Handler which is called when PCM data is written to the audio stream. </div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:84</div></div>
+<div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared...</div><div class="ttdef"><b>Definition:</b> user.h:101</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a9d1fac87cc2ee072112d9d65d43ae70e"><div class="ttname"><a href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">guac_audio_encoder_join_handler</a></div><div class="ttdeci">void guac_audio_encoder_join_handler(guac_audio_stream *audio, guac_user *user)</div><div class="ttdoc">Handler which is called when a new user has joined the Guacamole connection associated with the audio...</div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:67</div></div>
+<div class="ttc" id="audio-types_8h_html"><div class="ttname"><a href="audio-types_8h.html">audio-types.h</a></div><div class="ttdoc">Type definitions related to simple streaming audio. </div></div>
+<div class="ttc" id="structguac__audio__stream_html"><div class="ttname"><a href="structguac__audio__stream.html">guac_audio_stream</a></div><div class="ttdoc">Basic audio stream. </div><div class="ttdef"><b>Definition:</b> audio.h:72</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a0b14abed1928c4e00129c7b87e391816"><div class="ttname"><a href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">guac_audio_encoder_begin_handler</a></div><div class="ttdeci">void guac_audio_encoder_begin_handler(guac_audio_stream *audio)</div><div class="ttdoc">Handler which is called when the audio stream is opened. </div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:38</div></div>
+<div class="ttc" id="user-types_8h_html"><div class="ttname"><a href="user-types_8h.html">user-types.h</a></div><div class="ttdoc">Type definitions related to the guac_user object. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/audio-types_8h.html b/doc/1.1.0/libguac/audio-types_8h.html
new file mode 100644
index 0000000..1cfe4ef
--- /dev/null
+++ b/doc/1.1.0/libguac/audio-types_8h.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/audio-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">audio-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to simple streaming audio.  
+<a href="#details">More...</a></p>
+
+<p><a href="audio-types_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to simple streaming audio. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/audio-types_8h_source.html b/doc/1.1.0/libguac/audio-types_8h_source.html
new file mode 100644
index 0000000..3d84d8a
--- /dev/null
+++ b/doc/1.1.0/libguac/audio-types_8h_source.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/audio-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">audio-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="audio-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef __GUAC_AUDIO_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define __GUAC_AUDIO_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__audio__stream.html">guac_audio_stream</a> <a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__audio__encoder.html">guac_audio_encoder</a> <a class="code" href="structguac__audio__encoder.html">guac_audio_encoder</a>;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="ttc" id="structguac__audio__stream_html"><div class="ttname"><a href="structguac__audio__stream.html">guac_audio_stream</a></div><div class="ttdoc">Basic audio stream. </div><div class="ttdef"><b>Definition:</b> audio.h:72</div></div>
+<div class="ttc" id="structguac__audio__encoder_html"><div class="ttname"><a href="structguac__audio__encoder.html">guac_audio_encoder</a></div><div class="ttdoc">Arbitrary audio codec encoder. </div><div class="ttdef"><b>Definition:</b> audio.h:35</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/audio_8h.html b/doc/1.1.0/libguac/audio_8h.html
new file mode 100644
index 0000000..dade04c
--- /dev/null
+++ b/doc/1.1.0/libguac/audio_8h.html
@@ -0,0 +1,378 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/audio.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">audio.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures used for providing simple streaming audio.  
+<a href="#details">More...</a></p>
+
+<p><a href="audio_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary audio codec encoder.  <a href="structguac__audio__encoder.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic audio stream.  <a href="structguac__audio__stream.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:afc1fc0133504e718edf4756fac5e9c30"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html#afc1fc0133504e718edf4756fac5e9c30">guac_audio_stream_alloc</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a> *encoder, int rate, int channels, int bps)</td></tr>
+<tr class="memdesc:afc1fc0133504e718edf4756fac5e9c30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new audio stream at the client level which encodes audio data using the given encoder.  <a href="#afc1fc0133504e718edf4756fac5e9c30">More...</a><br /></td></tr>
+<tr class="separator:afc1fc0133504e718edf4756fac5e9c30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0bbd483b1bfe5eede15539a0aacfedad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad">guac_audio_stream_reset</a> (<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio, <a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a> *encoder, int rate, int channels, int bps)</td></tr>
+<tr class="memdesc:a0bbd483b1bfe5eede15539a0aacfedad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the given audio stream, switching to the given encoder, rate, channels, and bits per sample.  <a href="#a0bbd483b1bfe5eede15539a0aacfedad">More...</a><br /></td></tr>
+<tr class="separator:a0bbd483b1bfe5eede15539a0aacfedad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2b8e2f05a19b137454832a5dbc6c3864"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864">guac_audio_stream_add_user</a> (<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio, <a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a2b8e2f05a19b137454832a5dbc6c3864"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notifies the given audio stream that a user has joined the connection.  <a href="#a2b8e2f05a19b137454832a5dbc6c3864">More...</a><br /></td></tr>
+<tr class="separator:a2b8e2f05a19b137454832a5dbc6c3864"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adcc872292b5ba6c39905610b2bccbf31"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html#adcc872292b5ba6c39905610b2bccbf31">guac_audio_stream_free</a> (<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *stream)</td></tr>
+<tr class="memdesc:adcc872292b5ba6c39905610b2bccbf31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes and frees the given audio stream.  <a href="#adcc872292b5ba6c39905610b2bccbf31">More...</a><br /></td></tr>
+<tr class="separator:adcc872292b5ba6c39905610b2bccbf31"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a11bdfee60584106ba85d97a3f8273cc2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2">guac_audio_stream_write_pcm</a> (<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *stream, const unsigned char *data, int length)</td></tr>
+<tr class="memdesc:a11bdfee60584106ba85d97a3f8273cc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes PCM data to the given audio stream.  <a href="#a11bdfee60584106ba85d97a3f8273cc2">More...</a><br /></td></tr>
+<tr class="separator:a11bdfee60584106ba85d97a3f8273cc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af75feccacea2b14ee946064cf623f143"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html#af75feccacea2b14ee946064cf623f143">guac_audio_stream_flush</a> (<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *stream)</td></tr>
+<tr class="memdesc:af75feccacea2b14ee946064cf623f143"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flushes the underlying audio buffer, if any, ensuring that all audio previously written via <a class="el" href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2" title="Writes PCM data to the given audio stream. ">guac_audio_stream_write_pcm()</a> has been encoded and sent to the client.  <a href="#af75feccacea2b14ee946064cf623f143">More...</a><br /></td></tr>
+<tr class="separator:af75feccacea2b14ee946064cf623f143"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures used for providing simple streaming audio. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a2b8e2f05a19b137454832a5dbc6c3864"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2b8e2f05a19b137454832a5dbc6c3864">&#9670;&nbsp;</a></span>guac_audio_stream_add_user()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_audio_stream_add_user </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *&#160;</td>
+          <td class="paramname"><em>audio</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Notifies the given audio stream that a user has joined the connection. </p>
+<p>The audio stream itself may need to be restarted. and the audio stream will need to be created for the new user to ensure they can properly handle future data received along the stream.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The <a class="el" href="structguac__audio__stream.html" title="Basic audio stream. ">guac_audio_stream</a> associated with the Guacamole connection being joined.</td></tr>
+    <tr><td class="paramname">user</td><td>The user that has joined the Guacamole connection. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="afc1fc0133504e718edf4756fac5e9c30"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afc1fc0133504e718edf4756fac5e9c30">&#9670;&nbsp;</a></span>guac_audio_stream_alloc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a>* guac_audio_stream_alloc </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a> *&#160;</td>
+          <td class="paramname"><em>encoder</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>rate</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>channels</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>bps</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new audio stream at the client level which encodes audio data using the given encoder. </p>
+<p>If NULL is specified for the encoder, an appropriate encoder will be selected based on the encoders built into libguac and the level of support declared by users associated with the given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. The PCM format specified here (via rate, channels, and bps) must be the format used for all PCM data provided to the audio stream. The format may only be changed using <a class="el" href="audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad" title="Resets the given audio stream, switching to the given encoder, rate, channels, and bits per sample...">guac_audio_stream_reset()</a>.</p>
+<p>If a new user joins the connection after the audio stream is created, that user will not be aware of the existence of the audio stream, and <a class="el" href="audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864" title="Notifies the given audio stream that a user has joined the connection. ">guac_audio_stream_add_user()</a> will need to be invoked to recreate the stream for the new user.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> for which this audio stream is being allocated. The connection owner is given priority when determining the level of audio support. It is currently assumed that all other joining users on the connection will have the same level of audio support.</td></tr>
+    <tr><td class="paramname">encoder</td><td>The <a class="el" href="structguac__audio__encoder.html" title="Arbitrary audio codec encoder. ">guac_audio_encoder</a> to use when encoding audio, or NULL if libguac should select an appropriate built-in encoder on its own.</td></tr>
+    <tr><td class="paramname">rate</td><td>The number of samples per second of PCM data sent to this stream.</td></tr>
+    <tr><td class="paramname">channels</td><td>The number of audio channels per sample of PCM data. Legal values are 1 or 2.</td></tr>
+    <tr><td class="paramname">bps</td><td>The number of bits per sample per channel for PCM data. Legal values are 8 or 16.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The newly allocated <a class="el" href="structguac__audio__stream.html" title="Basic audio stream. ">guac_audio_stream</a>, or NULL if no audio stream could be allocated due to lack of support on the part of the connecting Guacamole client or due to reaching the maximum number of active streams. </dd></dl>
+
+</div>
+</div>
+<a id="af75feccacea2b14ee946064cf623f143"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af75feccacea2b14ee946064cf623f143">&#9670;&nbsp;</a></span>guac_audio_stream_flush()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_audio_stream_flush </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Flushes the underlying audio buffer, if any, ensuring that all audio previously written via <a class="el" href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2" title="Writes PCM data to the given audio stream. ">guac_audio_stream_write_pcm()</a> has been encoded and sent to the client. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stream</td><td>The <a class="el" href="structguac__audio__stream.html" title="Basic audio stream. ">guac_audio_stream</a> whose audio buffers should be flushed. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="adcc872292b5ba6c39905610b2bccbf31"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adcc872292b5ba6c39905610b2bccbf31">&#9670;&nbsp;</a></span>guac_audio_stream_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_audio_stream_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Closes and frees the given audio stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stream</td><td>The <a class="el" href="structguac__audio__stream.html" title="Basic audio stream. ">guac_audio_stream</a> to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a0bbd483b1bfe5eede15539a0aacfedad"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0bbd483b1bfe5eede15539a0aacfedad">&#9670;&nbsp;</a></span>guac_audio_stream_reset()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_audio_stream_reset </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *&#160;</td>
+          <td class="paramname"><em>audio</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a> *&#160;</td>
+          <td class="paramname"><em>encoder</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>rate</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>channels</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>bps</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Resets the given audio stream, switching to the given encoder, rate, channels, and bits per sample. </p>
+<p>If NULL is specified for the encoder, the encoder is left unchanged. If the encoder, rate, channels, and bits per sample are all identical to the current settings, this function has no effect.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The <a class="el" href="structguac__audio__stream.html" title="Basic audio stream. ">guac_audio_stream</a> to reset.</td></tr>
+    <tr><td class="paramname">encoder</td><td>The <a class="el" href="structguac__audio__encoder.html" title="Arbitrary audio codec encoder. ">guac_audio_encoder</a> to use when encoding audio, or NULL to leave this unchanged.</td></tr>
+    <tr><td class="paramname">rate</td><td>The number of samples per second of PCM data sent to this stream.</td></tr>
+    <tr><td class="paramname">channels</td><td>The number of audio channels per sample of PCM data. Legal values are 1 or 2.</td></tr>
+    <tr><td class="paramname">bps</td><td>The number of bits per sample per channel for PCM data. Legal values are 8 or 16. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a11bdfee60584106ba85d97a3f8273cc2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a11bdfee60584106ba85d97a3f8273cc2">&#9670;&nbsp;</a></span>guac_audio_stream_write_pcm()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_audio_stream_write_pcm </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const unsigned char *&#160;</td>
+          <td class="paramname"><em>data</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>length</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes PCM data to the given audio stream. </p>
+<p>This PCM data will be automatically encoded by the audio encoder associated with this stream. The PCM data must be 2-channel, 44100 Hz, with signed 16-bit samples.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stream</td><td>The <a class="el" href="structguac__audio__stream.html" title="Basic audio stream. ">guac_audio_stream</a> to write PCM data through.</td></tr>
+    <tr><td class="paramname">data</td><td>The PCM data to write.</td></tr>
+    <tr><td class="paramname">length</td><td>The number of bytes of PCM data provided. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/audio_8h_source.html b/doc/1.1.0/libguac/audio_8h_source.html
new file mode 100644
index 0000000..603de70
--- /dev/null
+++ b/doc/1.1.0/libguac/audio_8h_source.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/audio.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">audio.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="audio_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef __GUAC_AUDIO_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define __GUAC_AUDIO_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="audio-fntypes_8h.html">audio-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="audio-types_8h.html">audio-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-types_8h.html">client-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html">   35</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__audio__encoder.html">guac_audio_encoder</a> {</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b">   41</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b">mimetype</a>;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6">   46</a></span>&#160;    <a class="code" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">guac_audio_encoder_begin_handler</a>* <a class="code" href="structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6">begin_handler</a>;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74">   52</a></span>&#160;    <a class="code" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">guac_audio_encoder_write_handler</a>* <a class="code" href="structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74">write_handler</a>;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0">   57</a></span>&#160;    <a class="code" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">guac_audio_encoder_flush_handler</a>* <a class="code" href="structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0">flush_handler</a>;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92">   62</a></span>&#160;    <a class="code" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">guac_audio_encoder_end_handler</a>* <a class="code" href="structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92">end_handler</a>;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b">   68</a></span>&#160;    <a class="code" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">guac_audio_encoder_join_handler</a>* <a class="code" href="structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b">join_handler</a>;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;};</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html">   72</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__audio__stream.html">guac_audio_stream</a> {</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d">   77</a></span>&#160;    <a class="code" href="structguac__audio__encoder.html">guac_audio_encoder</a>* <a class="code" href="structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d">encoder</a>;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba">   82</a></span>&#160;    <a class="code" href="structguac__client.html">guac_client</a>* <a class="code" href="structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba">client</a>;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894">   87</a></span>&#160;    <a class="code" href="structguac__stream.html">guac_stream</a>* <a class="code" href="structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894">stream</a>;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9">   92</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9">rate</a>;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6">   98</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6">channels</a>;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866">  104</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866">bps</a>;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7">  109</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7">data</a>;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;};</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* <a class="code" href="audio_8h.html#afc1fc0133504e718edf4756fac5e9c30">guac_audio_stream_alloc</a>(<a class="code" href="structguac__client.html">guac_client</a>* client,</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <a class="code" href="structguac__audio__encoder.html">guac_audio_encoder</a>* encoder, <span class="keywordtype">int</span> rate, <span class="keywordtype">int</span> channels, <span class="keywordtype">int</span> bps);</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<span class="keywordtype">void</span> <a class="code" href="audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad">guac_audio_stream_reset</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio,</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <a class="code" href="structguac__audio__encoder.html">guac_audio_encoder</a>* encoder, <span class="keywordtype">int</span> rate, <span class="keywordtype">int</span> channels, <span class="keywordtype">int</span> bps);</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="keywordtype">void</span> <a class="code" href="audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864">guac_audio_stream_add_user</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio, <a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="keywordtype">void</span> <a class="code" href="audio_8h.html#adcc872292b5ba6c39905610b2bccbf31">guac_audio_stream_free</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* stream);</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="keywordtype">void</span> <a class="code" href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2">guac_audio_stream_write_pcm</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* stream,</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* data, <span class="keywordtype">int</span> length);</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="keywordtype">void</span> <a class="code" href="audio_8h.html#af75feccacea2b14ee946064cf623f143">guac_audio_stream_flush</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* stream);</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;</div><div class="ttc" id="audio-fntypes_8h_html_aa29dc3999c06e82c20d7a5e5d1e1565d"><div class="ttname"><a href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">guac_audio_encoder_end_handler</a></div><div class="ttdeci">void guac_audio_encoder_end_handler(guac_audio_stream *audio)</div><div class="ttdoc">Handler which is called when the audio stream is closed. </div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:54</div></div>
+<div class="ttc" id="structguac__audio__stream_html_a1de1be8874fb844002b92ac1e3813866"><div class="ttname"><a href="structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866">guac_audio_stream::bps</a></div><div class="ttdeci">int bps</div><div class="ttdoc">The number of bits per sample per channel for PCM data. </div><div class="ttdef"><b>Definition:</b> audio.h:104</div></div>
+<div class="ttc" id="structguac__audio__encoder_html_aef4ad4f1c298ac8e11fa69f13347c5a0"><div class="ttname"><a href="structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0">guac_audio_encoder::flush_handler</a></div><div class="ttdeci">guac_audio_encoder_flush_handler * flush_handler</div><div class="ttdoc">Handler which will be called when the audio stream is flushed. </div><div class="ttdef"><b>Definition:</b> audio.h:57</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a8736cc2b634df9c222cf09dcc6507162"><div class="ttname"><a href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">guac_audio_encoder_flush_handler</a></div><div class="ttdeci">void guac_audio_encoder_flush_handler(guac_audio_stream *audio)</div><div class="ttdoc">Handler which is called when the audio stream needs to be flushed. </div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:46</div></div>
+<div class="ttc" id="structguac__audio__stream_html_af3b4811ba5a4f1a337d338777fe9049d"><div class="ttname"><a href="structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d">guac_audio_stream::encoder</a></div><div class="ttdeci">guac_audio_encoder * encoder</div><div class="ttdoc">Arbitrary codec encoder which will receive raw PCM data. </div><div class="ttdef"><b>Definition:</b> audio.h:77</div></div>
+<div class="ttc" id="structguac__audio__encoder_html_a43d161556d3d55031ea486cc8b4ce3f6"><div class="ttname"><a href="structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6">guac_audio_encoder::begin_handler</a></div><div class="ttdeci">guac_audio_encoder_begin_handler * begin_handler</div><div class="ttdoc">Handler which will be called when the audio stream is first created. </div><div class="ttdef"><b>Definition:</b> audio.h:46</div></div>
+<div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams. </div></div>
+<div class="ttc" id="audio_8h_html_a11bdfee60584106ba85d97a3f8273cc2"><div class="ttname"><a href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2">guac_audio_stream_write_pcm</a></div><div class="ttdeci">void guac_audio_stream_write_pcm(guac_audio_stream *stream, const unsigned char *data, int length)</div><div class="ttdoc">Writes PCM data to the given audio stream. </div></div>
+<div class="ttc" id="client-types_8h_html"><div class="ttname"><a href="client-types_8h.html">client-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole client structure, guac_client. </div></div>
+<div class="ttc" id="audio-fntypes_8h_html"><div class="ttname"><a href="audio-fntypes_8h.html">audio-fntypes.h</a></div><div class="ttdoc">Function type definitions related to simple streaming audio. </div></div>
+<div class="ttc" id="structguac__audio__encoder_html_af2d0f6c14a6a30e4f91240865a680e5b"><div class="ttname"><a href="structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b">guac_audio_encoder::join_handler</a></div><div class="ttdeci">guac_audio_encoder_join_handler * join_handler</div><div class="ttdoc">Handler which will be called when a new user joins the Guacamole connection associated with an audio ...</div><div class="ttdef"><b>Definition:</b> audio.h:68</div></div>
+<div class="ttc" id="audio_8h_html_a2b8e2f05a19b137454832a5dbc6c3864"><div class="ttname"><a href="audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864">guac_audio_stream_add_user</a></div><div class="ttdeci">void guac_audio_stream_add_user(guac_audio_stream *audio, guac_user *user)</div><div class="ttdoc">Notifies the given audio stream that a user has joined the connection. </div></div>
+<div class="ttc" id="structguac__audio__stream_html_a1771fa5ff88b8f5d4ca4cd5e77a1ffba"><div class="ttname"><a href="structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba">guac_audio_stream::client</a></div><div class="ttdeci">guac_client * client</div><div class="ttdoc">The client associated with this audio stream. </div><div class="ttdef"><b>Definition:</b> audio.h:82</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a57fe16e56c1c115b2321e50b9d9ce11a"><div class="ttname"><a href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">guac_audio_encoder_write_handler</a></div><div class="ttdeci">void guac_audio_encoder_write_handler(guac_audio_stream *audio, const unsigned char *pcm_data, int length)</div><div class="ttdoc">Handler which is called when PCM data is written to the audio stream. </div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:84</div></div>
+<div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared...</div><div class="ttdef"><b>Definition:</b> user.h:101</div></div>
+<div class="ttc" id="structguac__audio__encoder_html_a1b74c3dd402b0a6afa5f5b9000d02c74"><div class="ttname"><a href="structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74">guac_audio_encoder::write_handler</a></div><div class="ttdeci">guac_audio_encoder_write_handler * write_handler</div><div class="ttdoc">Handler which will be called when PCM data is written to the audio stream for encoding. </div><div class="ttdef"><b>Definition:</b> audio.h:52</div></div>
+<div class="ttc" id="audio_8h_html_af75feccacea2b14ee946064cf623f143"><div class="ttname"><a href="audio_8h.html#af75feccacea2b14ee946064cf623f143">guac_audio_stream_flush</a></div><div class="ttdeci">void guac_audio_stream_flush(guac_audio_stream *stream)</div><div class="ttdoc">Flushes the underlying audio buffer, if any, ensuring that all audio previously written via guac_audi...</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a9d1fac87cc2ee072112d9d65d43ae70e"><div class="ttname"><a href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">guac_audio_encoder_join_handler</a></div><div class="ttdeci">void guac_audio_encoder_join_handler(guac_audio_stream *audio, guac_user *user)</div><div class="ttdoc">Handler which is called when a new user has joined the Guacamole connection associated with the audio...</div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:67</div></div>
+<div class="ttc" id="structguac__audio__stream_html_a4d8f5cfc70ec54b97ba0c4eea596f894"><div class="ttname"><a href="structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894">guac_audio_stream::stream</a></div><div class="ttdeci">guac_stream * stream</div><div class="ttdoc">The actual stream associated with this audio stream. </div><div class="ttdef"><b>Definition:</b> audio.h:87</div></div>
+<div class="ttc" id="audio_8h_html_adcc872292b5ba6c39905610b2bccbf31"><div class="ttname"><a href="audio_8h.html#adcc872292b5ba6c39905610b2bccbf31">guac_audio_stream_free</a></div><div class="ttdeci">void guac_audio_stream_free(guac_audio_stream *stream)</div><div class="ttdoc">Closes and frees the given audio stream. </div></div>
+<div class="ttc" id="structguac__audio__stream_html_a9ca03221b02d1206eb698f8ee936c4b7"><div class="ttname"><a href="structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7">guac_audio_stream::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Encoder-specific state data. </div><div class="ttdef"><b>Definition:</b> audio.h:109</div></div>
+<div class="ttc" id="structguac__client_html"><div class="ttname"><a href="structguac__client.html">guac_client</a></div><div class="ttdoc">Guacamole proxy client. </div><div class="ttdef"><b>Definition:</b> client.h:46</div></div>
+<div class="ttc" id="audio-types_8h_html"><div class="ttname"><a href="audio-types_8h.html">audio-types.h</a></div><div class="ttdoc">Type definitions related to simple streaming audio. </div></div>
+<div class="ttc" id="structguac__audio__encoder_html_a51b8bfeae3709c1859710cbf1039e01b"><div class="ttname"><a href="structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b">guac_audio_encoder::mimetype</a></div><div class="ttdeci">const char * mimetype</div><div class="ttdoc">The mimetype of the audio data encoded by this audio encoder. </div><div class="ttdef"><b>Definition:</b> audio.h:41</div></div>
+<div class="ttc" id="structguac__audio__stream_html"><div class="ttname"><a href="structguac__audio__stream.html">guac_audio_stream</a></div><div class="ttdoc">Basic audio stream. </div><div class="ttdef"><b>Definition:</b> audio.h:72</div></div>
+<div class="ttc" id="audio_8h_html_afc1fc0133504e718edf4756fac5e9c30"><div class="ttname"><a href="audio_8h.html#afc1fc0133504e718edf4756fac5e9c30">guac_audio_stream_alloc</a></div><div class="ttdeci">guac_audio_stream * guac_audio_stream_alloc(guac_client *client, guac_audio_encoder *encoder, int rate, int channels, int bps)</div><div class="ttdoc">Allocates a new audio stream at the client level which encodes audio data using the given encoder...</div></div>
+<div class="ttc" id="audio_8h_html_a0bbd483b1bfe5eede15539a0aacfedad"><div class="ttname"><a href="audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad">guac_audio_stream_reset</a></div><div class="ttdeci">void guac_audio_stream_reset(guac_audio_stream *audio, guac_audio_encoder *encoder, int rate, int channels, int bps)</div><div class="ttdoc">Resets the given audio stream, switching to the given encoder, rate, channels, and bits per sample...</div></div>
+<div class="ttc" id="structguac__audio__stream_html_a6810293a6fa915e497d2dd1a643993d9"><div class="ttname"><a href="structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9">guac_audio_stream::rate</a></div><div class="ttdeci">int rate</div><div class="ttdoc">The number of samples per second of PCM data sent to this stream. </div><div class="ttdef"><b>Definition:</b> audio.h:92</div></div>
+<div class="ttc" id="structguac__audio__encoder_html"><div class="ttname"><a href="structguac__audio__encoder.html">guac_audio_encoder</a></div><div class="ttdoc">Arbitrary audio codec encoder. </div><div class="ttdef"><b>Definition:</b> audio.h:35</div></div>
+<div class="ttc" id="structguac__audio__encoder_html_a6fbc4f8efe14c9a119fdfaaef78f7e92"><div class="ttname"><a href="structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92">guac_audio_encoder::end_handler</a></div><div class="ttdeci">guac_audio_encoder_end_handler * end_handler</div><div class="ttdoc">Handler which will be called when the audio stream is closed. </div><div class="ttdef"><b>Definition:</b> audio.h:62</div></div>
+<div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+<div class="ttc" id="structguac__audio__stream_html_af9d1ad90194e24c2967e2f9f18de0ad6"><div class="ttname"><a href="structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6">guac_audio_stream::channels</a></div><div class="ttdeci">int channels</div><div class="ttdoc">The number of audio channels per sample of PCM data. </div><div class="ttdef"><b>Definition:</b> audio.h:98</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a0b14abed1928c4e00129c7b87e391816"><div class="ttname"><a href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">guac_audio_encoder_begin_handler</a></div><div class="ttdeci">void guac_audio_encoder_begin_handler(guac_audio_stream *audio)</div><div class="ttdoc">Handler which is called when the audio stream is opened. </div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:38</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/bc_s.png b/doc/1.1.0/libguac/bc_s.png
new file mode 100644
index 0000000..224b29a
--- /dev/null
+++ b/doc/1.1.0/libguac/bc_s.png
Binary files differ
diff --git a/doc/1.1.0/libguac/bdwn.png b/doc/1.1.0/libguac/bdwn.png
new file mode 100644
index 0000000..940a0b9
--- /dev/null
+++ b/doc/1.1.0/libguac/bdwn.png
Binary files differ
diff --git a/doc/1.1.0/libguac/classes.html b/doc/1.1.0/libguac/classes.html
new file mode 100644
index 0000000..4324d36
--- /dev/null
+++ b/doc/1.1.0/libguac/classes.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Data Structure Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Data Structure Index</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_l">l</a>&#160;|&#160;<a class="qindex" href="#letter_o">o</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a>&#160;|&#160;<a class="qindex" href="#letter_u">u</a></div>
+<table class="classindex">
+<tr><td rowspan="2" valign="bottom"><a name="letter_a"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;a&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;l&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;p&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structguac__socket__ssl__data.html">guac_socket_ssl_data</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structguac__stream.html">guac_stream</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structguac__layer.html">guac_layer</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structguac__parser.html">guac_parser</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_u"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;u&#160;&#160;</div></td></tr></table>
+</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_o"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;o&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structguac__pool.html">guac_pool</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_c"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;c&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structguac__pool__int.html">guac_pool_int</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structguac__user.html">guac_user</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structguac__object.html">guac_object</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structguac__user__info.html">guac_user_info</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structguac__client.html">guac_client</a>&#160;&#160;&#160;</td><td></td><td></td><td></td></tr>
+<tr><td></td><td></td><td valign="top"><a class="el" href="structguac__socket.html">guac_socket</a>&#160;&#160;&#160;</td><td></td><td></td></tr>
+<tr><td></td><td></td><td></td><td></td><td></td></tr>
+</table>
+<div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_l">l</a>&#160;|&#160;<a class="qindex" href="#letter_o">o</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a>&#160;|&#160;<a class="qindex" href="#letter_u">u</a></div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/client-constants_8h.html b/doc/1.1.0/libguac/client-constants_8h.html
new file mode 100644
index 0000000..b967b2e
--- /dev/null
+++ b/doc/1.1.0/libguac/client-constants_8h.html
@@ -0,0 +1,179 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client-constants.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">client-constants.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Constants related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>.  
+<a href="#details">More...</a></p>
+
+<p><a href="client-constants_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ad9f977643c5ffee5c1eeb426664796a1"><td class="memItemLeft" align="right" valign="top"><a id="ad9f977643c5ffee5c1eeb426664796a1"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#ad9f977643c5ffee5c1eeb426664796a1">GUAC_CLIENT_MAX_STREAMS</a>&#160;&#160;&#160;64</td></tr>
+<tr class="memdesc:ad9f977643c5ffee5c1eeb426664796a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of inbound or outbound streams supported by any one <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. <br /></td></tr>
+<tr class="separator:ad9f977643c5ffee5c1eeb426664796a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6fda25106c4c454c22db2c7e042ee142"><td class="memItemLeft" align="right" valign="top"><a id="a6fda25106c4c454c22db2c7e042ee142"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#a6fda25106c4c454c22db2c7e042ee142">GUAC_CLIENT_CLOSED_STREAM_INDEX</a>&#160;&#160;&#160;-1</td></tr>
+<tr class="memdesc:a6fda25106c4c454c22db2c7e042ee142"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of a closed stream. <br /></td></tr>
+<tr class="separator:a6fda25106c4c454c22db2c7e042ee142"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8e2b48136e5c358e012a1558d5e5f0c2"><td class="memItemLeft" align="right" valign="top"><a id="a8e2b48136e5c358e012a1558d5e5f0c2"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#a8e2b48136e5c358e012a1558d5e5f0c2">GUAC_CLIENT_ID_PREFIX</a>&#160;&#160;&#160;'$'</td></tr>
+<tr class="memdesc:a8e2b48136e5c358e012a1558d5e5f0c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The character prefix which identifies a client ID. <br /></td></tr>
+<tr class="separator:a8e2b48136e5c358e012a1558d5e5f0c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4bb4f5b852ac8c3e2d3c89cd5e63efd2"><td class="memItemLeft" align="right" valign="top"><a id="a4bb4f5b852ac8c3e2d3c89cd5e63efd2"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2">GUAC_CLIENT_MOUSE_LEFT</a>&#160;&#160;&#160;0x01</td></tr>
+<tr class="memdesc:a4bb4f5b852ac8c3e2d3c89cd5e63efd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The flag set in the mouse button mask when the left mouse button is down. <br /></td></tr>
+<tr class="separator:a4bb4f5b852ac8c3e2d3c89cd5e63efd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad14c5f1800aac863bbebcd676c5c2124"><td class="memItemLeft" align="right" valign="top"><a id="ad14c5f1800aac863bbebcd676c5c2124"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124">GUAC_CLIENT_MOUSE_MIDDLE</a>&#160;&#160;&#160;0x02</td></tr>
+<tr class="memdesc:ad14c5f1800aac863bbebcd676c5c2124"><td class="mdescLeft">&#160;</td><td class="mdescRight">The flag set in the mouse button mask when the middle mouse button is down. <br /></td></tr>
+<tr class="separator:ad14c5f1800aac863bbebcd676c5c2124"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88917d2d7143a483c219eee62fd6317f"><td class="memItemLeft" align="right" valign="top"><a id="a88917d2d7143a483c219eee62fd6317f"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f">GUAC_CLIENT_MOUSE_RIGHT</a>&#160;&#160;&#160;0x04</td></tr>
+<tr class="memdesc:a88917d2d7143a483c219eee62fd6317f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The flag set in the mouse button mask when the right mouse button is down. <br /></td></tr>
+<tr class="separator:a88917d2d7143a483c219eee62fd6317f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a134afd8a0d8f10a34af51fc70981e39d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d">GUAC_CLIENT_MOUSE_SCROLL_UP</a>&#160;&#160;&#160;0x08</td></tr>
+<tr class="memdesc:a134afd8a0d8f10a34af51fc70981e39d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The flag set in the mouse button mask when the mouse scrollwheel is scrolled up.  <a href="#a134afd8a0d8f10a34af51fc70981e39d">More...</a><br /></td></tr>
+<tr class="separator:a134afd8a0d8f10a34af51fc70981e39d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a771231574e9d303aa08fc1cecc9069f0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0">GUAC_CLIENT_MOUSE_SCROLL_DOWN</a>&#160;&#160;&#160;0x10</td></tr>
+<tr class="memdesc:a771231574e9d303aa08fc1cecc9069f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">The flag set in the mouse button mask when the mouse scrollwheel is scrolled down.  <a href="#a771231574e9d303aa08fc1cecc9069f0">More...</a><br /></td></tr>
+<tr class="separator:a771231574e9d303aa08fc1cecc9069f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa8a296e1032ff408ab141b0765fb9bfb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#aa8a296e1032ff408ab141b0765fb9bfb">GUAC_BUFFER_POOL_INITIAL_SIZE</a>&#160;&#160;&#160;1024</td></tr>
+<tr class="memdesc:aa8a296e1032ff408ab141b0765fb9bfb"><td class="mdescLeft">&#160;</td><td class="mdescRight">The minimum number of buffers to create before allowing free'd buffers to be reclaimed.  <a href="#aa8a296e1032ff408ab141b0765fb9bfb">More...</a><br /></td></tr>
+<tr class="separator:aa8a296e1032ff408ab141b0765fb9bfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Constants related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. </p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="aa8a296e1032ff408ab141b0765fb9bfb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa8a296e1032ff408ab141b0765fb9bfb">&#9670;&nbsp;</a></span>GUAC_BUFFER_POOL_INITIAL_SIZE</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_BUFFER_POOL_INITIAL_SIZE&#160;&#160;&#160;1024</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The minimum number of buffers to create before allowing free'd buffers to be reclaimed. </p>
+<p>In the case a protocol rapidly creates, uses, and destroys buffers, this can prevent unnecessary reuse of the same buffer (which would make draw operations unnecessarily synchronous). </p>
+
+</div>
+</div>
+<a id="a771231574e9d303aa08fc1cecc9069f0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a771231574e9d303aa08fc1cecc9069f0">&#9670;&nbsp;</a></span>GUAC_CLIENT_MOUSE_SCROLL_DOWN</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_CLIENT_MOUSE_SCROLL_DOWN&#160;&#160;&#160;0x10</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The flag set in the mouse button mask when the mouse scrollwheel is scrolled down. </p>
+<p>Note that mouse scrollwheels are actually sets of two buttons. One button is pressed and released for an upward scroll, and the other is pressed and released for a downward scroll. Some mice may actually implement these as separate buttons, not a wheel. </p>
+
+</div>
+</div>
+<a id="a134afd8a0d8f10a34af51fc70981e39d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a134afd8a0d8f10a34af51fc70981e39d">&#9670;&nbsp;</a></span>GUAC_CLIENT_MOUSE_SCROLL_UP</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_CLIENT_MOUSE_SCROLL_UP&#160;&#160;&#160;0x08</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The flag set in the mouse button mask when the mouse scrollwheel is scrolled up. </p>
+<p>Note that mouse scrollwheels are actually sets of two buttons. One button is pressed and released for an upward scroll, and the other is pressed and released for a downward scroll. Some mice may actually implement these as separate buttons, not a wheel. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/client-constants_8h_source.html b/doc/1.1.0/libguac/client-constants_8h_source.html
new file mode 100644
index 0000000..7b94b5b
--- /dev/null
+++ b/doc/1.1.0/libguac/client-constants_8h_source.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client-constants.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">client-constants.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="client-constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_CLIENT_CONSTANTS_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_CLIENT_CONSTANTS_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="client-constants_8h.html#ad9f977643c5ffee5c1eeb426664796a1">   33</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_MAX_STREAMS 64</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="client-constants_8h.html#a6fda25106c4c454c22db2c7e042ee142">   38</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_CLOSED_STREAM_INDEX -1</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="client-constants_8h.html#a8e2b48136e5c358e012a1558d5e5f0c2">   43</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_ID_PREFIX &#39;$&#39;</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2">   48</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_MOUSE_LEFT 0x01</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124">   53</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_MOUSE_MIDDLE 0x02</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f">   58</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_MOUSE_RIGHT 0x04</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d">   67</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_MOUSE_SCROLL_UP 0x08</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0">   76</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_MOUSE_SCROLL_DOWN 0x10</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="client-constants_8h.html#aa8a296e1032ff408ab141b0765fb9bfb">   84</a></span>&#160;<span class="preprocessor">#define GUAC_BUFFER_POOL_INITIAL_SIZE 1024</span></div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/client-fntypes_8h.html b/doc/1.1.0/libguac/client-fntypes_8h.html
new file mode 100644
index 0000000..bf6aa8e
--- /dev/null
+++ b/doc/1.1.0/libguac/client-fntypes_8h.html
@@ -0,0 +1,176 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client-fntypes.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">client-fntypes.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Function type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>.  
+<a href="#details">More...</a></p>
+
+<p><a href="client-fntypes_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a7f8c6986f3db9818d016eee6fa562577"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a>(<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a7f8c6986f3db9818d016eee6fa562577"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for freeing up any extra data allocated by the client implementation.  <a href="#a7f8c6986f3db9818d016eee6fa562577">More...</a><br /></td></tr>
+<tr class="separator:a7f8c6986f3db9818d016eee6fa562577"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a23837e22dbfe152719d596e6918bad3c"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a>(<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, const char *format, va_list args)</td></tr>
+<tr class="memdesc:a23837e22dbfe152719d596e6918bad3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for logging messages related to a given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> instance.  <a href="#a23837e22dbfe152719d596e6918bad3c">More...</a><br /></td></tr>
+<tr class="separator:a23837e22dbfe152719d596e6918bad3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a905b087a47315e1836293839daf1f46c"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c">guac_client_init_handler</a>(<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a905b087a47315e1836293839daf1f46c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The entry point of a client plugin which must initialize the given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>.  <a href="#a905b087a47315e1836293839daf1f46c">More...</a><br /></td></tr>
+<tr class="separator:a905b087a47315e1836293839daf1f46c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Function type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. </p>
+</div><h2 class="groupheader">Typedef Documentation</h2>
+<a id="a7f8c6986f3db9818d016eee6fa562577"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7f8c6986f3db9818d016eee6fa562577">&#9670;&nbsp;</a></span>guac_client_free_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_client_free_handler(<a class="el" href="structguac__client.html">guac_client</a> *client)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for freeing up any extra data allocated by the client implementation. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client whose extra data should be freed (if any).</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the data was successfully freed, non-zero if an error prevents the data from being freed. </dd></dl>
+
+</div>
+</div>
+<a id="a905b087a47315e1836293839daf1f46c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a905b087a47315e1836293839daf1f46c">&#9670;&nbsp;</a></span>guac_client_init_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_client_init_handler(<a class="el" href="structguac__client.html">guac_client</a> *client)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The entry point of a client plugin which must initialize the given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. </p>
+<p>In practice, this function will be called "guac_client_init".</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> that must be initialized.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero if initialization fails for any reason. </dd></dl>
+
+</div>
+</div>
+<a id="a23837e22dbfe152719d596e6918bad3c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a23837e22dbfe152719d596e6918bad3c">&#9670;&nbsp;</a></span>guac_client_log_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_client_log_handler(<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, const char *format, va_list args)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for logging messages related to a given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client related to the message being logged.</td></tr>
+    <tr><td class="paramname">level</td><td>The log level at which to log the given message.</td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string, defining the message to be logged.</td></tr>
+    <tr><td class="paramname">args</td><td>The va_list containing the arguments to be used when filling the conversion specifiers ("%s", "%i", etc.) within the format string. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/client-fntypes_8h_source.html b/doc/1.1.0/libguac/client-fntypes_8h_source.html
new file mode 100644
index 0000000..7bd3943
--- /dev/null
+++ b/doc/1.1.0/libguac/client-fntypes_8h_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client-fntypes.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">client-fntypes.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="client-fntypes_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_CLIENT_FNTYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_CLIENT_FNTYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-types_8h.html">client-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="object-types_8h.html">object-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="protocol-types_8h.html">protocol-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-types_8h.html">user-types.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">   49</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">   67</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a>(<a class="code" href="structguac__client.html">guac_client</a>* client,</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list args);</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c">   80</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c">guac_client_init_handler</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams. </div></div>
+<div class="ttc" id="object-types_8h_html"><div class="ttname"><a href="object-types_8h.html">object-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol objects. </div></div>
+<div class="ttc" id="client-types_8h_html"><div class="ttname"><a href="client-types_8h.html">client-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole client structure, guac_client. </div></div>
+<div class="ttc" id="client-fntypes_8h_html_a7f8c6986f3db9818d016eee6fa562577"><div class="ttname"><a href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a></div><div class="ttdeci">int guac_client_free_handler(guac_client *client)</div><div class="ttdoc">Handler for freeing up any extra data allocated by the client implementation. </div><div class="ttdef"><b>Definition:</b> client-fntypes.h:49</div></div>
+<div class="ttc" id="protocol-types_8h_html"><div class="ttname"><a href="protocol-types_8h.html">protocol-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole protocol. </div></div>
+<div class="ttc" id="structguac__client_html"><div class="ttname"><a href="structguac__client.html">guac_client</a></div><div class="ttdoc">Guacamole proxy client. </div><div class="ttdef"><b>Definition:</b> client.h:46</div></div>
+<div class="ttc" id="client-fntypes_8h_html_a905b087a47315e1836293839daf1f46c"><div class="ttname"><a href="client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c">guac_client_init_handler</a></div><div class="ttdeci">int guac_client_init_handler(guac_client *client)</div><div class="ttdoc">The entry point of a client plugin which must initialize the given guac_client. </div><div class="ttdef"><b>Definition:</b> client-fntypes.h:80</div></div>
+<div class="ttc" id="client-fntypes_8h_html_a23837e22dbfe152719d596e6918bad3c"><div class="ttname"><a href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a></div><div class="ttdeci">void guac_client_log_handler(guac_client *client, guac_client_log_level level, const char *format, va_list args)</div><div class="ttdoc">Handler for logging messages related to a given guac_client instance. </div><div class="ttdef"><b>Definition:</b> client-fntypes.h:67</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a></div><div class="ttdeci">guac_client_log_level</div><div class="ttdoc">All supported log levels used by the logging subsystem of each Guacamole client. </div><div class="ttdef"><b>Definition:</b> client-types.h:62</div></div>
+<div class="ttc" id="user-types_8h_html"><div class="ttname"><a href="user-types_8h.html">user-types.h</a></div><div class="ttdoc">Type definitions related to the guac_user object. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/client-types_8h.html b/doc/1.1.0/libguac/client-types_8h.html
new file mode 100644
index 0000000..842228f
--- /dev/null
+++ b/doc/1.1.0/libguac/client-types_8h.html
@@ -0,0 +1,164 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<div class="title">client-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>.  
+<a href="#details">More...</a></p>
+
+<p><a href="client-types_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a6f7e91d6dcb20598953948f077910c3b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a> { <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0">GUAC_CLIENT_RUNNING</a>, 
+<a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd">GUAC_CLIENT_STOPPING</a>
+ }</td></tr>
+<tr class="memdesc:a6f7e91d6dcb20598953948f077910c3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Possible current states of the Guacamole client.  <a href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">More...</a><br /></td></tr>
+<tr class="separator:a6f7e91d6dcb20598953948f077910c3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adfeeb4ff06541220c91ce3401d840727"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> { <br />
+&#160;&#160;<a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c">GUAC_LOG_ERROR</a> = 3, 
+<a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be">GUAC_LOG_WARNING</a> = 4, 
+<a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29">GUAC_LOG_INFO</a> = 6, 
+<a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b">GUAC_LOG_DEBUG</a> = 7, 
+<br />
+&#160;&#160;<a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb">GUAC_LOG_TRACE</a> = 8
+<br />
+ }</td></tr>
+<tr class="memdesc:adfeeb4ff06541220c91ce3401d840727"><td class="mdescLeft">&#160;</td><td class="mdescRight">All supported log levels used by the logging subsystem of each Guacamole client.  <a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">More...</a><br /></td></tr>
+<tr class="separator:adfeeb4ff06541220c91ce3401d840727"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. </p>
+</div><h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="adfeeb4ff06541220c91ce3401d840727"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adfeeb4ff06541220c91ce3401d840727">&#9670;&nbsp;</a></span>guac_client_log_level</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>All supported log levels used by the logging subsystem of each Guacamole client. </p>
+<p>With the exception of GUAC_LOG_TRACE, these log levels correspond to a subset of the log levels defined by RFC 5424. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c"></a>GUAC_LOG_ERROR&#160;</td><td class="fielddoc"><p>Fatal errors. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be"></a>GUAC_LOG_WARNING&#160;</td><td class="fielddoc"><p>Non-fatal conditions that indicate problems. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29"></a>GUAC_LOG_INFO&#160;</td><td class="fielddoc"><p>Informational messages of general interest to users or administrators. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b"></a>GUAC_LOG_DEBUG&#160;</td><td class="fielddoc"><p>Informational messages which can be useful for debugging, but are otherwise not useful to users or administrators. </p>
+<p>It is expected that debug level messages, while verbose, will not negatively affect performance. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb"></a>GUAC_LOG_TRACE&#160;</td><td class="fielddoc"><p>Informational messages which can be useful for debugging, like GUAC_LOG_DEBUG, but which are so low-level that they may affect performance. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a id="a6f7e91d6dcb20598953948f077910c3b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6f7e91d6dcb20598953948f077910c3b">&#9670;&nbsp;</a></span>guac_client_state</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Possible current states of the Guacamole client. </p>
+<p>Currently, the only two states are GUAC_CLIENT_RUNNING and GUAC_CLIENT_STOPPING. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0"></a>GUAC_CLIENT_RUNNING&#160;</td><td class="fielddoc"><p>The state of the client from when it has been allocated by the main daemon until it is killed or disconnected. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd"></a>GUAC_CLIENT_STOPPING&#160;</td><td class="fielddoc"><p>The state of the client when a stop has been requested, signalling the I/O threads to shutdown. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/client-types_8h_source.html b/doc/1.1.0/libguac/client-types_8h_source.html
new file mode 100644
index 0000000..e69093f
--- /dev/null
+++ b/doc/1.1.0/libguac/client-types_8h_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">client-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="client-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_CLIENT_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_CLIENT_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__client.html">guac_client</a> <a class="code" href="structguac__client.html">guac_client</a>;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">   41</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a> {</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0">   47</a></span>&#160;    <a class="code" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0">GUAC_CLIENT_RUNNING</a>,</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd">   53</a></span>&#160;    <a class="code" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd">GUAC_CLIENT_STOPPING</a></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;} <a class="code" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a>;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">   62</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> {</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c">   67</a></span>&#160;    <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c">GUAC_LOG_ERROR</a> = 3,</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be">   72</a></span>&#160;    <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be">GUAC_LOG_WARNING</a> = 4,</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29">   77</a></span>&#160;    <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29">GUAC_LOG_INFO</a> = 6,</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b">   85</a></span>&#160;    <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b">GUAC_LOG_DEBUG</a> = 7,</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb">   92</a></span>&#160;    <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb">GUAC_LOG_TRACE</a> = 8</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;} <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a>;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be">GUAC_LOG_WARNING</a></div><div class="ttdoc">Non-fatal conditions that indicate problems. </div><div class="ttdef"><b>Definition:</b> client-types.h:72</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb">GUAC_LOG_TRACE</a></div><div class="ttdoc">Informational messages which can be useful for debugging, like GUAC_LOG_DEBUG, but which are so low-l...</div><div class="ttdef"><b>Definition:</b> client-types.h:92</div></div>
+<div class="ttc" id="client-types_8h_html_a6f7e91d6dcb20598953948f077910c3b"><div class="ttname"><a href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a></div><div class="ttdeci">guac_client_state</div><div class="ttdoc">Possible current states of the Guacamole client. </div><div class="ttdef"><b>Definition:</b> client-types.h:41</div></div>
+<div class="ttc" id="client-types_8h_html_a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0"><div class="ttname"><a href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0">GUAC_CLIENT_RUNNING</a></div><div class="ttdoc">The state of the client from when it has been allocated by the main daemon until it is killed or disc...</div><div class="ttdef"><b>Definition:</b> client-types.h:47</div></div>
+<div class="ttc" id="client-types_8h_html_a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd"><div class="ttname"><a href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd">GUAC_CLIENT_STOPPING</a></div><div class="ttdoc">The state of the client when a stop has been requested, signalling the I/O threads to shutdown...</div><div class="ttdef"><b>Definition:</b> client-types.h:53</div></div>
+<div class="ttc" id="structguac__client_html"><div class="ttname"><a href="structguac__client.html">guac_client</a></div><div class="ttdoc">Guacamole proxy client. </div><div class="ttdef"><b>Definition:</b> client.h:46</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29">GUAC_LOG_INFO</a></div><div class="ttdoc">Informational messages of general interest to users or administrators. </div><div class="ttdef"><b>Definition:</b> client-types.h:77</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c">GUAC_LOG_ERROR</a></div><div class="ttdoc">Fatal errors. </div><div class="ttdef"><b>Definition:</b> client-types.h:67</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b">GUAC_LOG_DEBUG</a></div><div class="ttdoc">Informational messages which can be useful for debugging, but are otherwise not useful to users or ad...</div><div class="ttdef"><b>Definition:</b> client-types.h:85</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a></div><div class="ttdeci">guac_client_log_level</div><div class="ttdoc">All supported log levels used by the logging subsystem of each Guacamole client. </div><div class="ttdef"><b>Definition:</b> client-types.h:62</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/client_8h.html b/doc/1.1.0/libguac/client_8h.html
new file mode 100644
index 0000000..4fc3fa7
--- /dev/null
+++ b/doc/1.1.0/libguac/client_8h.html
@@ -0,0 +1,1326 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">client.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Functions and structure contents for the Guacamole proxy client.  
+<a href="#details">More...</a></p>
+
+<p><a href="client_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html">guac_client</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Guacamole proxy client.  <a href="structguac__client.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a33bad42d21ccb561aa71c4f04ae9b22a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a">guac_client_alloc</a> ()</td></tr>
+<tr class="memdesc:a33bad42d21ccb561aa71c4f04ae9b22a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a new, barebones <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>.  <a href="#a33bad42d21ccb561aa71c4f04ae9b22a">More...</a><br /></td></tr>
+<tr class="separator:a33bad42d21ccb561aa71c4f04ae9b22a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a76cdc454a23fdcbb70d56f923f6b6427"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427">guac_client_free</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a76cdc454a23fdcbb70d56f923f6b6427"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free all resources associated with the given client.  <a href="#a76cdc454a23fdcbb70d56f923f6b6427">More...</a><br /></td></tr>
+<tr class="separator:a76cdc454a23fdcbb70d56f923f6b6427"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad53666bbe29346497cabb04fc9628208"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#ad53666bbe29346497cabb04fc9628208">guac_client_log</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, const char *format,...)</td></tr>
+<tr class="memdesc:ad53666bbe29346497cabb04fc9628208"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a message in the log used by the given client.  <a href="#ad53666bbe29346497cabb04fc9628208">More...</a><br /></td></tr>
+<tr class="separator:ad53666bbe29346497cabb04fc9628208"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a37a0fa9cfc4c02236085e3852972f494"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a37a0fa9cfc4c02236085e3852972f494">vguac_client_log</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, const char *format, va_list ap)</td></tr>
+<tr class="memdesc:a37a0fa9cfc4c02236085e3852972f494"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a message in the log used by the given client.  <a href="#a37a0fa9cfc4c02236085e3852972f494">More...</a><br /></td></tr>
+<tr class="separator:a37a0fa9cfc4c02236085e3852972f494"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a022d4b5587c84f2963b176ab7999aa1b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a022d4b5587c84f2963b176ab7999aa1b">guac_client_stop</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a022d4b5587c84f2963b176ab7999aa1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals the given client to stop gracefully.  <a href="#a022d4b5587c84f2963b176ab7999aa1b">More...</a><br /></td></tr>
+<tr class="separator:a022d4b5587c84f2963b176ab7999aa1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a62a29f7820deaff00a10ec79aa81aed4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a62a29f7820deaff00a10ec79aa81aed4">guac_client_abort</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status, const char *format,...)</td></tr>
+<tr class="memdesc:a62a29f7820deaff00a10ec79aa81aed4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals the given client to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred.  <a href="#a62a29f7820deaff00a10ec79aa81aed4">More...</a><br /></td></tr>
+<tr class="separator:a62a29f7820deaff00a10ec79aa81aed4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c0eccd7d0ed3dbf3e7941ce297e0224"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224">vguac_client_abort</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status, const char *format, va_list ap)</td></tr>
+<tr class="memdesc:a4c0eccd7d0ed3dbf3e7941ce297e0224"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals the given client to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred.  <a href="#a4c0eccd7d0ed3dbf3e7941ce297e0224">More...</a><br /></td></tr>
+<tr class="separator:a4c0eccd7d0ed3dbf3e7941ce297e0224"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af661d3fedd9683631bdc7d1e3205e379"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#af661d3fedd9683631bdc7d1e3205e379">guac_client_alloc_buffer</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:af661d3fedd9683631bdc7d1e3205e379"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new buffer (invisible layer).  <a href="#af661d3fedd9683631bdc7d1e3205e379">More...</a><br /></td></tr>
+<tr class="separator:af661d3fedd9683631bdc7d1e3205e379"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2085758db585bb9d09d3860ec0fc9587"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a2085758db585bb9d09d3860ec0fc9587">guac_client_alloc_layer</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a2085758db585bb9d09d3860ec0fc9587"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new layer.  <a href="#a2085758db585bb9d09d3860ec0fc9587">More...</a><br /></td></tr>
+<tr class="separator:a2085758db585bb9d09d3860ec0fc9587"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc03a32b3113d9a95700cac54f1cbd4b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b">guac_client_free_buffer</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:afc03a32b3113d9a95700cac54f1cbd4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the given buffer to the pool of available buffers, such that it can be reused by any subsequent call to guac_client_allow_buffer().  <a href="#afc03a32b3113d9a95700cac54f1cbd4b">More...</a><br /></td></tr>
+<tr class="separator:afc03a32b3113d9a95700cac54f1cbd4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4e5b374211012d1897792335112dcb89"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a4e5b374211012d1897792335112dcb89">guac_client_free_layer</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:a4e5b374211012d1897792335112dcb89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the given layer to the pool of available layers, such that it can be reused by any subsequent call to guac_client_allow_layer().  <a href="#a4e5b374211012d1897792335112dcb89">More...</a><br /></td></tr>
+<tr class="separator:a4e5b374211012d1897792335112dcb89"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1bea3499e21736b4ea0fb949d3bc8ab9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9">guac_client_alloc_stream</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a1bea3499e21736b4ea0fb949d3bc8ab9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new stream.  <a href="#a1bea3499e21736b4ea0fb949d3bc8ab9">More...</a><br /></td></tr>
+<tr class="separator:a1bea3499e21736b4ea0fb949d3bc8ab9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af0103a5aae8ba76badd2e68e827f6782"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#af0103a5aae8ba76badd2e68e827f6782">guac_client_free_stream</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__stream.html">guac_stream</a> *stream)</td></tr>
+<tr class="memdesc:af0103a5aae8ba76badd2e68e827f6782"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the given stream to the pool of available streams, such that it can be reused by any subsequent call to <a class="el" href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9" title="Allocates a new stream. ">guac_client_alloc_stream()</a>.  <a href="#af0103a5aae8ba76badd2e68e827f6782">More...</a><br /></td></tr>
+<tr class="separator:af0103a5aae8ba76badd2e68e827f6782"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af66d105dfd1453ec46b423e6b25fa371"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#af66d105dfd1453ec46b423e6b25fa371">guac_client_add_user</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__user.html">guac_user</a> *user, int argc, char **argv)</td></tr>
+<tr class="memdesc:af66d105dfd1453ec46b423e6b25fa371"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds the given user to the internal list of connected users.  <a href="#af66d105dfd1453ec46b423e6b25fa371">More...</a><br /></td></tr>
+<tr class="separator:af66d105dfd1453ec46b423e6b25fa371"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02832d5be5330dc3de524b497b7c6dfa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a02832d5be5330dc3de524b497b7c6dfa">guac_client_remove_user</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a02832d5be5330dc3de524b497b7c6dfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the given user, removing the user from the internally-tracked list of connected users, and calling any appropriate leave handler.  <a href="#a02832d5be5330dc3de524b497b7c6dfa">More...</a><br /></td></tr>
+<tr class="separator:a02832d5be5330dc3de524b497b7c6dfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af652f3db0f89d488cef6d90f612a2077"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077">guac_client_foreach_user</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a> *callback, void *data)</td></tr>
+<tr class="memdesc:af652f3db0f89d488cef6d90f612a2077"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls the given function on all currently-connected users of the given client.  <a href="#af652f3db0f89d488cef6d90f612a2077">More...</a><br /></td></tr>
+<tr class="separator:af652f3db0f89d488cef6d90f612a2077"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3f4ed85d98b16376e2cdc031ff1b44a"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a">guac_client_for_owner</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a> *callback, void *data)</td></tr>
+<tr class="memdesc:af3f4ed85d98b16376e2cdc031ff1b44a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls the given function with the currently-connected user that is marked as the owner.  <a href="#af3f4ed85d98b16376e2cdc031ff1b44a">More...</a><br /></td></tr>
+<tr class="separator:af3f4ed85d98b16376e2cdc031ff1b44a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7fbba296d1ec3e78dc4b79884f590a03"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03">guac_client_for_user</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a> *callback, void *data)</td></tr>
+<tr class="memdesc:a7fbba296d1ec3e78dc4b79884f590a03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls the given function with the given user ONLY if they are currently connected.  <a href="#a7fbba296d1ec3e78dc4b79884f590a03">More...</a><br /></td></tr>
+<tr class="separator:a7fbba296d1ec3e78dc4b79884f590a03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a686fc65f5b1afcc3f3b53e36cd1a2ebc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc">guac_client_end_frame</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a686fc65f5b1afcc3f3b53e36cd1a2ebc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Marks the end of the current frame by sending a "sync" instruction to all connected users.  <a href="#a686fc65f5b1afcc3f3b53e36cd1a2ebc">More...</a><br /></td></tr>
+<tr class="separator:a686fc65f5b1afcc3f3b53e36cd1a2ebc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa2b90d686c56cf753c36718ec085f35"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#afa2b90d686c56cf753c36718ec085f35">guac_client_load_plugin</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, const char *protocol)</td></tr>
+<tr class="memdesc:afa2b90d686c56cf753c36718ec085f35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> using the initialization routine provided by the plugin corresponding to the named protocol.  <a href="#afa2b90d686c56cf753c36718ec085f35">More...</a><br /></td></tr>
+<tr class="separator:afa2b90d686c56cf753c36718ec085f35"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa2b94b3145fcebf2d7b1999df11d0b2c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c">guac_client_get_processing_lag</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:aa2b94b3145fcebf2d7b1999df11d0b2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates and returns the approximate processing lag experienced by the pool of users.  <a href="#aa2b94b3145fcebf2d7b1999df11d0b2c">More...</a><br /></td></tr>
+<tr class="separator:aa2b94b3145fcebf2d7b1999df11d0b2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c9d8717d4b8eaa50dbd7301af27a06f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f">guac_client_stream_argv</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *mimetype, const char *name, const char *value)</td></tr>
+<tr class="memdesc:a6c9d8717d4b8eaa50dbd7301af27a06f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the given connection parameter value over an argument value stream ("argv" instruction), exposing the current value of the named connection parameter to all users of the given client.  <a href="#a6c9d8717d4b8eaa50dbd7301af27a06f">More...</a><br /></td></tr>
+<tr class="separator:a6c9d8717d4b8eaa50dbd7301af27a06f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a317b9d79afd0b0b473d7d359e0c33750"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a317b9d79afd0b0b473d7d359e0c33750">guac_client_stream_png</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, cairo_surface_t *surface)</td></tr>
+<tr class="memdesc:a317b9d79afd0b0b473d7d359e0c33750"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the image data of the given surface over an image stream ("img" instruction) as PNG-encoded data.  <a href="#a317b9d79afd0b0b473d7d359e0c33750">More...</a><br /></td></tr>
+<tr class="separator:a317b9d79afd0b0b473d7d359e0c33750"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa51ede155ad7777bc8d2e82aa6e779bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf">guac_client_stream_jpeg</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, cairo_surface_t *surface, int quality)</td></tr>
+<tr class="memdesc:aa51ede155ad7777bc8d2e82aa6e779bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the image data of the given surface over an image stream ("img" instruction) as JPEG-encoded data at the given quality.  <a href="#aa51ede155ad7777bc8d2e82aa6e779bf">More...</a><br /></td></tr>
+<tr class="separator:aa51ede155ad7777bc8d2e82aa6e779bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55adbd5ee8f27c4df4394dbb5bf9416e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e">guac_client_stream_webp</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, cairo_surface_t *surface, int quality, int lossless)</td></tr>
+<tr class="memdesc:a55adbd5ee8f27c4df4394dbb5bf9416e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the image data of the given surface over an image stream ("img" instruction) as WebP-encoded data at the given quality.  <a href="#a55adbd5ee8f27c4df4394dbb5bf9416e">More...</a><br /></td></tr>
+<tr class="separator:a55adbd5ee8f27c4df4394dbb5bf9416e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79cc74558e8f64807ea2847fbacd20e3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3">guac_client_supports_webp</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a79cc74558e8f64807ea2847fbacd20e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether all users of the given client support WebP.  <a href="#a79cc74558e8f64807ea2847fbacd20e3">More...</a><br /></td></tr>
+<tr class="separator:a79cc74558e8f64807ea2847fbacd20e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a336a485c006394d5eea88bf6d8d422d8"><td class="memItemLeft" align="right" valign="top"><a id="a336a485c006394d5eea88bf6d8d422d8"></a>
+const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a336a485c006394d5eea88bf6d8d422d8">GUAC_DEFAULT_LAYER</a></td></tr>
+<tr class="memdesc:a336a485c006394d5eea88bf6d8d422d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">The default Guacamole client layer, layer 0. <br /></td></tr>
+<tr class="separator:a336a485c006394d5eea88bf6d8d422d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Functions and structure contents for the Guacamole proxy client. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a62a29f7820deaff00a10ec79aa81aed4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a62a29f7820deaff00a10ec79aa81aed4">&#9670;&nbsp;</a></span>guac_client_abort()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_abort </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>&#160;</td>
+          <td class="paramname"><em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Signals the given client to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred. </p>
+<p>Note that this is a completely cooperative signal, and can be ignored by the client or the hosting daemon. The message given will be logged to the system logs.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to signal to stop. </td></tr>
+    <tr><td class="paramname">status</td><td>The status to send over the Guacamole protocol. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">...</td><td>Arguments to use when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="af66d105dfd1453ec46b423e6b25fa371"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af66d105dfd1453ec46b423e6b25fa371">&#9670;&nbsp;</a></span>guac_client_add_user()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_client_add_user </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>argc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char **&#160;</td>
+          <td class="paramname"><em>argv</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Adds the given user to the internal list of connected users. </p>
+<p>Future writes to the broadcast socket stored within <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> will also write to this user. The join handler of this <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> will be called.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to add the user to. </td></tr>
+    <tr><td class="paramname">user</td><td>The user to add. </td></tr>
+    <tr><td class="paramname">argc</td><td>The number of arguments to pass to the new user. </td></tr>
+    <tr><td class="paramname">argv</td><td>An array of strings containing the argument values being passed. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the user was added successfully, non-zero if the user could not join the connection. </dd></dl>
+
+</div>
+</div>
+<a id="a33bad42d21ccb561aa71c4f04ae9b22a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a33bad42d21ccb561aa71c4f04ae9b22a">&#9670;&nbsp;</a></span>guac_client_alloc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__client.html">guac_client</a>* guac_client_alloc </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns a new, barebones <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. </p>
+<p>This new <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> has no handlers set, but is otherwise usable.</p>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to the new client. </dd></dl>
+
+</div>
+</div>
+<a id="af661d3fedd9683631bdc7d1e3205e379"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af661d3fedd9683631bdc7d1e3205e379">&#9670;&nbsp;</a></span>guac_client_alloc_buffer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__layer.html">guac_layer</a>* guac_client_alloc_buffer </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new buffer (invisible layer). </p>
+<p>An arbitrary index is automatically assigned if no existing buffer is available for use.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to allocate the buffer for. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The next available buffer, or a newly allocated buffer. </dd></dl>
+
+</div>
+</div>
+<a id="a2085758db585bb9d09d3860ec0fc9587"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2085758db585bb9d09d3860ec0fc9587">&#9670;&nbsp;</a></span>guac_client_alloc_layer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__layer.html">guac_layer</a>* guac_client_alloc_layer </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new layer. </p>
+<p>An arbitrary index is automatically assigned if no existing layer is available for use.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to allocate the layer buffer for. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The next available layer, or a newly allocated layer. </dd></dl>
+
+</div>
+</div>
+<a id="a1bea3499e21736b4ea0fb949d3bc8ab9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1bea3499e21736b4ea0fb949d3bc8ab9">&#9670;&nbsp;</a></span>guac_client_alloc_stream()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__stream.html">guac_stream</a>* guac_client_alloc_stream </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new stream. </p>
+<p>An arbitrary index is automatically assigned if no previously-allocated stream is available for use.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client to allocate the stream for.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The next available stream, or a newly allocated stream, or NULL if the maximum number of active streams has been reached. </dd></dl>
+
+</div>
+</div>
+<a id="a686fc65f5b1afcc3f3b53e36cd1a2ebc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a686fc65f5b1afcc3f3b53e36cd1a2ebc">&#9670;&nbsp;</a></span>guac_client_end_frame()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_client_end_frame </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Marks the end of the current frame by sending a "sync" instruction to all connected users. </p>
+<p>This instruction will contain the current timestamp. The last_sent_timestamp member of <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> will be updated accordingly.</p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> which has finished a frame. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="af3f4ed85d98b16376e2cdc031ff1b44a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af3f4ed85d98b16376e2cdc031ff1b44a">&#9670;&nbsp;</a></span>guac_client_for_owner()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* guac_client_for_owner </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a> *&#160;</td>
+          <td class="paramname"><em>callback</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>data</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Calls the given function with the currently-connected user that is marked as the owner. </p>
+<p>The owner of a connection is the user that established the initial connection that created the connection (the first user to connect and join). The function will be given a reference to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> and the specified arbitrary data. If the owner has since left the connection, the function will instead be invoked with NULL as the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a>. The value returned by the callback will be returned by this function.</p>
+<p>This function is reentrant, but the user list MUST NOT be manipulated within the same thread as a callback to this function.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client to retrieve the owner from.</td></tr>
+    <tr><td class="paramname">callback</td><td>The callback to invoke on the user marked as the owner of the connection. NULL will be passed to this callback instead if there is no owner.</td></tr>
+    <tr><td class="paramname">data</td><td>Arbitrary data to pass to the given callback.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The value returned by the callback. </dd></dl>
+
+</div>
+</div>
+<a id="a7fbba296d1ec3e78dc4b79884f590a03"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7fbba296d1ec3e78dc4b79884f590a03">&#9670;&nbsp;</a></span>guac_client_for_user()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* guac_client_for_user </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a> *&#160;</td>
+          <td class="paramname"><em>callback</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>data</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Calls the given function with the given user ONLY if they are currently connected. </p>
+<p>The function will be given a reference to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> and the specified arbitrary data. If the provided user doesn't exist or has since left the connection, the function will instead be invoked with NULL as the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a>. The value returned by the callback will be returned by this function.</p>
+<p>This function is reentrant, but the user list MUST NOT be manipulated within the same thread as a callback to this function.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client that the given user is expected to be associated with.</td></tr>
+    <tr><td class="paramname">user</td><td>The user to provide to the given callback if valid. The pointer need not even point to properly allocated memory; the user will only be passed to the callback function if they are valid, and the provided user pointer will not be dereferenced during this process.</td></tr>
+    <tr><td class="paramname">callback</td><td>The callback to invoke on the given user if they are valid. NULL will be passed to this callback instead if the user is not valid.</td></tr>
+    <tr><td class="paramname">data</td><td>Arbitrary data to pass to the given callback.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The value returned by the callback. </dd></dl>
+
+</div>
+</div>
+<a id="af652f3db0f89d488cef6d90f612a2077"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af652f3db0f89d488cef6d90f612a2077">&#9670;&nbsp;</a></span>guac_client_foreach_user()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_foreach_user </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a> *&#160;</td>
+          <td class="paramname"><em>callback</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>data</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Calls the given function on all currently-connected users of the given client. </p>
+<p>The function will be given a reference to a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> and the specified arbitrary data. The value returned by the callback will be ignored.</p>
+<p>This function is reentrant, but the user list MUST NOT be manipulated within the same thread as a callback to this function. Though the callback MAY invoke <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client. ">guac_client_foreach_user()</a>, doing so should not be necessary, and may indicate poor design choices.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client whose users should be iterated.</td></tr>
+    <tr><td class="paramname">callback</td><td>The function to call for each user.</td></tr>
+    <tr><td class="paramname">data</td><td>Arbitrary data to pass to the callback each time it is invoked. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a76cdc454a23fdcbb70d56f923f6b6427"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a76cdc454a23fdcbb70d56f923f6b6427">&#9670;&nbsp;</a></span>guac_client_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free all resources associated with the given client. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to free all reasources of. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="afc03a32b3113d9a95700cac54f1cbd4b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afc03a32b3113d9a95700cac54f1cbd4b">&#9670;&nbsp;</a></span>guac_client_free_buffer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_free_buffer </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the given buffer to the pool of available buffers, such that it can be reused by any subsequent call to guac_client_allow_buffer(). </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to return the buffer to. </td></tr>
+    <tr><td class="paramname">layer</td><td>The buffer to return to the pool of available buffers. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a4e5b374211012d1897792335112dcb89"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4e5b374211012d1897792335112dcb89">&#9670;&nbsp;</a></span>guac_client_free_layer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_free_layer </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the given layer to the pool of available layers, such that it can be reused by any subsequent call to guac_client_allow_layer(). </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to return the layer to. </td></tr>
+    <tr><td class="paramname">layer</td><td>The buffer to return to the pool of available layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="af0103a5aae8ba76badd2e68e827f6782"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af0103a5aae8ba76badd2e68e827f6782">&#9670;&nbsp;</a></span>guac_client_free_stream()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_free_stream </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the given stream to the pool of available streams, such that it can be reused by any subsequent call to <a class="el" href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9" title="Allocates a new stream. ">guac_client_alloc_stream()</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client to return the stream to.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to return to the pool of available stream. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="aa2b94b3145fcebf2d7b1999df11d0b2c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa2b94b3145fcebf2d7b1999df11d0b2c">&#9670;&nbsp;</a></span>guac_client_get_processing_lag()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_client_get_processing_lag </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Calculates and returns the approximate processing lag experienced by the pool of users. </p>
+<p>The processing lag is the difference in time between server and client due purely to data processing and excluding network delays.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> to calculate the processing lag of.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The approximate processing lag of the pool of users associated with the given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>, in milliseconds. </dd></dl>
+
+</div>
+</div>
+<a id="afa2b90d686c56cf753c36718ec085f35"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afa2b90d686c56cf753c36718ec085f35">&#9670;&nbsp;</a></span>guac_client_load_plugin()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_client_load_plugin </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>protocol</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initializes the given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> using the initialization routine provided by the plugin corresponding to the named protocol. </p>
+<p>This will automatically invoke guac_client_init within the plugin for the given protocol.</p>
+<p>Note that the connection will likely not be established until the first user (the "owner") is added to the client.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> to initialize. </td></tr>
+    <tr><td class="paramname">protocol</td><td>The name of the protocol to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if initialization was successful, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="ad53666bbe29346497cabb04fc9628208"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad53666bbe29346497cabb04fc9628208">&#9670;&nbsp;</a></span>guac_client_log()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_log </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a>&#160;</td>
+          <td class="paramname"><em>level</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes a message in the log used by the given client. </p>
+<p>The logger used will normally be defined by guacd (or whichever program loads the proxy client) by setting the logging handlers of the client when it is loaded.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client logging this message. </td></tr>
+    <tr><td class="paramname">level</td><td>The level at which to log this message. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">...</td><td>Arguments to use when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a02832d5be5330dc3de524b497b7c6dfa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a02832d5be5330dc3de524b497b7c6dfa">&#9670;&nbsp;</a></span>guac_client_remove_user()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_remove_user </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Removes the given user, removing the user from the internally-tracked list of connected users, and calling any appropriate leave handler. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to return the buffer to. </td></tr>
+    <tr><td class="paramname">user</td><td>The user to remove. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a022d4b5587c84f2963b176ab7999aa1b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a022d4b5587c84f2963b176ab7999aa1b">&#9670;&nbsp;</a></span>guac_client_stop()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_stop </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Signals the given client to stop gracefully. </p>
+<p>This is a completely cooperative signal, and can be ignored by the client or the hosting daemon.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to signal to stop. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a6c9d8717d4b8eaa50dbd7301af27a06f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6c9d8717d4b8eaa50dbd7301af27a06f">&#9670;&nbsp;</a></span>guac_client_stream_argv()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_stream_argv </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the given connection parameter value over an argument value stream ("argv" instruction), exposing the current value of the named connection parameter to all users of the given client. </p>
+<p>The argument value stream will be automatically allocated and freed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The Guacamole client for which the argument value stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the argument value stream should be sent.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data within the connection parameter value being sent.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the connection parameter being sent.</td></tr>
+    <tr><td class="paramname">value</td><td>The current value of the connection parameter being sent. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="aa51ede155ad7777bc8d2e82aa6e779bf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa51ede155ad7777bc8d2e82aa6e779bf">&#9670;&nbsp;</a></span>guac_client_stream_jpeg()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_stream_jpeg </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>quality</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the image data of the given surface over an image stream ("img" instruction) as JPEG-encoded data at the given quality. </p>
+<p>The image stream will be automatically allocated and freed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The Guacamole client for which the image stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the image stream should be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when rendering the image over the given layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">surface</td><td>A Cairo surface containing the image data to be streamed.</td></tr>
+    <tr><td class="paramname">quality</td><td>The JPEG image quality, which must be an integer value between 0 and 100 inclusive. Larger values indicate improving quality at the expense of larger file size. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a317b9d79afd0b0b473d7d359e0c33750"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a317b9d79afd0b0b473d7d359e0c33750">&#9670;&nbsp;</a></span>guac_client_stream_png()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_stream_png </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the image data of the given surface over an image stream ("img" instruction) as PNG-encoded data. </p>
+<p>The image stream will be automatically allocated and freed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The Guacamole client for which the image stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the image stream should be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when rendering the image over the given layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">surface</td><td>A Cairo surface containing the image data to be streamed. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a55adbd5ee8f27c4df4394dbb5bf9416e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a55adbd5ee8f27c4df4394dbb5bf9416e">&#9670;&nbsp;</a></span>guac_client_stream_webp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_stream_webp </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>quality</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>lossless</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the image data of the given surface over an image stream ("img" instruction) as WebP-encoded data at the given quality. </p>
+<p>The image stream will be automatically allocated and freed. If the server does not support WebP, this function has no effect, so be sure to check the result of <a class="el" href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3" title="Returns whether all users of the given client support WebP. ">guac_client_supports_webp()</a> prior to calling this function.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The Guacamole client for whom the image stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the image stream should be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when rendering the image over the given layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">surface</td><td>A Cairo surface containing the image data to be streamed.</td></tr>
+    <tr><td class="paramname">quality</td><td>The WebP image quality, which must be an integer value between 0 and 100 inclusive. For lossy images, larger values indicate improving quality at the expense of larger file size. For lossless images, this dictates the quality of compression, with larger values producing smaller files at the expense of speed.</td></tr>
+    <tr><td class="paramname">lossless</td><td>Zero to encode a lossy image, non-zero to encode losslessly. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a79cc74558e8f64807ea2847fbacd20e3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a79cc74558e8f64807ea2847fbacd20e3">&#9670;&nbsp;</a></span>guac_client_supports_webp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_client_supports_webp </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns whether all users of the given client support WebP. </p>
+<p>If any user does not support WebP, or the server cannot encode WebP images, zero is returned.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The Guacamole client whose users should be checked for WebP support.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Non-zero if the all users of the given client claim to support WebP and the server has been built with WebP support, zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a4c0eccd7d0ed3dbf3e7941ce297e0224"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4c0eccd7d0ed3dbf3e7941ce297e0224">&#9670;&nbsp;</a></span>vguac_client_abort()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void vguac_client_abort </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>&#160;</td>
+          <td class="paramname"><em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">va_list&#160;</td>
+          <td class="paramname"><em>ap</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Signals the given client to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred. </p>
+<p>Note that this is a completely cooperative signal, and can be ignored by the client or the hosting daemon. The message given will be logged to the system logs.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to signal to stop. </td></tr>
+    <tr><td class="paramname">status</td><td>The status to send over the Guacamole protocol. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">ap</td><td>The va_list containing the arguments to be used when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a37a0fa9cfc4c02236085e3852972f494"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a37a0fa9cfc4c02236085e3852972f494">&#9670;&nbsp;</a></span>vguac_client_log()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void vguac_client_log </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a>&#160;</td>
+          <td class="paramname"><em>level</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">va_list&#160;</td>
+          <td class="paramname"><em>ap</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes a message in the log used by the given client. </p>
+<p>The logger used will normally be defined by guacd (or whichever program loads the proxy client) by setting the logging handlers of the client when it is loaded.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client logging this message. </td></tr>
+    <tr><td class="paramname">level</td><td>The level at which to log this message. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">ap</td><td>The va_list containing the arguments to be used when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/client_8h_source.html b/doc/1.1.0/libguac/client_8h_source.html
new file mode 100644
index 0000000..571d280
--- /dev/null
+++ b/doc/1.1.0/libguac/client_8h_source.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">client.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="client_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_CLIENT_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_CLIENT_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-fntypes_8h.html">client-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-types_8h.html">client-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-constants_8h.html">client-constants.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="layer-types_8h.html">layer-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="object-types_8h.html">object-types.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="pool-types_8h.html">pool-types.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timestamp-types_8h.html">timestamp-types.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-fntypes_8h.html">user-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-types_8h.html">user-types.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo.h&gt;</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structguac__client.html">   46</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__client.html">guac_client</a> {</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="structguac__client.html#aa634856fd3c522377ba7345f3308000e">   57</a></span>&#160;    <a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="structguac__client.html#aa634856fd3c522377ba7345f3308000e">socket</a>;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53">   65</a></span>&#160;    <a class="code" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a> <a class="code" href="structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53">state</a>;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3">   72</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3">data</a>;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structguac__client.html#a0f3069566c7a5ca76ce4369715589dad">   78</a></span>&#160;    <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> <a class="code" href="structguac__client.html#a0f3069566c7a5ca76ce4369715589dad">last_sent_timestamp</a>;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">  101</a></span>&#160;    <a class="code" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a>* <a class="code" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">free_handler</a>;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">  125</a></span>&#160;    <a class="code" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a>* <a class="code" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">log_handler</a>;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <a class="code" href="structguac__pool.html">guac_pool</a>* __buffer_pool;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <a class="code" href="structguac__pool.html">guac_pool</a>* __layer_pool;</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <a class="code" href="structguac__pool.html">guac_pool</a>* __stream_pool;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <a class="code" href="structguac__stream.html">guac_stream</a>* __output_streams;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094">  159</a></span>&#160;    <span class="keywordtype">char</span>* <a class="code" href="structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094">connection_id</a>;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    pthread_rwlock_t __users_lock;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <a class="code" href="structguac__user.html">guac_user</a>* __users;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    <a class="code" href="structguac__user.html">guac_user</a>* __owner;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2">  184</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2">connected_users</a>;</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">  207</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a>* <a class="code" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">join_handler</a>;</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">  225</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a>* <a class="code" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">leave_handler</a>;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">  251</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">args</a>;</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;    <span class="keywordtype">void</span>* __plugin_handle;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;};</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;<a class="code" href="structguac__client.html">guac_client</a>* <a class="code" href="client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a">guac_client_alloc</a>();</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427">guac_client_free</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#ad53666bbe29346497cabb04fc9628208">guac_client_log</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level,</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a37a0fa9cfc4c02236085e3852972f494">vguac_client_log</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level,</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list ap);</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a022d4b5587c84f2963b176ab7999aa1b">guac_client_stop</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a62a29f7820deaff00a10ec79aa81aed4">guac_client_abort</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status,</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224">vguac_client_abort</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status,</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list ap);</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<a class="code" href="structguac__layer.html">guac_layer</a>* <a class="code" href="client_8h.html#af661d3fedd9683631bdc7d1e3205e379">guac_client_alloc_buffer</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;<a class="code" href="structguac__layer.html">guac_layer</a>* <a class="code" href="client_8h.html#a2085758db585bb9d09d3860ec0fc9587">guac_client_alloc_layer</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b">guac_client_free_buffer</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a4e5b374211012d1897792335112dcb89">guac_client_free_layer</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<a class="code" href="structguac__stream.html">guac_stream</a>* <a class="code" href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9">guac_client_alloc_stream</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#af0103a5aae8ba76badd2e68e827f6782">guac_client_free_stream</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__stream.html">guac_stream</a>* stream);</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;<span class="keywordtype">int</span> <a class="code" href="client_8h.html#af66d105dfd1453ec46b423e6b25fa371">guac_client_add_user</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv);</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a02832d5be5330dc3de524b497b7c6dfa">guac_client_remove_user</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077">guac_client_foreach_user</a>(<a class="code" href="structguac__client.html">guac_client</a>* client,</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;        <a class="code" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a>* callback, <span class="keywordtype">void</span>* data);</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;<span class="keywordtype">void</span>* <a class="code" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a">guac_client_for_owner</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a>* callback,</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;        <span class="keywordtype">void</span>* data);</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;<span class="keywordtype">void</span>* <a class="code" href="client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03">guac_client_for_user</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__user.html">guac_user</a>* user,</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;        <a class="code" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a>* callback, <span class="keywordtype">void</span>* data);</div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;<span class="keywordtype">int</span> <a class="code" href="client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc">guac_client_end_frame</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;<span class="keywordtype">int</span> <a class="code" href="client_8h.html#afa2b90d686c56cf753c36718ec085f35">guac_client_load_plugin</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <span class="keyword">const</span> <span class="keywordtype">char</span>* protocol);</div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;<span class="keywordtype">int</span> <a class="code" href="client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c">guac_client_get_processing_lag</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;</div><div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f">guac_client_stream_argv</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value);</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a317b9d79afd0b0b473d7d359e0c33750">guac_client_stream_png</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;        cairo_surface_t* surface);</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;</div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf">guac_client_stream_jpeg</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;        cairo_surface_t* surface, <span class="keywordtype">int</span> quality);</div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;</div><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e">guac_client_stream_webp</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;        cairo_surface_t* surface, <span class="keywordtype">int</span> quality, <span class="keywordtype">int</span> lossless);</div><div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;</div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;<span class="keywordtype">int</span> <a class="code" href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3">guac_client_supports_webp</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;</div><div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* <a class="code" href="client_8h.html#a336a485c006394d5eea88bf6d8d422d8">GUAC_DEFAULT_LAYER</a>;</div><div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;</div><div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;</div><div class="ttc" id="structguac__client_html_a0adcf1953de6c315c2da9dac4b3eceb3"><div class="ttname"><a href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">guac_client::join_handler</a></div><div class="ttdeci">guac_user_join_handler * join_handler</div><div class="ttdoc">Handler for join events, called whenever a new user is joining an active connection. </div><div class="ttdef"><b>Definition:</b> client.h:207</div></div>
+<div class="ttc" id="client_8h_html_af652f3db0f89d488cef6d90f612a2077"><div class="ttname"><a href="client_8h.html#af652f3db0f89d488cef6d90f612a2077">guac_client_foreach_user</a></div><div class="ttdeci">void guac_client_foreach_user(guac_client *client, guac_user_callback *callback, void *data)</div><div class="ttdoc">Calls the given function on all currently-connected users of the given client. </div></div>
+<div class="ttc" id="client_8h_html_a686fc65f5b1afcc3f3b53e36cd1a2ebc"><div class="ttname"><a href="client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc">guac_client_end_frame</a></div><div class="ttdeci">int guac_client_end_frame(guac_client *client)</div><div class="ttdoc">Marks the end of the current frame by sending a &quot;sync&quot; instruction to all connected users...</div></div>
+<div class="ttc" id="client_8h_html_a4c0eccd7d0ed3dbf3e7941ce297e0224"><div class="ttname"><a href="client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224">vguac_client_abort</a></div><div class="ttdeci">void vguac_client_abort(guac_client *client, guac_protocol_status status, const char *format, va_list ap)</div><div class="ttdoc">Signals the given client to stop gracefully, while also signalling via the Guacamole protocol that an...</div></div>
+<div class="ttc" id="client_8h_html_a336a485c006394d5eea88bf6d8d422d8"><div class="ttname"><a href="client_8h.html#a336a485c006394d5eea88bf6d8d422d8">GUAC_DEFAULT_LAYER</a></div><div class="ttdeci">const guac_layer * GUAC_DEFAULT_LAYER</div><div class="ttdoc">The default Guacamole client layer, layer 0. </div></div>
+<div class="ttc" id="client_8h_html_a79cc74558e8f64807ea2847fbacd20e3"><div class="ttname"><a href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3">guac_client_supports_webp</a></div><div class="ttdeci">int guac_client_supports_webp(guac_client *client)</div><div class="ttdoc">Returns whether all users of the given client support WebP. </div></div>
+<div class="ttc" id="client-constants_8h_html"><div class="ttname"><a href="client-constants_8h.html">client-constants.h</a></div><div class="ttdoc">Constants related to the Guacamole client structure, guac_client. </div></div>
+<div class="ttc" id="client_8h_html_afa2b90d686c56cf753c36718ec085f35"><div class="ttname"><a href="client_8h.html#afa2b90d686c56cf753c36718ec085f35">guac_client_load_plugin</a></div><div class="ttdeci">int guac_client_load_plugin(guac_client *client, const char *protocol)</div><div class="ttdoc">Initializes the given guac_client using the initialization routine provided by the plugin correspondi...</div></div>
+<div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object. </div></div>
+<div class="ttc" id="user-fntypes_8h_html_a99c5146e0ab1df9ba2b2574fb26fbddf"><div class="ttname"><a href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a></div><div class="ttdeci">void * guac_user_callback(guac_user *user, void *data)</div><div class="ttdoc">Callback which relates to a single guac_user at a time, along with arbitrary data. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:59</div></div>
+<div class="ttc" id="structguac__client_html_aa634856fd3c522377ba7345f3308000e"><div class="ttname"><a href="structguac__client.html#aa634856fd3c522377ba7345f3308000e">guac_client::socket</a></div><div class="ttdeci">guac_socket * socket</div><div class="ttdoc">The guac_socket structure to be used to communicate with all connected web-clients (users)...</div><div class="ttdef"><b>Definition:</b> client.h:57</div></div>
+<div class="ttc" id="structguac__client_html_a0f3069566c7a5ca76ce4369715589dad"><div class="ttname"><a href="structguac__client.html#a0f3069566c7a5ca76ce4369715589dad">guac_client::last_sent_timestamp</a></div><div class="ttdeci">guac_timestamp last_sent_timestamp</div><div class="ttdoc">The time (in milliseconds) that the last sync message was sent to the client. </div><div class="ttdef"><b>Definition:</b> client.h:78</div></div>
+<div class="ttc" id="structguac__client_html_a0e07a8086579ede2c692460998a87cac"><div class="ttname"><a href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">guac_client::args</a></div><div class="ttdeci">const char ** args</div><div class="ttdoc">NULL-terminated array of all arguments accepted by this client , in order. </div><div class="ttdef"><b>Definition:</b> client.h:251</div></div>
+<div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams. </div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole. </div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="client_8h_html_a1bea3499e21736b4ea0fb949d3bc8ab9"><div class="ttname"><a href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9">guac_client_alloc_stream</a></div><div class="ttdeci">guac_stream * guac_client_alloc_stream(guac_client *client)</div><div class="ttdoc">Allocates a new stream. </div></div>
+<div class="ttc" id="object-types_8h_html"><div class="ttname"><a href="object-types_8h.html">object-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol objects. </div></div>
+<div class="ttc" id="client-types_8h_html_a6f7e91d6dcb20598953948f077910c3b"><div class="ttname"><a href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a></div><div class="ttdeci">guac_client_state</div><div class="ttdoc">Possible current states of the Guacamole client. </div><div class="ttdef"><b>Definition:</b> client-types.h:41</div></div>
+<div class="ttc" id="structguac__client_html_a0569bc7eea8d37b5bd95bcd3821ca0a3"><div class="ttname"><a href="structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3">guac_client::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Arbitrary reference to proxy client-specific data. </div><div class="ttdef"><b>Definition:</b> client.h:72</div></div>
+<div class="ttc" id="client_8h_html_a4e5b374211012d1897792335112dcb89"><div class="ttname"><a href="client_8h.html#a4e5b374211012d1897792335112dcb89">guac_client_free_layer</a></div><div class="ttdeci">void guac_client_free_layer(guac_client *client, guac_layer *layer)</div><div class="ttdoc">Returns the given layer to the pool of available layers, such that it can be reused by any subsequent...</div></div>
+<div class="ttc" id="client-types_8h_html"><div class="ttname"><a href="client-types_8h.html">client-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole client structure, guac_client. </div></div>
+<div class="ttc" id="client_8h_html_af661d3fedd9683631bdc7d1e3205e379"><div class="ttname"><a href="client_8h.html#af661d3fedd9683631bdc7d1e3205e379">guac_client_alloc_buffer</a></div><div class="ttdeci">guac_layer * guac_client_alloc_buffer(guac_client *client)</div><div class="ttdoc">Allocates a new buffer (invisible layer). </div></div>
+<div class="ttc" id="client_8h_html_a62a29f7820deaff00a10ec79aa81aed4"><div class="ttname"><a href="client_8h.html#a62a29f7820deaff00a10ec79aa81aed4">guac_client_abort</a></div><div class="ttdeci">void guac_client_abort(guac_client *client, guac_protocol_status status, const char *format,...)</div><div class="ttdoc">Signals the given client to stop gracefully, while also signalling via the Guacamole protocol that an...</div></div>
+<div class="ttc" id="client_8h_html_a37a0fa9cfc4c02236085e3852972f494"><div class="ttname"><a href="client_8h.html#a37a0fa9cfc4c02236085e3852972f494">vguac_client_log</a></div><div class="ttdeci">void vguac_client_log(guac_client *client, guac_client_log_level level, const char *format, va_list ap)</div><div class="ttdoc">Writes a message in the log used by the given client. </div></div>
+<div class="ttc" id="structguac__client_html_a3eb24ba13be9ecb3a8c6f64a73932f43"><div class="ttname"><a href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">guac_client::log_handler</a></div><div class="ttdeci">guac_client_log_handler * log_handler</div><div class="ttdoc">Logging handler. </div><div class="ttdef"><b>Definition:</b> client.h:125</div></div>
+<div class="ttc" id="client_8h_html_aa51ede155ad7777bc8d2e82aa6e779bf"><div class="ttname"><a href="client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf">guac_client_stream_jpeg</a></div><div class="ttdeci">void guac_client_stream_jpeg(guac_client *client, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface, int quality)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as JPEG-encoded ...</div></div>
+<div class="ttc" id="client_8h_html_afc03a32b3113d9a95700cac54f1cbd4b"><div class="ttname"><a href="client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b">guac_client_free_buffer</a></div><div class="ttdeci">void guac_client_free_buffer(guac_client *client, guac_layer *layer)</div><div class="ttdoc">Returns the given buffer to the pool of available buffers, such that it can be reused by any subseque...</div></div>
+<div class="ttc" id="user-fntypes_8h_html"><div class="ttname"><a href="user-fntypes_8h.html">user-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the guac_user object. </div></div>
+<div class="ttc" id="client-fntypes_8h_html_a7f8c6986f3db9818d016eee6fa562577"><div class="ttname"><a href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a></div><div class="ttdeci">int guac_client_free_handler(guac_client *client)</div><div class="ttdoc">Handler for freeing up any extra data allocated by the client implementation. </div><div class="ttdef"><b>Definition:</b> client-fntypes.h:49</div></div>
+<div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared...</div><div class="ttdef"><b>Definition:</b> user.h:101</div></div>
+<div class="ttc" id="client_8h_html_af66d105dfd1453ec46b423e6b25fa371"><div class="ttname"><a href="client_8h.html#af66d105dfd1453ec46b423e6b25fa371">guac_client_add_user</a></div><div class="ttdeci">int guac_client_add_user(guac_client *client, guac_user *user, int argc, char **argv)</div><div class="ttdoc">Adds the given user to the internal list of connected users. </div></div>
+<div class="ttc" id="pool-types_8h_html"><div class="ttname"><a href="pool-types_8h.html">pool-types.h</a></div><div class="ttdoc">Type definitions related to the guac_pool pool of unique integers. </div></div>
+<div class="ttc" id="client_8h_html_a6c9d8717d4b8eaa50dbd7301af27a06f"><div class="ttname"><a href="client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f">guac_client_stream_argv</a></div><div class="ttdeci">void guac_client_stream_argv(guac_client *client, guac_socket *socket, const char *mimetype, const char *name, const char *value)</div><div class="ttdoc">Streams the given connection parameter value over an argument value stream (&quot;argv&quot; instruction)...</div></div>
+<div class="ttc" id="structguac__client_html_acb3e3f5d0ce5726cdde768f97b473f53"><div class="ttname"><a href="structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53">guac_client::state</a></div><div class="ttdeci">guac_client_state state</div><div class="ttdoc">The current state of the client. </div><div class="ttdef"><b>Definition:</b> client.h:65</div></div>
+<div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds. </div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+<div class="ttc" id="client-fntypes_8h_html"><div class="ttname"><a href="client-fntypes_8h.html">client-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the Guacamole client structure, guac_client. ...</div></div>
+<div class="ttc" id="structguac__client_html"><div class="ttname"><a href="structguac__client.html">guac_client</a></div><div class="ttdoc">Guacamole proxy client. </div><div class="ttdef"><b>Definition:</b> client.h:46</div></div>
+<div class="ttc" id="structguac__client_html_a73aeff08af6cf6cadd7abce74c7ff4b2"><div class="ttname"><a href="structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2">guac_client::connected_users</a></div><div class="ttdeci">int connected_users</div><div class="ttdoc">The number of currently-connected users. </div><div class="ttdef"><b>Definition:</b> client.h:184</div></div>
+<div class="ttc" id="structguac__pool_html"><div class="ttname"><a href="structguac__pool.html">guac_pool</a></div><div class="ttdoc">A pool of integers. </div><div class="ttdef"><b>Definition:</b> pool.h:34</div></div>
+<div class="ttc" id="client_8h_html_a33bad42d21ccb561aa71c4f04ae9b22a"><div class="ttname"><a href="client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a">guac_client_alloc</a></div><div class="ttdeci">guac_client * guac_client_alloc()</div><div class="ttdoc">Returns a new, barebones guac_client. </div></div>
+<div class="ttc" id="structguac__client_html_ad956a3935832e9048a2727d8c5a46cf6"><div class="ttname"><a href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">guac_client::leave_handler</a></div><div class="ttdeci">guac_user_leave_handler * leave_handler</div><div class="ttdoc">Handler for leave events, called whenever a new user is leaving an active connection. </div><div class="ttdef"><b>Definition:</b> client.h:225</div></div>
+<div class="ttc" id="client_8h_html_af3f4ed85d98b16376e2cdc031ff1b44a"><div class="ttname"><a href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a">guac_client_for_owner</a></div><div class="ttdeci">void * guac_client_for_owner(guac_client *client, guac_user_callback *callback, void *data)</div><div class="ttdoc">Calls the given function with the currently-connected user that is marked as the owner. </div></div>
+<div class="ttc" id="client_8h_html_a76cdc454a23fdcbb70d56f923f6b6427"><div class="ttname"><a href="client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427">guac_client_free</a></div><div class="ttdeci">void guac_client_free(guac_client *client)</div><div class="ttdoc">Free all resources associated with the given client. </div></div>
+<div class="ttc" id="client_8h_html_a55adbd5ee8f27c4df4394dbb5bf9416e"><div class="ttname"><a href="client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e">guac_client_stream_webp</a></div><div class="ttdeci">void guac_client_stream_webp(guac_client *client, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface, int quality, int lossless)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as WebP-encoded ...</div></div>
+<div class="ttc" id="client_8h_html_a2085758db585bb9d09d3860ec0fc9587"><div class="ttname"><a href="client_8h.html#a2085758db585bb9d09d3860ec0fc9587">guac_client_alloc_layer</a></div><div class="ttdeci">guac_layer * guac_client_alloc_layer(guac_client *client)</div><div class="ttdoc">Allocates a new layer. </div></div>
+<div class="ttc" id="layer-types_8h_html"><div class="ttname"><a href="layer-types_8h.html">layer-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole layers. </div></div>
+<div class="ttc" id="user-fntypes_8h_html_aaa5806d288a42d93a54864b6c35617b8"><div class="ttname"><a href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a></div><div class="ttdeci">int guac_user_leave_handler(guac_user *user)</div><div class="ttdoc">Handler for Guacamole leave events. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:385</div></div>
+<div class="ttc" id="protocol-types_8h_html_a93612063886db58071d02b5393abf186"><div class="ttname"><a href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a></div><div class="ttdeci">guac_composite_mode</div><div class="ttdoc">Composite modes used by Guacamole draw instructions. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:170</div></div>
+<div class="ttc" id="structguac__client_html_a79e29c931fd448cf51f7153fea064169"><div class="ttname"><a href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">guac_client::free_handler</a></div><div class="ttdeci">guac_client_free_handler * free_handler</div><div class="ttdoc">Handler for freeing data when the client is being unloaded. </div><div class="ttdef"><b>Definition:</b> client.h:101</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a></div><div class="ttdeci">guac_protocol_status</div><div class="ttdoc">Set of all possible status codes returned by protocol operations. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:44</div></div>
+<div class="ttc" id="structguac__layer_html"><div class="ttname"><a href="structguac__layer.html">guac_layer</a></div><div class="ttdoc">Represents a single layer within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> layer.h:34</div></div>
+<div class="ttc" id="client_8h_html_a022d4b5587c84f2963b176ab7999aa1b"><div class="ttname"><a href="client_8h.html#a022d4b5587c84f2963b176ab7999aa1b">guac_client_stop</a></div><div class="ttdeci">void guac_client_stop(guac_client *client)</div><div class="ttdoc">Signals the given client to stop gracefully. </div></div>
+<div class="ttc" id="client_8h_html_a317b9d79afd0b0b473d7d359e0c33750"><div class="ttname"><a href="client_8h.html#a317b9d79afd0b0b473d7d359e0c33750">guac_client_stream_png</a></div><div class="ttdeci">void guac_client_stream_png(guac_client *client, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as PNG-encoded d...</div></div>
+<div class="ttc" id="client_8h_html_a02832d5be5330dc3de524b497b7c6dfa"><div class="ttname"><a href="client_8h.html#a02832d5be5330dc3de524b497b7c6dfa">guac_client_remove_user</a></div><div class="ttdeci">void guac_client_remove_user(guac_client *client, guac_user *user)</div><div class="ttdoc">Removes the given user, removing the user from the internally-tracked list of connected users...</div></div>
+<div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+<div class="ttc" id="client-fntypes_8h_html_a23837e22dbfe152719d596e6918bad3c"><div class="ttname"><a href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a></div><div class="ttdeci">void guac_client_log_handler(guac_client *client, guac_client_log_level level, const char *format, va_list args)</div><div class="ttdoc">Handler for logging messages related to a given guac_client instance. </div><div class="ttdef"><b>Definition:</b> client-fntypes.h:67</div></div>
+<div class="ttc" id="client_8h_html_aa2b94b3145fcebf2d7b1999df11d0b2c"><div class="ttname"><a href="client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c">guac_client_get_processing_lag</a></div><div class="ttdeci">int guac_client_get_processing_lag(guac_client *client)</div><div class="ttdoc">Calculates and returns the approximate processing lag experienced by the pool of users. </div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a></div><div class="ttdeci">guac_client_log_level</div><div class="ttdoc">All supported log levels used by the logging subsystem of each Guacamole client. </div><div class="ttdef"><b>Definition:</b> client-types.h:62</div></div>
+<div class="ttc" id="client_8h_html_af0103a5aae8ba76badd2e68e827f6782"><div class="ttname"><a href="client_8h.html#af0103a5aae8ba76badd2e68e827f6782">guac_client_free_stream</a></div><div class="ttdeci">void guac_client_free_stream(guac_client *client, guac_stream *stream)</div><div class="ttdoc">Returns the given stream to the pool of available streams, such that it can be reused by any subseque...</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a88717a7ab29ac1e4a853fcc2caa8f872"><div class="ttname"><a href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a></div><div class="ttdeci">int guac_user_join_handler(guac_user *user, int argc, char **argv)</div><div class="ttdoc">Handler for Guacamole join events. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:366</div></div>
+<div class="ttc" id="timestamp-types_8h_html"><div class="ttname"><a href="timestamp-types_8h.html">timestamp-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol timestamps. </div></div>
+<div class="ttc" id="user-types_8h_html"><div class="ttname"><a href="user-types_8h.html">user-types.h</a></div><div class="ttdoc">Type definitions related to the guac_user object. </div></div>
+<div class="ttc" id="structguac__client_html_ad38b9ded1f04bfe8eb235e551fc08094"><div class="ttname"><a href="structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094">guac_client::connection_id</a></div><div class="ttdeci">char * connection_id</div><div class="ttdoc">The unique identifier allocated for the connection, which may be used within the Guacamole protocol t...</div><div class="ttdef"><b>Definition:</b> client.h:159</div></div>
+<div class="ttc" id="client_8h_html_ad53666bbe29346497cabb04fc9628208"><div class="ttname"><a href="client_8h.html#ad53666bbe29346497cabb04fc9628208">guac_client_log</a></div><div class="ttdeci">void guac_client_log(guac_client *client, guac_client_log_level level, const char *format,...)</div><div class="ttdoc">Writes a message in the log used by the given client. </div></div>
+<div class="ttc" id="client_8h_html_a7fbba296d1ec3e78dc4b79884f590a03"><div class="ttname"><a href="client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03">guac_client_for_user</a></div><div class="ttdeci">void * guac_client_for_user(guac_client *client, guac_user *user, guac_user_callback *callback, void *data)</div><div class="ttdoc">Calls the given function with the given user ONLY if they are currently connected. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/closed.png b/doc/1.1.0/libguac/closed.png
new file mode 100644
index 0000000..98cc2c9
--- /dev/null
+++ b/doc/1.1.0/libguac/closed.png
Binary files differ
diff --git a/doc/1.1.0/libguac/deprecated.html b/doc/1.1.0/libguac/deprecated.html
new file mode 100644
index 0000000..c70e0f4
--- /dev/null
+++ b/doc/1.1.0/libguac/deprecated.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Deprecated List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Deprecated List </div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><dl class="reflist">
+<dt><a class="anchor" id="_deprecated000001"></a>Global <a class="el" href="protocol_8h.html#a94efa63c9895383e142a3f7ce559300b">guac_protocol_send_nest</a>  (<a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> *socket, int index, const char *data)</dt>
+<dd>The "nest" instruction and the corresponding <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> implementation are no longer necessary, having been replaced by the streaming instructions ("blob", "ack", "end"). Code using nested sockets or the "nest" instruction should instead write to a normal socket directly. </dd>
+<dt><a class="anchor" id="_deprecated000002"></a>Global <a class="el" href="socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda">guac_socket_nest</a>  (<a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> *parent, int index)</dt>
+<dd>The "nest" instruction and the corresponding <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> implementation are no longer necessary, having been replaced by the streaming instructions ("blob", "ack", "end"). Code using nested sockets or the "nest" instruction should instead write to a normal socket directly.</dd>
+</dl>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/dir_6bb9fad85c98b48a11165f494b9f53ce.html b/doc/1.1.0/libguac/dir_6bb9fad85c98b48a11165f494b9f53ce.html
new file mode 100644
index 0000000..39aa58c
--- /dev/null
+++ b/doc/1.1.0/libguac/dir_6bb9fad85c98b48a11165f494b9f53ce.html
@@ -0,0 +1,205 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">guacamole Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:audio-fntypes_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-fntypes_8h.html">audio-fntypes.h</a> <a href="audio-fntypes_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:audio-fntypes_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type definitions related to simple streaming audio. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:audio-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-types_8h.html">audio-types.h</a> <a href="audio-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:audio-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to simple streaming audio. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:audio_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html">audio.h</a> <a href="audio_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:audio_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures used for providing simple streaming audio. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:client-constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html">client-constants.h</a> <a href="client-constants_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:client-constants_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:client-fntypes_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-fntypes_8h.html">client-fntypes.h</a> <a href="client-fntypes_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:client-fntypes_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:client-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-types_8h.html">client-types.h</a> <a href="client-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:client-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:client_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html">client.h</a> <a href="client_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:client_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions and structure contents for the Guacamole proxy client. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:error-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error-types_8h.html">error-types.h</a> <a href="error-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:error-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to return values and errors. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:error_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error_8h.html">error.h</a> <a href="error_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:error_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures required for handling return values and errors. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:hash_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html">hash.h</a> <a href="hash_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:hash_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures for producing likely-to-be-unique hash values for images. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:layer-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="layer-types_8h.html">layer-types.h</a> <a href="layer-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:layer-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to Guacamole layers. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:layer_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="layer_8h.html">layer.h</a> <a href="layer_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:layer_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures required for allocating and using layers. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:object-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="object-types_8h.html">object-types.h</a> <a href="object-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:object-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to Guacamole protocol objects. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:object_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="object_8h.html">object.h</a> <a href="object_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:object_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures required for allocating and using objects. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:parser-constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser-constants_8h.html">parser-constants.h</a> <a href="parser-constants_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:parser-constants_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants related to the Guacamole protocol parser. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:parser-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser-types_8h.html">parser-types.h</a> <a href="parser-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:parser-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to parsing the Guacamole protocol. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:parser_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html">parser.h</a> <a href="parser_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:parser_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures for parsing the Guacamole protocol. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:plugin-constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin-constants_8h.html">plugin-constants.h</a> <a href="plugin-constants_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:plugin-constants_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants related to client plugins. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:plugin_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8h.html">plugin.h</a> <a href="plugin_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:plugin_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures required for handling a client plugin. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:pool-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pool-types_8h.html">pool-types.h</a> <a href="pool-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:pool-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to the <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a> pool of unique integers. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:pool_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pool_8h.html">pool.h</a> <a href="pool_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:pool_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures for maintaining dynamically allocated and freed pools of integers. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:protocol-constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-constants_8h.html">protocol-constants.h</a> <a href="protocol-constants_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:protocol-constants_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants related to the Guacamole protocol. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:protocol-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-types_8h.html">protocol-types.h</a> <a href="protocol-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:protocol-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to the Guacamole protocol. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:protocol_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html">protocol.h</a> <a href="protocol_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:protocol_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures required for communicating using the Guacamole protocol over a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection, such as that provided by <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> objects. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:socket-constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-constants_8h.html">socket-constants.h</a> <a href="socket-constants_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:socket-constants_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:socket-fntypes_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html">socket-fntypes.h</a> <a href="socket-fntypes_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:socket-fntypes_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:socket-ssl_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-ssl_8h.html">socket-ssl.h</a> <a href="socket-ssl_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:socket-ssl_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides an SSL/TLS implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:socket-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-types_8h.html">socket-types.h</a> <a href="socket-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:socket-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:socket-wsa_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-wsa_8h.html">socket-wsa.h</a> <a href="socket-wsa_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:socket-wsa_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides an implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> specific to the Windows Socket API (aka WSA or "winsock"). <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:socket_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html">socket.h</a> <a href="socket_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:socket_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object and functionss for using and manipulating it. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:stream-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stream-types_8h.html">stream-types.h</a> <a href="stream-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:stream-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to Guacamole protocol streams. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:stream_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stream_8h.html">stream.h</a> <a href="stream_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:stream_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures required for allocating and using streams. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:string_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html">string.h</a> <a href="string_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:string_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides convenience functions for manipulating strings. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:timestamp-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="timestamp-types_8h.html">timestamp-types.h</a> <a href="timestamp-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:timestamp-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to Guacamole protocol timestamps. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:timestamp_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="timestamp_8h.html">timestamp.h</a> <a href="timestamp_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:timestamp_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures for creating timestamps. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:unicode_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unicode_8h.html">unicode.h</a> <a href="unicode_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:unicode_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions for manipulating Unicode strings. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:user-constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html">user-constants.h</a> <a href="user-constants_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:user-constants_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants related to the Guacamole user structure, <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:user-fntypes_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html">user-fntypes.h</a> <a href="user-fntypes_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:user-fntypes_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:user-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-types_8h.html">user-types.h</a> <a href="user-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:user-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:user_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html">user.h</a> <a href="user_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:user_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object, which represents a physical connection within a larger, possibly shared, logical connection represented by a <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/doc.png b/doc/1.1.0/libguac/doc.png
new file mode 100644
index 0000000..17edabf
--- /dev/null
+++ b/doc/1.1.0/libguac/doc.png
Binary files differ
diff --git a/doc/1.1.0/libguac/doxygen.css b/doc/1.1.0/libguac/doxygen.css
new file mode 100644
index 0000000..266c8b3
--- /dev/null
+++ b/doc/1.1.0/libguac/doxygen.css
@@ -0,0 +1,1596 @@
+/* The standard CSS for doxygen 1.8.14 */
+
+body, table, div, p, dl {
+	font: 400 14px/22px Roboto,sans-serif;
+}
+
+p.reference, p.definition {
+	font: 400 14px/22px Roboto,sans-serif;
+}
+
+/* @group Heading Levels */
+
+h1.groupheader {
+	font-size: 150%;
+}
+
+.title {
+	font: 400 14px/28px Roboto,sans-serif;
+	font-size: 150%;
+	font-weight: bold;
+	margin: 10px 2px;
+}
+
+h2.groupheader {
+	border-bottom: 1px solid #879ECB;
+	color: #354C7B;
+	font-size: 150%;
+	font-weight: normal;
+	margin-top: 1.75em;
+	padding-top: 8px;
+	padding-bottom: 4px;
+	width: 100%;
+}
+
+h3.groupheader {
+	font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+	-webkit-transition: text-shadow 0.5s linear;
+	-moz-transition: text-shadow 0.5s linear;
+	-ms-transition: text-shadow 0.5s linear;
+	-o-transition: text-shadow 0.5s linear;
+	transition: text-shadow 0.5s linear;
+	margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+	text-shadow: 0 0 15px cyan;
+}
+
+dt {
+	font-weight: bold;
+}
+
+div.multicol {
+	-moz-column-gap: 1em;
+	-webkit-column-gap: 1em;
+	-moz-column-count: 3;
+	-webkit-column-count: 3;
+}
+
+p.startli, p.startdd {
+	margin-top: 2px;
+}
+
+p.starttd {
+	margin-top: 0px;
+}
+
+p.endli {
+	margin-bottom: 0px;
+}
+
+p.enddd {
+	margin-bottom: 4px;
+}
+
+p.endtd {
+	margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+	font-weight: bold;
+}
+
+span.legend {
+        font-size: 70%;
+        text-align: center;
+}
+
+h3.version {
+        font-size: 90%;
+        text-align: center;
+}
+
+div.qindex, div.navtab{
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+}
+
+div.qindex, div.navpath {
+	width: 100%;
+	line-height: 140%;
+}
+
+div.navtab {
+	margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+	color: #3D578C;
+	font-weight: normal;
+	text-decoration: none;
+}
+
+.contents a:visited {
+	color: #4665A2;
+}
+
+a:hover {
+	text-decoration: underline;
+}
+
+a.qindex {
+	font-weight: bold;
+}
+
+a.qindexHL {
+	font-weight: bold;
+	background-color: #9CAFD4;
+	color: #ffffff;
+	border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+        color: #ffffff;
+}
+
+a.el {
+	font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited, a.line, a.line:visited {
+	color: #4665A2; 
+}
+
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
+	color: #4665A2; 
+}
+
+/* @end */
+
+dl.el {
+	margin-left: -1cm;
+}
+
+pre.fragment {
+        border: 1px solid #C4CFE5;
+        background-color: #FBFCFD;
+        padding: 4px 6px;
+        margin: 4px 8px 4px 2px;
+        overflow: auto;
+        word-wrap: break-word;
+        font-size:  9pt;
+        line-height: 125%;
+        font-family: monospace, fixed;
+        font-size: 105%;
+}
+
+div.fragment {
+        padding: 0px;
+        margin: 4px 8px 4px 2px;
+	background-color: #FBFCFD;
+	border: 1px solid #C4CFE5;
+}
+
+div.line {
+	font-family: monospace, fixed;
+        font-size: 13px;
+	min-height: 13px;
+	line-height: 1.0;
+	text-wrap: unrestricted;
+	white-space: -moz-pre-wrap; /* Moz */
+	white-space: -pre-wrap;     /* Opera 4-6 */
+	white-space: -o-pre-wrap;   /* Opera 7 */
+	white-space: pre-wrap;      /* CSS3  */
+	word-wrap: break-word;      /* IE 5.5+ */
+	text-indent: -53px;
+	padding-left: 53px;
+	padding-bottom: 0px;
+	margin: 0px;
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+div.line:after {
+    content:"\000A";
+    white-space: pre;
+}
+
+div.line.glow {
+	background-color: cyan;
+	box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+	padding-right: 4px;
+	text-align: right;
+	border-right: 2px solid #0F0;
+	background-color: #E8E8E8;
+        white-space: pre;
+}
+span.lineno a {
+	background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+	background-color: #C8C8C8;
+}
+
+.lineno {
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+div.ah, span.ah {
+	background-color: black;
+	font-weight: bold;
+	color: #ffffff;
+	margin-bottom: 3px;
+	margin-top: 3px;
+	padding: 0.2em;
+	border: solid thin #333;
+	border-radius: 0.5em;
+	-webkit-border-radius: .5em;
+	-moz-border-radius: .5em;
+	box-shadow: 2px 2px 3px #999;
+	-webkit-box-shadow: 2px 2px 3px #999;
+	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%);
+}
+
+div.classindex ul {
+        list-style: none;
+        padding-left: 0;
+}
+
+div.classindex span.ai {
+        display: inline-block;
+}
+
+div.groupHeader {
+	margin-left: 16px;
+	margin-top: 12px;
+	font-weight: bold;
+}
+
+div.groupText {
+	margin-left: 16px;
+	font-style: italic;
+}
+
+body {
+	background-color: white;
+	color: black;
+        margin: 0;
+}
+
+div.contents {
+	margin-top: 10px;
+	margin-left: 12px;
+	margin-right: 8px;
+}
+
+td.indexkey {
+	background-color: #EBEFF6;
+	font-weight: bold;
+	border: 1px solid #C4CFE5;
+	margin: 2px 0px 2px 0;
+	padding: 2px 10px;
+        white-space: nowrap;
+        vertical-align: top;
+}
+
+td.indexvalue {
+	background-color: #EBEFF6;
+	border: 1px solid #C4CFE5;
+	padding: 2px 10px;
+	margin: 2px 0px;
+}
+
+tr.memlist {
+	background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+	text-align: center;
+}
+
+img.formulaDsp {
+	
+}
+
+img.formulaInl {
+	vertical-align: middle;
+}
+
+div.center {
+	text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+	border: 0px;
+}
+
+address.footer {
+	text-align: right;
+	padding-right: 12px;
+}
+
+img.footer {
+	border: 0px;
+	vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+	color: #008000
+}
+
+span.keywordtype {
+	color: #604020
+}
+
+span.keywordflow {
+	color: #e08000
+}
+
+span.comment {
+	color: #800000
+}
+
+span.preprocessor {
+	color: #806020
+}
+
+span.stringliteral {
+	color: #002080
+}
+
+span.charliteral {
+	color: #008080
+}
+
+span.vhdldigit { 
+	color: #ff00ff 
+}
+
+span.vhdlchar { 
+	color: #000000 
+}
+
+span.vhdlkeyword { 
+	color: #700070 
+}
+
+span.vhdllogic { 
+	color: #ff0000 
+}
+
+blockquote {
+        background-color: #F7F8FB;
+        border-left: 2px solid #9CAFD4;
+        margin: 0 24px 0 4px;
+        padding: 0 12px 0 16px;
+}
+
+/* @end */
+
+/*
+.search {
+	color: #003399;
+	font-weight: bold;
+}
+
+form.search {
+	margin-bottom: 0px;
+	margin-top: 0px;
+}
+
+input.search {
+	font-size: 75%;
+	color: #000080;
+	font-weight: normal;
+	background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+	font-size: 75%;
+}
+
+.dirtab {
+	padding: 4px;
+	border-collapse: collapse;
+	border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+	background: #EBEFF6;
+	font-weight: bold;
+}
+
+hr {
+	height: 0px;
+	border: none;
+	border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+	height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+	border-spacing: 0px;
+	padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+	background-color: cyan;
+	box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+	background-color: #F9FAFC;
+	border: none;
+	margin: 4px;
+	padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+	padding: 0px 8px 4px 8px;
+	color: #555;
+}
+
+.memSeparator {
+        border-bottom: 1px solid #DEE4F0;
+        line-height: 1px;
+        margin: 0px;
+        padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+        white-space: nowrap;
+}
+
+.memItemRight {
+	width: 100%;
+}
+
+.memTemplParams {
+	color: #4665A2;
+        white-space: nowrap;
+	font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtitle {
+	padding: 8px;
+	border-top: 1px solid #A8B8D9;
+	border-left: 1px solid #A8B8D9;
+	border-right: 1px solid #A8B8D9;
+	border-top-right-radius: 4px;
+	border-top-left-radius: 4px;
+	margin-bottom: -1px;
+	background-image: url('nav_f.png');
+	background-repeat: repeat-x;
+	background-color: #E2E8F2;
+	line-height: 1.25;
+	font-weight: 300;
+	float:left;
+}
+
+.permalink
+{
+        font-size: 65%;
+        display: inline-block;
+        vertical-align: middle;
+}
+
+.memtemplate {
+	font-size: 80%;
+	color: #4665A2;
+	font-weight: normal;
+	margin-left: 9px;
+}
+
+.memnav {
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+	margin: 2px;
+	margin-right: 15px;
+	padding: 2px;
+}
+
+.mempage {
+	width: 100%;
+}
+
+.memitem {
+	padding: 0;
+	margin-bottom: 10px;
+	margin-right: 5px;
+        -webkit-transition: box-shadow 0.5s linear;
+        -moz-transition: box-shadow 0.5s linear;
+        -ms-transition: box-shadow 0.5s linear;
+        -o-transition: box-shadow 0.5s linear;
+        transition: box-shadow 0.5s linear;
+        display: table !important;
+        width: 100%;
+}
+
+.memitem.glow {
+         box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+        font-weight: 400;
+        margin-left: 6px;
+}
+
+.memname td {
+	vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+        border-top: 1px solid #A8B8D9;
+        border-left: 1px solid #A8B8D9;
+        border-right: 1px solid #A8B8D9;
+        padding: 6px 0px 6px 0px;
+        color: #253555;
+        font-weight: bold;
+        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+        background-color: #DFE5F1;
+        /* opera specific markup */
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        border-top-right-radius: 4px;
+        /* firefox specific markup */
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        -moz-border-radius-topright: 4px;
+        /* webkit specific markup */
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        -webkit-border-top-right-radius: 4px;
+
+}
+
+.overload {
+        font-family: "courier new",courier,monospace;
+	font-size: 65%;
+}
+
+.memdoc, dl.reflist dd {
+        border-bottom: 1px solid #A8B8D9;      
+        border-left: 1px solid #A8B8D9;      
+        border-right: 1px solid #A8B8D9; 
+        padding: 6px 10px 2px 10px;
+        background-color: #FBFCFD;
+        border-top-width: 0;
+        background-image:url('nav_g.png');
+        background-repeat:repeat-x;
+        background-color: #FFFFFF;
+        /* opera specific markup */
+        border-bottom-left-radius: 4px;
+        border-bottom-right-radius: 4px;
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        /* firefox specific markup */
+        -moz-border-radius-bottomleft: 4px;
+        -moz-border-radius-bottomright: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        /* webkit specific markup */
+        -webkit-border-bottom-left-radius: 4px;
+        -webkit-border-bottom-right-radius: 4px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+        padding: 5px;
+}
+
+dl.reflist dd {
+        margin: 0px 0px 10px 0px;
+        padding: 5px;
+}
+
+.paramkey {
+	text-align: right;
+}
+
+.paramtype {
+	white-space: nowrap;
+}
+
+.paramname {
+	color: #602020;
+	white-space: nowrap;
+}
+.paramname em {
+	font-style: normal;
+}
+.paramname code {
+        line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+        margin-left: 0px;
+        padding-left: 0px;
+}       
+
+.params .paramname, .retval .paramname {
+        font-weight: bold;
+        vertical-align: top;
+}
+        
+.params .paramtype {
+        font-style: italic;
+        vertical-align: top;
+}       
+        
+.params .paramdir {
+        font-family: "courier new",courier,monospace;
+        vertical-align: top;
+}
+
+table.mlabels {
+	border-spacing: 0px;
+}
+
+td.mlabels-left {
+	width: 100%;
+	padding: 0px;
+}
+
+td.mlabels-right {
+	vertical-align: bottom;
+	padding: 0px;
+	white-space: nowrap;
+}
+
+span.mlabels {
+        margin-left: 8px;
+}
+
+span.mlabel {
+        background-color: #728DC1;
+        border-top:1px solid #5373B4;
+        border-left:1px solid #5373B4;
+        border-right:1px solid #C4CFE5;
+        border-bottom:1px solid #C4CFE5;
+	text-shadow: none;
+	color: white;
+	margin-right: 4px;
+	padding: 2px 3px;
+	border-radius: 3px;
+	font-size: 7pt;
+	white-space: nowrap;
+	vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view inside a (index) page */
+
+div.directory {
+        margin: 10px 0px;
+        border-top: 1px solid #9CAFD4;
+        border-bottom: 1px solid #9CAFD4;
+        width: 100%;
+}
+
+.directory table {
+        border-collapse:collapse;
+}
+
+.directory td {
+        margin: 0px;
+        padding: 0px;
+	vertical-align: top;
+}
+
+.directory td.entry {
+        white-space: nowrap;
+        padding-right: 6px;
+	padding-top: 3px;
+}
+
+.directory td.entry a {
+        outline:none;
+}
+
+.directory td.entry a img {
+        border: none;
+}
+
+.directory td.desc {
+        width: 100%;
+        padding-left: 6px;
+	padding-right: 6px;
+	padding-top: 3px;
+	border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+	padding-left: 6px;
+	background-color: #F7F8FB;
+}
+
+.directory img {
+	vertical-align: -30%;
+}
+
+.directory .levels {
+        white-space: nowrap;
+        width: 100%;
+        text-align: right;
+        font-size: 9pt;
+}
+
+.directory .levels span {
+        cursor: pointer;
+        padding-left: 2px;
+        padding-right: 2px;
+	color: #3D578C;
+}
+
+.arrow {
+    color: #9CAFD4;
+    -webkit-user-select: none;
+    -khtml-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+    cursor: pointer;
+    font-size: 80%;
+    display: inline-block;
+    width: 16px;
+    height: 22px;
+}
+
+.icon {
+    font-family: Arial, Helvetica;
+    font-weight: bold;
+    font-size: 12px;
+    height: 14px;
+    width: 16px;
+    display: inline-block;
+    background-color: #728DC1;
+    color: white;
+    text-align: center;
+    border-radius: 4px;
+    margin-left: 2px;
+    margin-right: 2px;
+}
+
+.icona {
+    width: 24px;
+    height: 22px;
+    display: inline-block;
+}
+
+.iconfopen {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('folderopen.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+.iconfclosed {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('folderclosed.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+.icondoc {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('doc.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+table.directory {
+    font: 400 14px Roboto,sans-serif;
+}
+
+/* @end */
+
+div.dynheader {
+        margin-top: 8px;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+address {
+	font-style: normal;
+	color: #2A3D61;
+}
+
+table.doxtable caption {
+	caption-side: top;
+}
+
+table.doxtable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+table.fieldtable {
+        /*width: 100%;*/
+        margin-bottom: 10px;
+        border: 1px solid #A8B8D9;
+        border-spacing: 0px;
+        -moz-border-radius: 4px;
+        -webkit-border-radius: 4px;
+        border-radius: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+        -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+        padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+        white-space: nowrap;
+        border-right: 1px solid #A8B8D9;
+        border-bottom: 1px solid #A8B8D9;
+        vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+        padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+        border-bottom: 1px solid #A8B8D9;
+        /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+        margin-top: 0px;
+}       
+        
+.fieldtable td.fielddoc p:last-child {
+        margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+        border-bottom: none;
+}
+
+.fieldtable th {
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+        font-size: 90%;
+        color: #253555;
+        padding-bottom: 4px;
+        padding-top: 5px;
+        text-align:left;
+        font-weight: 400;
+        -moz-border-radius-topleft: 4px;
+        -moz-border-radius-topright: 4px;
+        -webkit-border-top-left-radius: 4px;
+        -webkit-border-top-right-radius: 4px;
+        border-top-left-radius: 4px;
+        border-top-right-radius: 4px;
+        border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+	top: 0px;
+	left: 10px;
+	height: 36px;
+	background-image: url('tab_b.png');
+	z-index: 101;
+	overflow: hidden;
+	font-size: 13px;
+}
+
+.navpath ul
+{
+	font-size: 11px;
+	background-image:url('tab_b.png');
+	background-repeat:repeat-x;
+	background-position: 0 -5px;
+	height:30px;
+	line-height:30px;
+	color:#8AA0CC;
+	border:solid 1px #C2CDE4;
+	overflow:hidden;
+	margin:0px;
+	padding:0px;
+}
+
+.navpath li
+{
+	list-style-type:none;
+	float:left;
+	padding-left:10px;
+	padding-right:15px;
+	background-image:url('bc_s.png');
+	background-repeat:no-repeat;
+	background-position:right;
+	color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+	height:32px;
+	display:block;
+	text-decoration: none;
+	outline: none;
+	color: #283A5D;
+	font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+	text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+	text-decoration: none;        
+}
+
+.navpath li.navelem a:hover
+{
+	color:#6884BD;
+}
+
+.navpath li.footer
+{
+        list-style-type:none;
+        float:right;
+        padding-left:10px;
+        padding-right:15px;
+        background-image:none;
+        background-repeat:no-repeat;
+        background-position:right;
+        color:#364D7C;
+        font-size: 8pt;
+}
+
+
+div.summary
+{
+	float: right;
+	font-size: 8pt;
+	padding-right: 5px;
+	width: 50%;
+	text-align: right;
+}       
+
+div.summary a
+{
+	white-space: nowrap;
+}
+
+table.classindex
+{
+        margin: 10px;
+        white-space: nowrap;
+        margin-left: 3%;
+        margin-right: 3%;
+        width: 94%;
+        border: 0;
+        border-spacing: 0; 
+        padding: 0;
+}
+
+div.ingroups
+{
+	font-size: 8pt;
+	width: 50%;
+	text-align: left;
+}
+
+div.ingroups a
+{
+	white-space: nowrap;
+}
+
+div.header
+{
+        background-image:url('nav_h.png');
+        background-repeat:repeat-x;
+	background-color: #F9FAFC;
+	margin:  0px;
+	border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+	padding: 5px 5px 5px 10px;
+}
+
+dl
+{
+        padding: 0 0 0 10px;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
+{
+	margin-left: 0px;
+	padding-left: 0px;
+}
+
+dl.note
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #D0C000;
+}
+
+dl.warning, dl.attention
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #00D000;
+}
+
+dl.deprecated
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #505050;
+}
+
+dl.todo
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #00C0E0;
+}
+
+dl.test
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #3030E0;
+}
+
+dl.bug
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #C08050;
+}
+
+dl.section dd {
+	margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+	text-align: center;
+	vertical-align: bottom;
+	border-collapse: separate;
+}
+ 
+#projectlogo img
+{ 
+	border: 0px none;
+}
+ 
+#projectalign
+{
+        vertical-align: middle;
+}
+
+#projectname
+{
+	font: 300% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 2px 0px;
+}
+    
+#projectbrief
+{
+	font: 120% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#projectnumber
+{
+	font: 50% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#titlearea
+{
+	padding: 0px;
+	margin: 0px;
+	width: 100%;
+	border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+        text-align: center;
+}
+
+.dotgraph
+{
+        text-align: center;
+}
+
+.mscgraph
+{
+        text-align: center;
+}
+
+.plantumlgraph
+{
+        text-align: center;
+}
+
+.diagraph
+{
+        text-align: center;
+}
+
+.caption
+{
+	font-weight: bold;
+}
+
+div.zoom
+{
+	border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+        margin-bottom:50px;
+}
+
+dl.citelist dt {
+        color:#334975;
+        float:left;
+        font-weight:bold;
+        margin-right:10px;
+        padding:5px;
+}
+
+dl.citelist dd {
+        margin:2px 0;
+        padding:5px 0;
+}
+
+div.toc {
+        padding: 14px 25px;
+        background-color: #F4F6FA;
+        border: 1px solid #D8DFEE;
+        border-radius: 7px 7px 7px 7px;
+        float: right;
+        height: auto;
+        margin: 0 8px 10px 10px;
+        width: 200px;
+}
+
+div.toc li {
+        background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+        font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+        margin-top: 5px;
+        padding-left: 10px;
+        padding-top: 2px;
+}
+
+div.toc h3 {
+        font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+	color: #4665A2;
+        border-bottom: 0 none;
+        margin: 0;
+}
+
+div.toc ul {
+        list-style: none outside none;
+        border: medium none;
+        padding: 0px;
+}       
+
+div.toc li.level1 {
+        margin-left: 0px;
+}
+
+div.toc li.level2 {
+        margin-left: 15px;
+}
+
+div.toc li.level3 {
+        margin-left: 30px;
+}
+
+div.toc li.level4 {
+        margin-left: 45px;
+}
+
+.inherit_header {
+        font-weight: bold;
+        color: gray;
+        cursor: pointer;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+.inherit_header td {
+        padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+        display: none;
+}
+
+tr.heading h2 {
+        margin-top: 12px;
+        margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+        position: absolute;
+        display: none;
+}
+
+#powerTip {
+	cursor: default;
+	white-space: nowrap;
+	background-color: white;
+	border: 1px solid gray;
+	border-radius: 4px 4px 4px 4px;
+	box-shadow: 1px 1px 7px gray;
+	display: none;
+	font-size: smaller;
+	max-width: 80%;
+	opacity: 0.9;
+	padding: 1ex 1em 1em;
+	position: absolute;
+	z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+        color: grey;
+	font-style: italic;
+}
+
+#powerTip div.ttname a {
+        font-weight: bold;
+}
+
+#powerTip div.ttname {
+        font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+        color: #006318;
+}
+
+#powerTip div {
+        margin: 0px;
+        padding: 0px;
+        font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+	content: "";
+	position: absolute;
+	margin: 0px;
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.w:after,  #powerTip.w:before,
+#powerTip.e:after,  #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	border: solid transparent;
+	content: " ";
+	height: 0;
+	width: 0;
+	position: absolute;
+}
+
+#powerTip.n:after,  #powerTip.s:after,
+#powerTip.w:after,  #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+	border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before,  #powerTip.s:before,
+#powerTip.w:before,  #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+	border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+	top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+	border-top-color: #ffffff;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+#powerTip.n:before {
+	border-top-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+	left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+	right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+	left: 14px;
+}
+
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+	border-bottom-color: #ffffff;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+	border-bottom-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+	left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+	right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+	left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+	left: 100%;
+}
+#powerTip.e:after {
+	border-left-color: #ffffff;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.e:before {
+	border-left-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+	right: 100%;
+}
+#powerTip.w:after {
+	border-right-color: #ffffff;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.w:before {
+	border-right-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+@media print
+{
+  #top { display: none; }
+  #side-nav { display: none; }
+  #nav-path { display: none; }
+  body { overflow:visible; }
+  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+  .summary { display: none; }
+  .memitem { page-break-inside: avoid; }
+  #doc-content
+  {
+    margin-left:0 !important;
+    height:auto !important;
+    width:auto !important;
+    overflow:inherit;
+    display:inline;
+  }
+}
+
+/* @group Markdown */
+
+/*
+table.markdownTable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.markdownTable td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.markdownTableHead tr {
+}
+
+table.markdownTableBodyLeft td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+th.markdownTableHeadLeft {
+	text-align: left
+}
+
+th.markdownTableHeadRight {
+	text-align: right
+}
+
+th.markdownTableHeadCenter {
+	text-align: center
+}
+*/
+
+table.markdownTable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.markdownTable td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.markdownTable tr {
+}
+
+th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+th.markdownTableHeadLeft, td.markdownTableBodyLeft {
+	text-align: left
+}
+
+th.markdownTableHeadRight, td.markdownTableBodyRight {
+	text-align: right
+}
+
+th.markdownTableHeadCenter, td.markdownTableBodyCenter {
+	text-align: center
+}
+
+
+/* @end */
diff --git a/doc/1.1.0/libguac/doxygen.png b/doc/1.1.0/libguac/doxygen.png
new file mode 100644
index 0000000..3ff17d8
--- /dev/null
+++ b/doc/1.1.0/libguac/doxygen.png
Binary files differ
diff --git a/doc/1.1.0/libguac/dynsections.js b/doc/1.1.0/libguac/dynsections.js
new file mode 100644
index 0000000..c1ce122
--- /dev/null
+++ b/doc/1.1.0/libguac/dynsections.js
@@ -0,0 +1,120 @@
+/*
+ @licstart  The following is the entire license notice for the
+ JavaScript code in this file.
+
+ Copyright (C) 1997-2017 by Dimitri van Heesch
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ @licend  The above is the entire license notice
+ for the JavaScript code in this file
+ */
+function toggleVisibility(linkObj)
+{
+ var base = $(linkObj).attr('id');
+ var summary = $('#'+base+'-summary');
+ var content = $('#'+base+'-content');
+ var trigger = $('#'+base+'-trigger');
+ var src=$(trigger).attr('src');
+ if (content.is(':visible')===true) {
+   content.hide();
+   summary.show();
+   $(linkObj).addClass('closed').removeClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+   content.show();
+   summary.hide();
+   $(linkObj).removeClass('closed').addClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+ return false;
+}
+
+function updateStripes()
+{
+  $('table.directory tr').
+       removeClass('even').filter(':visible:even').addClass('even');
+}
+
+function toggleLevel(level)
+{
+  $('table.directory tr').each(function() {
+    var l = this.id.split('_').length-1;
+    var i = $('#img'+this.id.substring(3));
+    var a = $('#arr'+this.id.substring(3));
+    if (l<level+1) {
+      i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
+      a.html('&#9660;');
+      $(this).show();
+    } else if (l==level+1) {
+      i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
+      a.html('&#9654;');
+      $(this).show();
+    } else {
+      $(this).hide();
+    }
+  });
+  updateStripes();
+}
+
+function toggleFolder(id)
+{
+  // the clicked row
+  var currentRow = $('#row_'+id);
+
+  // all rows after the clicked row
+  var rows = currentRow.nextAll("tr");
+
+  var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
+
+  // only match elements AFTER this one (can't hide elements before)
+  var childRows = rows.filter(function() { return this.id.match(re); });
+
+  // first row is visible we are HIDING
+  if (childRows.filter(':first').is(':visible')===true) {
+    // replace down arrow by right arrow for current row
+    var currentRowSpans = currentRow.find("span");
+    currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+    currentRowSpans.filter(".arrow").html('&#9654;');
+    rows.filter("[id^=row_"+id+"]").hide(); // hide all children
+  } else { // we are SHOWING
+    // replace right arrow by down arrow for current row
+    var currentRowSpans = currentRow.find("span");
+    currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
+    currentRowSpans.filter(".arrow").html('&#9660;');
+    // replace down arrows by right arrows for child rows
+    var childRowsSpans = childRows.find("span");
+    childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+    childRowsSpans.filter(".arrow").html('&#9654;');
+    childRows.show(); //show all children
+  }
+  updateStripes();
+}
+
+
+function toggleInherit(id)
+{
+  var rows = $('tr.inherit.'+id);
+  var img = $('tr.inherit_header.'+id+' img');
+  var src = $(img).attr('src');
+  if (rows.filter(':first').is(':visible')===true) {
+    rows.css('display','none');
+    $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
+  } else {
+    rows.css('display','table-row'); // using show() causes jump in firefox
+    $(img).attr('src',src.substring(0,src.length-10)+'open.png');
+  }
+}
+/* @license-end */
diff --git a/doc/1.1.0/libguac/error-types_8h.html b/doc/1.1.0/libguac/error-types_8h.html
new file mode 100644
index 0000000..95fda57
--- /dev/null
+++ b/doc/1.1.0/libguac/error-types_8h.html
@@ -0,0 +1,195 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/error-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<div class="title">error-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to return values and errors.  
+<a href="#details">More...</a></p>
+
+<p><a href="error-types_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a1f4f9a73ee399e5dff424376eb4f9c86"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a> { <br />
+&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3">GUAC_STATUS_SUCCESS</a> = 0, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a">GUAC_STATUS_NO_MEMORY</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff">GUAC_STATUS_CLOSED</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3">GUAC_STATUS_TIMEOUT</a>, 
+<br />
+&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7">GUAC_STATUS_SEE_ERRNO</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a">GUAC_STATUS_IO_ERROR</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4">GUAC_STATUS_INVALID_ARGUMENT</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab">GUAC_STATUS_INTERNAL_ERROR</a>, 
+<br />
+&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3">GUAC_STATUS_NO_SPACE</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a">GUAC_STATUS_INPUT_TOO_LARGE</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d">GUAC_STATUS_RESULT_TOO_LARGE</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740">GUAC_STATUS_PERMISSION_DENIED</a>, 
+<br />
+&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55">GUAC_STATUS_BUSY</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7">GUAC_STATUS_NOT_AVAILABLE</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e">GUAC_STATUS_NOT_SUPPORTED</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c">GUAC_STATUS_NOT_INPLEMENTED</a>, 
+<br />
+&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a">GUAC_STATUS_TRY_AGAIN</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787">GUAC_STATUS_PROTOCOL_ERROR</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8">GUAC_STATUS_NOT_FOUND</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c">GUAC_STATUS_CANCELED</a>, 
+<br />
+&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4">GUAC_STATUS_OUT_OF_RANGE</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7">GUAC_STATUS_REFUSED</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546">GUAC_STATUS_TOO_MANY</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f">GUAC_STATUS_WOULD_BLOCK</a>
+<br />
+ }</td></tr>
+<tr class="memdesc:a1f4f9a73ee399e5dff424376eb4f9c86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return codes shared by all Guacamole functions which can fail.  <a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">More...</a><br /></td></tr>
+<tr class="separator:a1f4f9a73ee399e5dff424376eb4f9c86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to return values and errors. </p>
+</div><h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="a1f4f9a73ee399e5dff424376eb4f9c86"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1f4f9a73ee399e5dff424376eb4f9c86">&#9670;&nbsp;</a></span>guac_status</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Return codes shared by all Guacamole functions which can fail. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3"></a>GUAC_STATUS_SUCCESS&#160;</td><td class="fielddoc"><p>No errors occurred and the operation was successful. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a"></a>GUAC_STATUS_NO_MEMORY&#160;</td><td class="fielddoc"><p>Insufficient memory to complete the operation. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff"></a>GUAC_STATUS_CLOSED&#160;</td><td class="fielddoc"><p>The resource associated with the operation can no longer be used as it has reached the end of its normal lifecycle. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3"></a>GUAC_STATUS_TIMEOUT&#160;</td><td class="fielddoc"><p>Time ran out before the operation could complete. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7"></a>GUAC_STATUS_SEE_ERRNO&#160;</td><td class="fielddoc"><p>An error occurred, and further information about the error is already stored in errno. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a"></a>GUAC_STATUS_IO_ERROR&#160;</td><td class="fielddoc"><p>An I/O error prevented the operation from succeeding. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4"></a>GUAC_STATUS_INVALID_ARGUMENT&#160;</td><td class="fielddoc"><p>The operation could not be performed because an invalid argument was given. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab"></a>GUAC_STATUS_INTERNAL_ERROR&#160;</td><td class="fielddoc"><p>The operation failed due to a bug in the software or a serious system problem. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3"></a>GUAC_STATUS_NO_SPACE&#160;</td><td class="fielddoc"><p>Insufficient space remaining to complete the operation. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a"></a>GUAC_STATUS_INPUT_TOO_LARGE&#160;</td><td class="fielddoc"><p>The operation failed because the input provided is too large. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d"></a>GUAC_STATUS_RESULT_TOO_LARGE&#160;</td><td class="fielddoc"><p>The operation failed because the result could not be stored in the space provided. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740"></a>GUAC_STATUS_PERMISSION_DENIED&#160;</td><td class="fielddoc"><p>Permission was denied to perform the operation. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55"></a>GUAC_STATUS_BUSY&#160;</td><td class="fielddoc"><p>The operation could not be performed because associated resources are busy. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7"></a>GUAC_STATUS_NOT_AVAILABLE&#160;</td><td class="fielddoc"><p>The operation could not be performed because, while the associated resources do exist, they are not currently available for use. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e"></a>GUAC_STATUS_NOT_SUPPORTED&#160;</td><td class="fielddoc"><p>The requested operation is not supported. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c"></a>GUAC_STATUS_NOT_INPLEMENTED&#160;</td><td class="fielddoc"><p>Support for the requested operation is not yet implemented. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a"></a>GUAC_STATUS_TRY_AGAIN&#160;</td><td class="fielddoc"><p>The operation is temporarily unable to be performed, but may succeed if reattempted. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787"></a>GUAC_STATUS_PROTOCOL_ERROR&#160;</td><td class="fielddoc"><p>A violation of the Guacamole protocol occurred. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8"></a>GUAC_STATUS_NOT_FOUND&#160;</td><td class="fielddoc"><p>The operation could not be performed because the requested resources do not exist. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c"></a>GUAC_STATUS_CANCELED&#160;</td><td class="fielddoc"><p>The operation was canceled prior to completion. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4"></a>GUAC_STATUS_OUT_OF_RANGE&#160;</td><td class="fielddoc"><p>The operation could not be performed because input values are outside the allowed range. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7"></a>GUAC_STATUS_REFUSED&#160;</td><td class="fielddoc"><p>The operation could not be performed because access to an underlying resource is explicitly not allowed, though not necessarily due to permissions. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546"></a>GUAC_STATUS_TOO_MANY&#160;</td><td class="fielddoc"><p>The operation failed because too many resources are already in use. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f"></a>GUAC_STATUS_WOULD_BLOCK&#160;</td><td class="fielddoc"><p>The operation was not performed because it would otherwise block. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/error-types_8h_source.html b/doc/1.1.0/libguac/error-types_8h_source.html
new file mode 100644
index 0000000..e587683
--- /dev/null
+++ b/doc/1.1.0/libguac/error-types_8h_source.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/error-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">error-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="error-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_ERROR_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_ERROR_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">   32</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a> {</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3">   37</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3">GUAC_STATUS_SUCCESS</a> = 0,</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a">   42</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a">GUAC_STATUS_NO_MEMORY</a>,</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff">   48</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff">GUAC_STATUS_CLOSED</a>,</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3">   53</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3">GUAC_STATUS_TIMEOUT</a>,</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7">   59</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7">GUAC_STATUS_SEE_ERRNO</a>,</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a">   64</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a">GUAC_STATUS_IO_ERROR</a>,</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4">   70</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4">GUAC_STATUS_INVALID_ARGUMENT</a>,</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab">   76</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab">GUAC_STATUS_INTERNAL_ERROR</a>,</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3">   81</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3">GUAC_STATUS_NO_SPACE</a>,</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a">   86</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a">GUAC_STATUS_INPUT_TOO_LARGE</a>,</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d">   92</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d">GUAC_STATUS_RESULT_TOO_LARGE</a>,</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740">   97</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740">GUAC_STATUS_PERMISSION_DENIED</a>,</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55">  103</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55">GUAC_STATUS_BUSY</a>,</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7">  109</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7">GUAC_STATUS_NOT_AVAILABLE</a>,</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e">  114</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e">GUAC_STATUS_NOT_SUPPORTED</a>,</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c">  119</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c">GUAC_STATUS_NOT_INPLEMENTED</a>,</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a">  125</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a">GUAC_STATUS_TRY_AGAIN</a>,</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787">  130</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787">GUAC_STATUS_PROTOCOL_ERROR</a>,</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8">  136</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8">GUAC_STATUS_NOT_FOUND</a>,</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c">  141</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c">GUAC_STATUS_CANCELED</a>,</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4">  147</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4">GUAC_STATUS_OUT_OF_RANGE</a>,</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7">  154</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7">GUAC_STATUS_REFUSED</a>,</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546">  159</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546">GUAC_STATUS_TOO_MANY</a>,</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f">  164</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f">GUAC_STATUS_WOULD_BLOCK</a></div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;} <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a>;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a">GUAC_STATUS_NO_MEMORY</a></div><div class="ttdoc">Insufficient memory to complete the operation. </div><div class="ttdef"><b>Definition:</b> error-types.h:42</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4">GUAC_STATUS_OUT_OF_RANGE</a></div><div class="ttdoc">The operation could not be performed because input values are outside the allowed range...</div><div class="ttdef"><b>Definition:</b> error-types.h:147</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d">GUAC_STATUS_RESULT_TOO_LARGE</a></div><div class="ttdoc">The operation failed because the result could not be stored in the space provided. </div><div class="ttdef"><b>Definition:</b> error-types.h:92</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a">GUAC_STATUS_INPUT_TOO_LARGE</a></div><div class="ttdoc">The operation failed because the input provided is too large. </div><div class="ttdef"><b>Definition:</b> error-types.h:86</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab">GUAC_STATUS_INTERNAL_ERROR</a></div><div class="ttdoc">The operation failed due to a bug in the software or a serious system problem. </div><div class="ttdef"><b>Definition:</b> error-types.h:76</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c">GUAC_STATUS_CANCELED</a></div><div class="ttdoc">The operation was canceled prior to completion. </div><div class="ttdef"><b>Definition:</b> error-types.h:141</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546">GUAC_STATUS_TOO_MANY</a></div><div class="ttdoc">The operation failed because too many resources are already in use. </div><div class="ttdef"><b>Definition:</b> error-types.h:159</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a></div><div class="ttdeci">guac_status</div><div class="ttdoc">Return codes shared by all Guacamole functions which can fail. </div><div class="ttdef"><b>Definition:</b> error-types.h:32</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff">GUAC_STATUS_CLOSED</a></div><div class="ttdoc">The resource associated with the operation can no longer be used as it has reached the end of its nor...</div><div class="ttdef"><b>Definition:</b> error-types.h:48</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7">GUAC_STATUS_NOT_AVAILABLE</a></div><div class="ttdoc">The operation could not be performed because, while the associated resources do exist, they are not currently available for use. </div><div class="ttdef"><b>Definition:</b> error-types.h:109</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8">GUAC_STATUS_NOT_FOUND</a></div><div class="ttdoc">The operation could not be performed because the requested resources do not exist. </div><div class="ttdef"><b>Definition:</b> error-types.h:136</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4">GUAC_STATUS_INVALID_ARGUMENT</a></div><div class="ttdoc">The operation could not be performed because an invalid argument was given. </div><div class="ttdef"><b>Definition:</b> error-types.h:70</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a">GUAC_STATUS_TRY_AGAIN</a></div><div class="ttdoc">The operation is temporarily unable to be performed, but may succeed if reattempted. </div><div class="ttdef"><b>Definition:</b> error-types.h:125</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7">GUAC_STATUS_SEE_ERRNO</a></div><div class="ttdoc">An error occurred, and further information about the error is already stored in errno. </div><div class="ttdef"><b>Definition:</b> error-types.h:59</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a">GUAC_STATUS_IO_ERROR</a></div><div class="ttdoc">An I/O error prevented the operation from succeeding. </div><div class="ttdef"><b>Definition:</b> error-types.h:64</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787">GUAC_STATUS_PROTOCOL_ERROR</a></div><div class="ttdoc">A violation of the Guacamole protocol occurred. </div><div class="ttdef"><b>Definition:</b> error-types.h:130</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3">GUAC_STATUS_NO_SPACE</a></div><div class="ttdoc">Insufficient space remaining to complete the operation. </div><div class="ttdef"><b>Definition:</b> error-types.h:81</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7">GUAC_STATUS_REFUSED</a></div><div class="ttdoc">The operation could not be performed because access to an underlying resource is explicitly not allow...</div><div class="ttdef"><b>Definition:</b> error-types.h:154</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f">GUAC_STATUS_WOULD_BLOCK</a></div><div class="ttdoc">The operation was not performed because it would otherwise block. </div><div class="ttdef"><b>Definition:</b> error-types.h:164</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c">GUAC_STATUS_NOT_INPLEMENTED</a></div><div class="ttdoc">Support for the requested operation is not yet implemented. </div><div class="ttdef"><b>Definition:</b> error-types.h:119</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740">GUAC_STATUS_PERMISSION_DENIED</a></div><div class="ttdoc">Permission was denied to perform the operation. </div><div class="ttdef"><b>Definition:</b> error-types.h:97</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e">GUAC_STATUS_NOT_SUPPORTED</a></div><div class="ttdoc">The requested operation is not supported. </div><div class="ttdef"><b>Definition:</b> error-types.h:114</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3">GUAC_STATUS_SUCCESS</a></div><div class="ttdoc">No errors occurred and the operation was successful. </div><div class="ttdef"><b>Definition:</b> error-types.h:37</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55">GUAC_STATUS_BUSY</a></div><div class="ttdoc">The operation could not be performed because associated resources are busy. </div><div class="ttdef"><b>Definition:</b> error-types.h:103</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3">GUAC_STATUS_TIMEOUT</a></div><div class="ttdoc">Time ran out before the operation could complete. </div><div class="ttdef"><b>Definition:</b> error-types.h:53</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/error_8h.html b/doc/1.1.0/libguac/error_8h.html
new file mode 100644
index 0000000..858dee9
--- /dev/null
+++ b/doc/1.1.0/libguac/error_8h.html
@@ -0,0 +1,187 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/error.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">error.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures required for handling return values and errors.  
+<a href="#details">More...</a></p>
+
+<p><a href="error_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a44aa5f7b9e896438fcdf16fe7feefd07"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07">guac_error</a>&#160;&#160;&#160;(*__guac_error())</td></tr>
+<tr class="memdesc:a44aa5f7b9e896438fcdf16fe7feefd07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the status code associated with the error which occurred during the last function call.  <a href="#a44aa5f7b9e896438fcdf16fe7feefd07">More...</a><br /></td></tr>
+<tr class="separator:a44aa5f7b9e896438fcdf16fe7feefd07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96ab3903ba0e97c745e8bfb006e123cd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd">guac_error_message</a>&#160;&#160;&#160;(*__guac_error_message())</td></tr>
+<tr class="memdesc:a96ab3903ba0e97c745e8bfb006e123cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a message describing the error which occurred during the last function call.  <a href="#a96ab3903ba0e97c745e8bfb006e123cd">More...</a><br /></td></tr>
+<tr class="separator:a96ab3903ba0e97c745e8bfb006e123cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a44aa5f7b9e896438fcdf16fe7feefd07"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07">guac_error</a>&#160;&#160;&#160;(*__guac_error())</td></tr>
+<tr class="memdesc:a44aa5f7b9e896438fcdf16fe7feefd07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the status code associated with the error which occurred during the last function call.  <a href="#a44aa5f7b9e896438fcdf16fe7feefd07">More...</a><br /></td></tr>
+<tr class="separator:a44aa5f7b9e896438fcdf16fe7feefd07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96ab3903ba0e97c745e8bfb006e123cd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd">guac_error_message</a>&#160;&#160;&#160;(*__guac_error_message())</td></tr>
+<tr class="memdesc:a96ab3903ba0e97c745e8bfb006e123cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a message describing the error which occurred during the last function call.  <a href="#a96ab3903ba0e97c745e8bfb006e123cd">More...</a><br /></td></tr>
+<tr class="separator:a96ab3903ba0e97c745e8bfb006e123cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a39a2290527ea7c3f0acb07f002c397b1"><td class="memItemLeft" align="right" valign="top"><a id="a39a2290527ea7c3f0acb07f002c397b1"></a>
+const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error_8h.html#a39a2290527ea7c3f0acb07f002c397b1">guac_status_string</a> (<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a> status)</td></tr>
+<tr class="memdesc:a39a2290527ea7c3f0acb07f002c397b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a human-readable explanation of the status code given. <br /></td></tr>
+<tr class="separator:a39a2290527ea7c3f0acb07f002c397b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures required for handling return values and errors. </p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="a44aa5f7b9e896438fcdf16fe7feefd07"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a44aa5f7b9e896438fcdf16fe7feefd07">&#9670;&nbsp;</a></span>guac_error <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define guac_error&#160;&#160;&#160;(*__guac_error())</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the status code associated with the error which occurred during the last function call. </p>
+<p>This value will only be set by functions documented to use it (most libguac functions), and is undefined if no error occurred.</p>
+<p>The storage of this value is thread-local. Assignment of a status code to guac_error in one thread will not affect its value in another thread. </p>
+
+</div>
+</div>
+<a id="a44aa5f7b9e896438fcdf16fe7feefd07"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a44aa5f7b9e896438fcdf16fe7feefd07">&#9670;&nbsp;</a></span>guac_error <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define guac_error&#160;&#160;&#160;(*__guac_error())</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the status code associated with the error which occurred during the last function call. </p>
+<p>This value will only be set by functions documented to use it (most libguac functions), and is undefined if no error occurred.</p>
+<p>The storage of this value is thread-local. Assignment of a status code to guac_error in one thread will not affect its value in another thread. </p>
+
+</div>
+</div>
+<a id="a96ab3903ba0e97c745e8bfb006e123cd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a96ab3903ba0e97c745e8bfb006e123cd">&#9670;&nbsp;</a></span>guac_error_message <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define guac_error_message&#160;&#160;&#160;(*__guac_error_message())</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns a message describing the error which occurred during the last function call. </p>
+<p>If an error occurred, but no message is associated with it, NULL is returned. This value is undefined if no error occurred.</p>
+<p>The storage of this value is thread-local. Assignment of a message to guac_error_message in one thread will not affect its value in another thread. </p>
+
+</div>
+</div>
+<a id="a96ab3903ba0e97c745e8bfb006e123cd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a96ab3903ba0e97c745e8bfb006e123cd">&#9670;&nbsp;</a></span>guac_error_message <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define guac_error_message&#160;&#160;&#160;(*__guac_error_message())</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns a message describing the error which occurred during the last function call. </p>
+<p>If an error occurred, but no message is associated with it, NULL is returned. This value is undefined if no error occurred.</p>
+<p>The storage of this value is thread-local. Assignment of a message to guac_error_message in one thread will not affect its value in another thread. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/error_8h_source.html b/doc/1.1.0/libguac/error_8h_source.html
new file mode 100644
index 0000000..f818251
--- /dev/null
+++ b/doc/1.1.0/libguac/error_8h_source.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/error.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">error.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="error_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef _GUAC_ERROR_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define _GUAC_ERROR_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="error-types_8h.html">error-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="error_8h.html#a39a2290527ea7c3f0acb07f002c397b1">guac_status_string</a>(<a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a> status);</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#define guac_error (*__guac_error())</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a>* __guac_error();</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#define guac_error_message (*__guac_error_message())</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>** __guac_error_message();</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="error_8h.html#a39a2290527ea7c3f0acb07f002c397b1">guac_status_string</a>(<a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a> status);</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07">   76</a></span>&#160;<span class="preprocessor">#define guac_error (*__guac_error())</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a>* __guac_error();</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd">   89</a></span>&#160;<span class="preprocessor">#define guac_error_message (*__guac_error_message())</span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>** __guac_error_message();</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a></div><div class="ttdeci">guac_status</div><div class="ttdoc">Return codes shared by all Guacamole functions which can fail. </div><div class="ttdef"><b>Definition:</b> error-types.h:32</div></div>
+<div class="ttc" id="error_8h_html_a39a2290527ea7c3f0acb07f002c397b1"><div class="ttname"><a href="error_8h.html#a39a2290527ea7c3f0acb07f002c397b1">guac_status_string</a></div><div class="ttdeci">const char * guac_status_string(guac_status status)</div><div class="ttdoc">Returns a human-readable explanation of the status code given. </div></div>
+<div class="ttc" id="error-types_8h_html"><div class="ttname"><a href="error-types_8h.html">error-types.h</a></div><div class="ttdoc">Type definitions related to return values and errors. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/files.html b/doc/1.1.0/libguac/files.html
new file mode 100644
index 0000000..ac62f74
--- /dev/null
+++ b/doc/1.1.0/libguac/files.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: File List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">File List</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html" target="_self">guacamole</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="audio-fntypes_8h_source.html"><span class="icondoc"></span></a><a class="el" href="audio-fntypes_8h.html" target="_self">audio-fntypes.h</a></td><td class="desc">Function type definitions related to simple streaming audio </td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="audio-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="audio-types_8h.html" target="_self">audio-types.h</a></td><td class="desc">Type definitions related to simple streaming audio </td></tr>
+<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="audio_8h_source.html"><span class="icondoc"></span></a><a class="el" href="audio_8h.html" target="_self">audio.h</a></td><td class="desc">Provides functions and structures used for providing simple streaming audio </td></tr>
+<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="client-constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="client-constants_8h.html" target="_self">client-constants.h</a></td><td class="desc">Constants related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> </td></tr>
+<tr id="row_0_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="client-fntypes_8h_source.html"><span class="icondoc"></span></a><a class="el" href="client-fntypes_8h.html" target="_self">client-fntypes.h</a></td><td class="desc">Function type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> </td></tr>
+<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="client-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="client-types_8h.html" target="_self">client-types.h</a></td><td class="desc">Type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> </td></tr>
+<tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="client_8h_source.html"><span class="icondoc"></span></a><a class="el" href="client_8h.html" target="_self">client.h</a></td><td class="desc">Functions and structure contents for the Guacamole proxy client </td></tr>
+<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="error-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="error-types_8h.html" target="_self">error-types.h</a></td><td class="desc">Type definitions related to return values and errors </td></tr>
+<tr id="row_0_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="error_8h_source.html"><span class="icondoc"></span></a><a class="el" href="error_8h.html" target="_self">error.h</a></td><td class="desc">Provides functions and structures required for handling return values and errors </td></tr>
+<tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="hash_8h_source.html"><span class="icondoc"></span></a><a class="el" href="hash_8h.html" target="_self">hash.h</a></td><td class="desc">Provides functions and structures for producing likely-to-be-unique hash values for images </td></tr>
+<tr id="row_0_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="layer-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="layer-types_8h.html" target="_self">layer-types.h</a></td><td class="desc">Type definitions related to Guacamole layers </td></tr>
+<tr id="row_0_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="layer_8h_source.html"><span class="icondoc"></span></a><a class="el" href="layer_8h.html" target="_self">layer.h</a></td><td class="desc">Provides functions and structures required for allocating and using layers </td></tr>
+<tr id="row_0_12_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="object-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="object-types_8h.html" target="_self">object-types.h</a></td><td class="desc">Type definitions related to Guacamole protocol objects </td></tr>
+<tr id="row_0_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="object_8h_source.html"><span class="icondoc"></span></a><a class="el" href="object_8h.html" target="_self">object.h</a></td><td class="desc">Provides functions and structures required for allocating and using objects </td></tr>
+<tr id="row_0_14_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="parser-constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="parser-constants_8h.html" target="_self">parser-constants.h</a></td><td class="desc">Constants related to the Guacamole protocol parser </td></tr>
+<tr id="row_0_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="parser-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="parser-types_8h.html" target="_self">parser-types.h</a></td><td class="desc">Type definitions related to parsing the Guacamole protocol </td></tr>
+<tr id="row_0_16_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="parser_8h_source.html"><span class="icondoc"></span></a><a class="el" href="parser_8h.html" target="_self">parser.h</a></td><td class="desc">Provides functions and structures for parsing the Guacamole protocol </td></tr>
+<tr id="row_0_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="plugin-constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="plugin-constants_8h.html" target="_self">plugin-constants.h</a></td><td class="desc">Constants related to client plugins </td></tr>
+<tr id="row_0_18_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="plugin_8h_source.html"><span class="icondoc"></span></a><a class="el" href="plugin_8h.html" target="_self">plugin.h</a></td><td class="desc">Provides functions and structures required for handling a client plugin </td></tr>
+<tr id="row_0_19_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="pool-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="pool-types_8h.html" target="_self">pool-types.h</a></td><td class="desc">Type definitions related to the <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a> pool of unique integers </td></tr>
+<tr id="row_0_20_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="pool_8h_source.html"><span class="icondoc"></span></a><a class="el" href="pool_8h.html" target="_self">pool.h</a></td><td class="desc">Provides functions and structures for maintaining dynamically allocated and freed pools of integers </td></tr>
+<tr id="row_0_21_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="protocol-constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="protocol-constants_8h.html" target="_self">protocol-constants.h</a></td><td class="desc">Constants related to the Guacamole protocol </td></tr>
+<tr id="row_0_22_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="protocol-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="protocol-types_8h.html" target="_self">protocol-types.h</a></td><td class="desc">Type definitions related to the Guacamole protocol </td></tr>
+<tr id="row_0_23_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="protocol_8h_source.html"><span class="icondoc"></span></a><a class="el" href="protocol_8h.html" target="_self">protocol.h</a></td><td class="desc">Provides functions and structures required for communicating using the Guacamole protocol over a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection, such as that provided by <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> objects </td></tr>
+<tr id="row_0_24_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="socket-constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="socket-constants_8h.html" target="_self">socket-constants.h</a></td><td class="desc">Constants related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object </td></tr>
+<tr id="row_0_25_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="socket-fntypes_8h_source.html"><span class="icondoc"></span></a><a class="el" href="socket-fntypes_8h.html" target="_self">socket-fntypes.h</a></td><td class="desc">Function type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object </td></tr>
+<tr id="row_0_26_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="socket-ssl_8h_source.html"><span class="icondoc"></span></a><a class="el" href="socket-ssl_8h.html" target="_self">socket-ssl.h</a></td><td class="desc">Provides an SSL/TLS implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> </td></tr>
+<tr id="row_0_27_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="socket-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="socket-types_8h.html" target="_self">socket-types.h</a></td><td class="desc">Type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object </td></tr>
+<tr id="row_0_28_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="socket-wsa_8h_source.html"><span class="icondoc"></span></a><a class="el" href="socket-wsa_8h.html" target="_self">socket-wsa.h</a></td><td class="desc">Provides an implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> specific to the Windows Socket API (aka WSA or "winsock") </td></tr>
+<tr id="row_0_29_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="socket_8h_source.html"><span class="icondoc"></span></a><a class="el" href="socket_8h.html" target="_self">socket.h</a></td><td class="desc">Defines the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object and functionss for using and manipulating it </td></tr>
+<tr id="row_0_30_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="stream-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="stream-types_8h.html" target="_self">stream-types.h</a></td><td class="desc">Type definitions related to Guacamole protocol streams </td></tr>
+<tr id="row_0_31_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="stream_8h_source.html"><span class="icondoc"></span></a><a class="el" href="stream_8h.html" target="_self">stream.h</a></td><td class="desc">Provides functions and structures required for allocating and using streams </td></tr>
+<tr id="row_0_32_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="string_8h_source.html"><span class="icondoc"></span></a><a class="el" href="string_8h.html" target="_self">string.h</a></td><td class="desc">Provides convenience functions for manipulating strings </td></tr>
+<tr id="row_0_33_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="timestamp-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="timestamp-types_8h.html" target="_self">timestamp-types.h</a></td><td class="desc">Type definitions related to Guacamole protocol timestamps </td></tr>
+<tr id="row_0_34_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="timestamp_8h_source.html"><span class="icondoc"></span></a><a class="el" href="timestamp_8h.html" target="_self">timestamp.h</a></td><td class="desc">Provides functions and structures for creating timestamps </td></tr>
+<tr id="row_0_35_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="unicode_8h_source.html"><span class="icondoc"></span></a><a class="el" href="unicode_8h.html" target="_self">unicode.h</a></td><td class="desc">Provides functions for manipulating Unicode strings </td></tr>
+<tr id="row_0_36_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="user-constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="user-constants_8h.html" target="_self">user-constants.h</a></td><td class="desc">Constants related to the Guacamole user structure, <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> </td></tr>
+<tr id="row_0_37_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="user-fntypes_8h_source.html"><span class="icondoc"></span></a><a class="el" href="user-fntypes_8h.html" target="_self">user-fntypes.h</a></td><td class="desc">Function type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object </td></tr>
+<tr id="row_0_38_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="user-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="user-types_8h.html" target="_self">user-types.h</a></td><td class="desc">Type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object </td></tr>
+<tr id="row_0_39_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="user_8h_source.html"><span class="icondoc"></span></a><a class="el" href="user_8h.html" target="_self">user.h</a></td><td class="desc">Defines the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object, which represents a physical connection within a larger, possibly shared, logical connection represented by a <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/folderclosed.png b/doc/1.1.0/libguac/folderclosed.png
new file mode 100644
index 0000000..bb8ab35
--- /dev/null
+++ b/doc/1.1.0/libguac/folderclosed.png
Binary files differ
diff --git a/doc/1.1.0/libguac/folderopen.png b/doc/1.1.0/libguac/folderopen.png
new file mode 100644
index 0000000..d6c7f67
--- /dev/null
+++ b/doc/1.1.0/libguac/folderopen.png
Binary files differ
diff --git a/doc/1.1.0/libguac/functions.html b/doc/1.1.0/libguac/functions.html
new file mode 100644
index 0000000..f1eb9eb
--- /dev/null
+++ b/doc/1.1.0/libguac/functions.html
@@ -0,0 +1,365 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Data Fields</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:</div>
+
+<h3><a id="index_a"></a>- a -</h3><ul>
+<li>ack_handler
+: <a class="el" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">guac_stream</a>
+, <a class="el" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">guac_user</a>
+</li>
+<li>active
+: <a class="el" href="structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3">guac_pool</a>
+, <a class="el" href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">guac_user</a>
+</li>
+<li>argc
+: <a class="el" href="structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe">guac_parser</a>
+</li>
+<li>args
+: <a class="el" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">guac_client</a>
+</li>
+<li>argv
+: <a class="el" href="structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701">guac_parser</a>
+</li>
+<li>argv_handler
+: <a class="el" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">guac_user</a>
+</li>
+<li>audio_handler
+: <a class="el" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">guac_user</a>
+</li>
+<li>audio_mimetypes
+: <a class="el" href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">guac_user_info</a>
+</li>
+</ul>
+
+
+<h3><a id="index_b"></a>- b -</h3><ul>
+<li>begin_handler
+: <a class="el" href="structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6">guac_audio_encoder</a>
+</li>
+<li>blob_handler
+: <a class="el" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">guac_stream</a>
+, <a class="el" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">guac_user</a>
+</li>
+<li>bps
+: <a class="el" href="structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866">guac_audio_stream</a>
+</li>
+</ul>
+
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>channels
+: <a class="el" href="structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6">guac_audio_stream</a>
+</li>
+<li>client
+: <a class="el" href="structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba">guac_audio_stream</a>
+, <a class="el" href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">guac_user</a>
+</li>
+<li>clipboard_handler
+: <a class="el" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">guac_user</a>
+</li>
+<li>connected_users
+: <a class="el" href="structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2">guac_client</a>
+</li>
+<li>connection_id
+: <a class="el" href="structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094">guac_client</a>
+</li>
+<li>context
+: <a class="el" href="structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f">guac_socket_ssl_data</a>
+</li>
+</ul>
+
+
+<h3><a id="index_d"></a>- d -</h3><ul>
+<li>data
+: <a class="el" href="structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7">guac_audio_stream</a>
+, <a class="el" href="structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3">guac_client</a>
+, <a class="el" href="structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e">guac_object</a>
+, <a class="el" href="structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d">guac_socket</a>
+, <a class="el" href="structguac__stream.html#acdf20063ca408431862d901c9445b429">guac_stream</a>
+, <a class="el" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_e"></a>- e -</h3><ul>
+<li>encoder
+: <a class="el" href="structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d">guac_audio_stream</a>
+</li>
+<li>end_handler
+: <a class="el" href="structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92">guac_audio_encoder</a>
+, <a class="el" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">guac_stream</a>
+, <a class="el" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_f"></a>- f -</h3><ul>
+<li>fd
+: <a class="el" href="structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a">guac_socket_ssl_data</a>
+</li>
+<li>file_handler
+: <a class="el" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">guac_user</a>
+</li>
+<li>flush_handler
+: <a class="el" href="structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0">guac_audio_encoder</a>
+, <a class="el" href="structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b">guac_socket</a>
+</li>
+<li>free_handler
+: <a class="el" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">guac_client</a>
+, <a class="el" href="structguac__socket.html#a1044cde496cfe11c914c623dc1e29678">guac_socket</a>
+</li>
+</ul>
+
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>get_handler
+: <a class="el" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">guac_object</a>
+, <a class="el" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_i"></a>- i -</h3><ul>
+<li>image_mimetypes
+: <a class="el" href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">guac_user_info</a>
+</li>
+<li>index
+: <a class="el" href="structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba">guac_layer</a>
+, <a class="el" href="structguac__object.html#a643f03695d246bbf73b5c4942755a4b4">guac_object</a>
+, <a class="el" href="structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60">guac_stream</a>
+</li>
+<li>info
+: <a class="el" href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_j"></a>- j -</h3><ul>
+<li>join_handler
+: <a class="el" href="structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b">guac_audio_encoder</a>
+, <a class="el" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">guac_client</a>
+</li>
+</ul>
+
+
+<h3><a id="index_k"></a>- k -</h3><ul>
+<li>key_handler
+: <a class="el" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_l"></a>- l -</h3><ul>
+<li>last_frame_duration
+: <a class="el" href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">guac_user</a>
+</li>
+<li>last_received_timestamp
+: <a class="el" href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">guac_user</a>
+</li>
+<li>last_sent_timestamp
+: <a class="el" href="structguac__client.html#a0f3069566c7a5ca76ce4369715589dad">guac_client</a>
+</li>
+<li>last_write_timestamp
+: <a class="el" href="structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51">guac_socket</a>
+</li>
+<li>leave_handler
+: <a class="el" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">guac_client</a>
+, <a class="el" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">guac_user</a>
+</li>
+<li>lock_handler
+: <a class="el" href="structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471">guac_socket</a>
+</li>
+<li>log_handler
+: <a class="el" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">guac_client</a>
+</li>
+</ul>
+
+
+<h3><a id="index_m"></a>- m -</h3><ul>
+<li>mimetype
+: <a class="el" href="structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b">guac_audio_encoder</a>
+</li>
+<li>min_size
+: <a class="el" href="structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e">guac_pool</a>
+</li>
+<li>mouse_handler
+: <a class="el" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_o"></a>- o -</h3><ul>
+<li>opcode
+: <a class="el" href="structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1">guac_parser</a>
+</li>
+<li>optimal_height
+: <a class="el" href="structguac__user__info.html#a252079af642b62554566e8675dc43354">guac_user_info</a>
+</li>
+<li>optimal_resolution
+: <a class="el" href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">guac_user_info</a>
+</li>
+<li>optimal_width
+: <a class="el" href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">guac_user_info</a>
+</li>
+<li>owner
+: <a class="el" href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_p"></a>- p -</h3><ul>
+<li>pipe_handler
+: <a class="el" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">guac_user</a>
+</li>
+<li>processing_lag
+: <a class="el" href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">guac_user</a>
+</li>
+<li>put_handler
+: <a class="el" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">guac_object</a>
+, <a class="el" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_r"></a>- r -</h3><ul>
+<li>rate
+: <a class="el" href="structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9">guac_audio_stream</a>
+</li>
+<li>read_handler
+: <a class="el" href="structguac__socket.html#a10042a8e591737aec8d4db5a3423b250">guac_socket</a>
+</li>
+</ul>
+
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>select_handler
+: <a class="el" href="structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f">guac_socket</a>
+</li>
+<li>size_handler
+: <a class="el" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">guac_user</a>
+</li>
+<li>socket
+: <a class="el" href="structguac__client.html#aa634856fd3c522377ba7345f3308000e">guac_client</a>
+, <a class="el" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">guac_user</a>
+</li>
+<li>ssl
+: <a class="el" href="structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac">guac_socket_ssl_data</a>
+</li>
+<li>state
+: <a class="el" href="structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53">guac_client</a>
+, <a class="el" href="structguac__parser.html#a2773500f91b3cdb7de7bdea280228054">guac_parser</a>
+, <a class="el" href="structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b">guac_socket</a>
+</li>
+<li>stream
+: <a class="el" href="structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894">guac_audio_stream</a>
+</li>
+<li>sync_handler
+: <a class="el" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_t"></a>- t -</h3><ul>
+<li>timezone
+: <a class="el" href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078">guac_user_info</a>
+</li>
+</ul>
+
+
+<h3><a id="index_u"></a>- u -</h3><ul>
+<li>unlock_handler
+: <a class="el" href="structguac__socket.html#a67be8367b5e1b330ee151b22c692500b">guac_socket</a>
+</li>
+<li>user_id
+: <a class="el" href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_v"></a>- v -</h3><ul>
+<li>value
+: <a class="el" href="structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4">guac_pool_int</a>
+</li>
+<li>video_mimetypes
+: <a class="el" href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">guac_user_info</a>
+</li>
+</ul>
+
+
+<h3><a id="index_w"></a>- w -</h3><ul>
+<li>write_handler
+: <a class="el" href="structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74">guac_audio_encoder</a>
+, <a class="el" href="structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d">guac_socket</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/functions_vars.html b/doc/1.1.0/libguac/functions_vars.html
new file mode 100644
index 0000000..d71a599
--- /dev/null
+++ b/doc/1.1.0/libguac/functions_vars.html
@@ -0,0 +1,365 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Data Fields - Variables</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_a"></a>- a -</h3><ul>
+<li>ack_handler
+: <a class="el" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">guac_stream</a>
+, <a class="el" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">guac_user</a>
+</li>
+<li>active
+: <a class="el" href="structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3">guac_pool</a>
+, <a class="el" href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">guac_user</a>
+</li>
+<li>argc
+: <a class="el" href="structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe">guac_parser</a>
+</li>
+<li>args
+: <a class="el" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">guac_client</a>
+</li>
+<li>argv
+: <a class="el" href="structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701">guac_parser</a>
+</li>
+<li>argv_handler
+: <a class="el" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">guac_user</a>
+</li>
+<li>audio_handler
+: <a class="el" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">guac_user</a>
+</li>
+<li>audio_mimetypes
+: <a class="el" href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">guac_user_info</a>
+</li>
+</ul>
+
+
+<h3><a id="index_b"></a>- b -</h3><ul>
+<li>begin_handler
+: <a class="el" href="structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6">guac_audio_encoder</a>
+</li>
+<li>blob_handler
+: <a class="el" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">guac_stream</a>
+, <a class="el" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">guac_user</a>
+</li>
+<li>bps
+: <a class="el" href="structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866">guac_audio_stream</a>
+</li>
+</ul>
+
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>channels
+: <a class="el" href="structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6">guac_audio_stream</a>
+</li>
+<li>client
+: <a class="el" href="structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba">guac_audio_stream</a>
+, <a class="el" href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">guac_user</a>
+</li>
+<li>clipboard_handler
+: <a class="el" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">guac_user</a>
+</li>
+<li>connected_users
+: <a class="el" href="structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2">guac_client</a>
+</li>
+<li>connection_id
+: <a class="el" href="structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094">guac_client</a>
+</li>
+<li>context
+: <a class="el" href="structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f">guac_socket_ssl_data</a>
+</li>
+</ul>
+
+
+<h3><a id="index_d"></a>- d -</h3><ul>
+<li>data
+: <a class="el" href="structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7">guac_audio_stream</a>
+, <a class="el" href="structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3">guac_client</a>
+, <a class="el" href="structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e">guac_object</a>
+, <a class="el" href="structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d">guac_socket</a>
+, <a class="el" href="structguac__stream.html#acdf20063ca408431862d901c9445b429">guac_stream</a>
+, <a class="el" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_e"></a>- e -</h3><ul>
+<li>encoder
+: <a class="el" href="structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d">guac_audio_stream</a>
+</li>
+<li>end_handler
+: <a class="el" href="structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92">guac_audio_encoder</a>
+, <a class="el" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">guac_stream</a>
+, <a class="el" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_f"></a>- f -</h3><ul>
+<li>fd
+: <a class="el" href="structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a">guac_socket_ssl_data</a>
+</li>
+<li>file_handler
+: <a class="el" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">guac_user</a>
+</li>
+<li>flush_handler
+: <a class="el" href="structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0">guac_audio_encoder</a>
+, <a class="el" href="structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b">guac_socket</a>
+</li>
+<li>free_handler
+: <a class="el" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">guac_client</a>
+, <a class="el" href="structguac__socket.html#a1044cde496cfe11c914c623dc1e29678">guac_socket</a>
+</li>
+</ul>
+
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>get_handler
+: <a class="el" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">guac_object</a>
+, <a class="el" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_i"></a>- i -</h3><ul>
+<li>image_mimetypes
+: <a class="el" href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">guac_user_info</a>
+</li>
+<li>index
+: <a class="el" href="structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba">guac_layer</a>
+, <a class="el" href="structguac__object.html#a643f03695d246bbf73b5c4942755a4b4">guac_object</a>
+, <a class="el" href="structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60">guac_stream</a>
+</li>
+<li>info
+: <a class="el" href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_j"></a>- j -</h3><ul>
+<li>join_handler
+: <a class="el" href="structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b">guac_audio_encoder</a>
+, <a class="el" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">guac_client</a>
+</li>
+</ul>
+
+
+<h3><a id="index_k"></a>- k -</h3><ul>
+<li>key_handler
+: <a class="el" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_l"></a>- l -</h3><ul>
+<li>last_frame_duration
+: <a class="el" href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">guac_user</a>
+</li>
+<li>last_received_timestamp
+: <a class="el" href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">guac_user</a>
+</li>
+<li>last_sent_timestamp
+: <a class="el" href="structguac__client.html#a0f3069566c7a5ca76ce4369715589dad">guac_client</a>
+</li>
+<li>last_write_timestamp
+: <a class="el" href="structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51">guac_socket</a>
+</li>
+<li>leave_handler
+: <a class="el" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">guac_client</a>
+, <a class="el" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">guac_user</a>
+</li>
+<li>lock_handler
+: <a class="el" href="structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471">guac_socket</a>
+</li>
+<li>log_handler
+: <a class="el" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">guac_client</a>
+</li>
+</ul>
+
+
+<h3><a id="index_m"></a>- m -</h3><ul>
+<li>mimetype
+: <a class="el" href="structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b">guac_audio_encoder</a>
+</li>
+<li>min_size
+: <a class="el" href="structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e">guac_pool</a>
+</li>
+<li>mouse_handler
+: <a class="el" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_o"></a>- o -</h3><ul>
+<li>opcode
+: <a class="el" href="structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1">guac_parser</a>
+</li>
+<li>optimal_height
+: <a class="el" href="structguac__user__info.html#a252079af642b62554566e8675dc43354">guac_user_info</a>
+</li>
+<li>optimal_resolution
+: <a class="el" href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">guac_user_info</a>
+</li>
+<li>optimal_width
+: <a class="el" href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">guac_user_info</a>
+</li>
+<li>owner
+: <a class="el" href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_p"></a>- p -</h3><ul>
+<li>pipe_handler
+: <a class="el" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">guac_user</a>
+</li>
+<li>processing_lag
+: <a class="el" href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">guac_user</a>
+</li>
+<li>put_handler
+: <a class="el" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">guac_object</a>
+, <a class="el" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_r"></a>- r -</h3><ul>
+<li>rate
+: <a class="el" href="structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9">guac_audio_stream</a>
+</li>
+<li>read_handler
+: <a class="el" href="structguac__socket.html#a10042a8e591737aec8d4db5a3423b250">guac_socket</a>
+</li>
+</ul>
+
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>select_handler
+: <a class="el" href="structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f">guac_socket</a>
+</li>
+<li>size_handler
+: <a class="el" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">guac_user</a>
+</li>
+<li>socket
+: <a class="el" href="structguac__client.html#aa634856fd3c522377ba7345f3308000e">guac_client</a>
+, <a class="el" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">guac_user</a>
+</li>
+<li>ssl
+: <a class="el" href="structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac">guac_socket_ssl_data</a>
+</li>
+<li>state
+: <a class="el" href="structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53">guac_client</a>
+, <a class="el" href="structguac__parser.html#a2773500f91b3cdb7de7bdea280228054">guac_parser</a>
+, <a class="el" href="structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b">guac_socket</a>
+</li>
+<li>stream
+: <a class="el" href="structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894">guac_audio_stream</a>
+</li>
+<li>sync_handler
+: <a class="el" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_t"></a>- t -</h3><ul>
+<li>timezone
+: <a class="el" href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078">guac_user_info</a>
+</li>
+</ul>
+
+
+<h3><a id="index_u"></a>- u -</h3><ul>
+<li>unlock_handler
+: <a class="el" href="structguac__socket.html#a67be8367b5e1b330ee151b22c692500b">guac_socket</a>
+</li>
+<li>user_id
+: <a class="el" href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_v"></a>- v -</h3><ul>
+<li>value
+: <a class="el" href="structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4">guac_pool_int</a>
+</li>
+<li>video_mimetypes
+: <a class="el" href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">guac_user_info</a>
+</li>
+</ul>
+
+
+<h3><a id="index_w"></a>- w -</h3><ul>
+<li>write_handler
+: <a class="el" href="structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74">guac_audio_encoder</a>
+, <a class="el" href="structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d">guac_socket</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals.html b/doc/1.1.0/libguac/globals.html
new file mode 100644
index 0000000..1439078
--- /dev/null
+++ b/doc/1.1.0/libguac/globals.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_a"></a>- a -</h3><ul>
+<li>guac_audio_encoder_begin_handler
+: <a class="el" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_end_handler
+: <a class="el" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_flush_handler
+: <a class="el" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_join_handler
+: <a class="el" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_write_handler
+: <a class="el" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">audio-fntypes.h</a>
+</li>
+<li>guac_audio_stream_add_user()
+: <a class="el" href="audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864">audio.h</a>
+</li>
+<li>guac_audio_stream_alloc()
+: <a class="el" href="audio_8h.html#afc1fc0133504e718edf4756fac5e9c30">audio.h</a>
+</li>
+<li>guac_audio_stream_flush()
+: <a class="el" href="audio_8h.html#af75feccacea2b14ee946064cf623f143">audio.h</a>
+</li>
+<li>guac_audio_stream_free()
+: <a class="el" href="audio_8h.html#adcc872292b5ba6c39905610b2bccbf31">audio.h</a>
+</li>
+<li>guac_audio_stream_reset()
+: <a class="el" href="audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad">audio.h</a>
+</li>
+<li>guac_audio_stream_write_pcm()
+: <a class="el" href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2">audio.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_c.html b/doc/1.1.0/libguac/globals_c.html
new file mode 100644
index 0000000..ce7946c
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_c.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>guac_client_abort()
+: <a class="el" href="client_8h.html#a62a29f7820deaff00a10ec79aa81aed4">client.h</a>
+</li>
+<li>guac_client_add_user()
+: <a class="el" href="client_8h.html#af66d105dfd1453ec46b423e6b25fa371">client.h</a>
+</li>
+<li>guac_client_alloc()
+: <a class="el" href="client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a">client.h</a>
+</li>
+<li>guac_client_alloc_buffer()
+: <a class="el" href="client_8h.html#af661d3fedd9683631bdc7d1e3205e379">client.h</a>
+</li>
+<li>guac_client_alloc_layer()
+: <a class="el" href="client_8h.html#a2085758db585bb9d09d3860ec0fc9587">client.h</a>
+</li>
+<li>guac_client_alloc_stream()
+: <a class="el" href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9">client.h</a>
+</li>
+<li>guac_client_end_frame()
+: <a class="el" href="client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc">client.h</a>
+</li>
+<li>guac_client_for_owner()
+: <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a">client.h</a>
+</li>
+<li>guac_client_for_user()
+: <a class="el" href="client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03">client.h</a>
+</li>
+<li>guac_client_foreach_user()
+: <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077">client.h</a>
+</li>
+<li>guac_client_free()
+: <a class="el" href="client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427">client.h</a>
+</li>
+<li>guac_client_free_buffer()
+: <a class="el" href="client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b">client.h</a>
+</li>
+<li>guac_client_free_handler
+: <a class="el" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">client-fntypes.h</a>
+</li>
+<li>guac_client_free_layer()
+: <a class="el" href="client_8h.html#a4e5b374211012d1897792335112dcb89">client.h</a>
+</li>
+<li>guac_client_free_stream()
+: <a class="el" href="client_8h.html#af0103a5aae8ba76badd2e68e827f6782">client.h</a>
+</li>
+<li>guac_client_get_processing_lag()
+: <a class="el" href="client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c">client.h</a>
+</li>
+<li>guac_client_init_handler
+: <a class="el" href="client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c">client-fntypes.h</a>
+</li>
+<li>guac_client_load_plugin()
+: <a class="el" href="client_8h.html#afa2b90d686c56cf753c36718ec085f35">client.h</a>
+</li>
+<li>guac_client_log()
+: <a class="el" href="client_8h.html#ad53666bbe29346497cabb04fc9628208">client.h</a>
+</li>
+<li>guac_client_log_handler
+: <a class="el" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">client-fntypes.h</a>
+</li>
+<li>guac_client_log_level
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">client-types.h</a>
+</li>
+<li>guac_client_remove_user()
+: <a class="el" href="client_8h.html#a02832d5be5330dc3de524b497b7c6dfa">client.h</a>
+</li>
+<li>guac_client_state
+: <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">client-types.h</a>
+</li>
+<li>guac_client_stop()
+: <a class="el" href="client_8h.html#a022d4b5587c84f2963b176ab7999aa1b">client.h</a>
+</li>
+<li>guac_client_stream_argv()
+: <a class="el" href="client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f">client.h</a>
+</li>
+<li>guac_client_stream_jpeg()
+: <a class="el" href="client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf">client.h</a>
+</li>
+<li>guac_client_stream_png()
+: <a class="el" href="client_8h.html#a317b9d79afd0b0b473d7d359e0c33750">client.h</a>
+</li>
+<li>guac_client_stream_webp()
+: <a class="el" href="client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e">client.h</a>
+</li>
+<li>guac_client_supports_webp()
+: <a class="el" href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3">client.h</a>
+</li>
+<li>guac_composite_mode
+: <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">protocol-types.h</a>
+</li>
+<li>vguac_client_abort()
+: <a class="el" href="client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224">client.h</a>
+</li>
+<li>vguac_client_log()
+: <a class="el" href="client_8h.html#a37a0fa9cfc4c02236085e3852972f494">client.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_defs.html b/doc/1.1.0/libguac/globals_defs.html
new file mode 100644
index 0000000..be2c1fc
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_defs.html
@@ -0,0 +1,168 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_e"></a>- e -</h3><ul>
+<li>guac_error
+: <a class="el" href="error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07">error.h</a>
+</li>
+<li>guac_error_message
+: <a class="el" href="error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd">error.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>GUAC_BUFFER_POOL_INITIAL_SIZE
+: <a class="el" href="client-constants_8h.html#aa8a296e1032ff408ab141b0765fb9bfb">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_CLOSED_STREAM_INDEX
+: <a class="el" href="client-constants_8h.html#a6fda25106c4c454c22db2c7e042ee142">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_ID_PREFIX
+: <a class="el" href="client-constants_8h.html#a8e2b48136e5c358e012a1558d5e5f0c2">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MAX_STREAMS
+: <a class="el" href="client-constants_8h.html#ad9f977643c5ffee5c1eeb426664796a1">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_LEFT
+: <a class="el" href="client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_MIDDLE
+: <a class="el" href="client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_RIGHT
+: <a class="el" href="client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_SCROLL_DOWN
+: <a class="el" href="client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_SCROLL_UP
+: <a class="el" href="client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d">client-constants.h</a>
+</li>
+<li>GUAC_INSTRUCTION_MAX_DIGITS
+: <a class="el" href="parser-constants_8h.html#a408e5069154be109ad3dcf45cbc0b00f">parser-constants.h</a>
+</li>
+<li>GUAC_INSTRUCTION_MAX_ELEMENTS
+: <a class="el" href="parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46">parser-constants.h</a>
+</li>
+<li>GUAC_INSTRUCTION_MAX_LENGTH
+: <a class="el" href="parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744">parser-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_BLOB_MAX_LENGTH
+: <a class="el" href="protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166">protocol-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_LIBRARY_LIMIT
+: <a class="el" href="plugin-constants_8h.html#a03c00580f4455d35c1ed33ed4dcfe2fe">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_LIBRARY_PREFIX
+: <a class="el" href="plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_LIBRARY_SUFFIX
+: <a class="el" href="plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_NAME_LIMIT
+: <a class="el" href="plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621">plugin-constants.h</a>
+</li>
+<li>GUAC_SOCKET_KEEP_ALIVE_INTERVAL
+: <a class="el" href="socket-constants_8h.html#aa8820e76e3d3471bdc8771591ebf29f7">socket-constants.h</a>
+</li>
+<li>GUAC_SOCKET_OUTPUT_BUFFER_SIZE
+: <a class="el" href="socket-constants_8h.html#af93053e27466c566624301d7b32a68c3">socket-constants.h</a>
+</li>
+<li>GUAC_USER_CLOSED_STREAM_INDEX
+: <a class="el" href="user-constants_8h.html#a8749ef8d1917591b82b7747edc85d275">user-constants.h</a>
+</li>
+<li>GUAC_USER_ID_PREFIX
+: <a class="el" href="user-constants_8h.html#aa6442383e07f6aa68fbe504037101a87">user-constants.h</a>
+</li>
+<li>GUAC_USER_MAX_OBJECTS
+: <a class="el" href="user-constants_8h.html#afbdfab527f553d531ce690cabd4ae1e7">user-constants.h</a>
+</li>
+<li>GUAC_USER_MAX_STREAMS
+: <a class="el" href="user-constants_8h.html#a9e0884fe25345c84beac1c5a13b1c5ce">user-constants.h</a>
+</li>
+<li>GUAC_USER_OBJECT_ROOT_NAME
+: <a class="el" href="user-constants_8h.html#acb353db4f79b67678376bb521db182e5">user-constants.h</a>
+</li>
+<li>GUAC_USER_STREAM_INDEX_MIMETYPE
+: <a class="el" href="user-constants_8h.html#af3135ba0f5c4cf3099374f612446b490">user-constants.h</a>
+</li>
+<li>GUAC_USER_UNDEFINED_OBJECT_INDEX
+: <a class="el" href="user-constants_8h.html#ae0609bd43bffdfa9ebb8da62f8118c9f">user-constants.h</a>
+</li>
+<li>GUACAMOLE_PROTOCOL_VERSION
+: <a class="el" href="protocol-constants_8h.html#ab1706e67b56808564438ef853a8d2821">protocol-constants.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_e.html b/doc/1.1.0/libguac/globals_e.html
new file mode 100644
index 0000000..09f1d59
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_e.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_e"></a>- e -</h3><ul>
+<li>guac_error
+: <a class="el" href="error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07">error.h</a>
+</li>
+<li>guac_error_message
+: <a class="el" href="error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd">error.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_enum.html b/doc/1.1.0/libguac/globals_enum.html
new file mode 100644
index 0000000..bb2e0a8
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_enum.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>guac_client_log_level
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">client-types.h</a>
+</li>
+<li>guac_client_state
+: <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">client-types.h</a>
+</li>
+<li>guac_composite_mode
+: <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">protocol-types.h</a>
+</li>
+<li>guac_line_cap_style
+: <a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">protocol-types.h</a>
+</li>
+<li>guac_line_join_style
+: <a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">protocol-types.h</a>
+</li>
+<li>guac_parse_state
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">parser-types.h</a>
+</li>
+<li>guac_protocol_status
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">protocol-types.h</a>
+</li>
+<li>guac_socket_state
+: <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">socket-types.h</a>
+</li>
+<li>guac_status
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">error-types.h</a>
+</li>
+<li>guac_transfer_function
+: <a class="el" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">protocol-types.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_eval.html b/doc/1.1.0/libguac/globals_eval.html
new file mode 100644
index 0000000..8f80dad
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_eval.html
@@ -0,0 +1,251 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>GUAC_CLIENT_RUNNING
+: <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0">client-types.h</a>
+</li>
+<li>GUAC_CLIENT_STOPPING
+: <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd">client-types.h</a>
+</li>
+<li>GUAC_LOG_DEBUG
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b">client-types.h</a>
+</li>
+<li>GUAC_LOG_ERROR
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c">client-types.h</a>
+</li>
+<li>GUAC_LOG_INFO
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29">client-types.h</a>
+</li>
+<li>GUAC_LOG_TRACE
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb">client-types.h</a>
+</li>
+<li>GUAC_LOG_WARNING
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be">client-types.h</a>
+</li>
+<li>GUAC_PARSE_COMPLETE
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf">parser-types.h</a>
+</li>
+<li>GUAC_PARSE_CONTENT
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e">parser-types.h</a>
+</li>
+<li>GUAC_PARSE_ERROR
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc">parser-types.h</a>
+</li>
+<li>GUAC_PARSE_LENGTH
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc">parser-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SERVER_BUSY
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SERVER_ERROR
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SESSION_CLOSED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SESSION_CONFLICT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SUCCESS
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UNSUPPORTED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814">protocol-types.h</a>
+</li>
+<li>GUAC_SOCKET_CLOSED
+: <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e">socket-types.h</a>
+</li>
+<li>GUAC_SOCKET_OPEN
+: <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5">socket-types.h</a>
+</li>
+<li>GUAC_STATUS_BUSY
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55">error-types.h</a>
+</li>
+<li>GUAC_STATUS_CANCELED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c">error-types.h</a>
+</li>
+<li>GUAC_STATUS_CLOSED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff">error-types.h</a>
+</li>
+<li>GUAC_STATUS_INPUT_TOO_LARGE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_INTERNAL_ERROR
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab">error-types.h</a>
+</li>
+<li>GUAC_STATUS_INVALID_ARGUMENT
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4">error-types.h</a>
+</li>
+<li>GUAC_STATUS_IO_ERROR
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NO_MEMORY
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NO_SPACE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_AVAILABLE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_FOUND
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_INPLEMENTED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_SUPPORTED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e">error-types.h</a>
+</li>
+<li>GUAC_STATUS_OUT_OF_RANGE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4">error-types.h</a>
+</li>
+<li>GUAC_STATUS_PERMISSION_DENIED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740">error-types.h</a>
+</li>
+<li>GUAC_STATUS_PROTOCOL_ERROR
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787">error-types.h</a>
+</li>
+<li>GUAC_STATUS_REFUSED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7">error-types.h</a>
+</li>
+<li>GUAC_STATUS_RESULT_TOO_LARGE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d">error-types.h</a>
+</li>
+<li>GUAC_STATUS_SEE_ERRNO
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7">error-types.h</a>
+</li>
+<li>GUAC_STATUS_SUCCESS
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3">error-types.h</a>
+</li>
+<li>GUAC_STATUS_TIMEOUT
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3">error-types.h</a>
+</li>
+<li>GUAC_STATUS_TOO_MANY
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546">error-types.h</a>
+</li>
+<li>GUAC_STATUS_TRY_AGAIN
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_WOULD_BLOCK
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f">error-types.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_func.html b/doc/1.1.0/libguac/globals_func.html
new file mode 100644
index 0000000..e806421
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_func.html
@@ -0,0 +1,548 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_a"></a>- a -</h3><ul>
+<li>guac_audio_stream_add_user()
+: <a class="el" href="audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864">audio.h</a>
+</li>
+<li>guac_audio_stream_alloc()
+: <a class="el" href="audio_8h.html#afc1fc0133504e718edf4756fac5e9c30">audio.h</a>
+</li>
+<li>guac_audio_stream_flush()
+: <a class="el" href="audio_8h.html#af75feccacea2b14ee946064cf623f143">audio.h</a>
+</li>
+<li>guac_audio_stream_free()
+: <a class="el" href="audio_8h.html#adcc872292b5ba6c39905610b2bccbf31">audio.h</a>
+</li>
+<li>guac_audio_stream_reset()
+: <a class="el" href="audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad">audio.h</a>
+</li>
+<li>guac_audio_stream_write_pcm()
+: <a class="el" href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2">audio.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>guac_client_abort()
+: <a class="el" href="client_8h.html#a62a29f7820deaff00a10ec79aa81aed4">client.h</a>
+</li>
+<li>guac_client_add_user()
+: <a class="el" href="client_8h.html#af66d105dfd1453ec46b423e6b25fa371">client.h</a>
+</li>
+<li>guac_client_alloc()
+: <a class="el" href="client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a">client.h</a>
+</li>
+<li>guac_client_alloc_buffer()
+: <a class="el" href="client_8h.html#af661d3fedd9683631bdc7d1e3205e379">client.h</a>
+</li>
+<li>guac_client_alloc_layer()
+: <a class="el" href="client_8h.html#a2085758db585bb9d09d3860ec0fc9587">client.h</a>
+</li>
+<li>guac_client_alloc_stream()
+: <a class="el" href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9">client.h</a>
+</li>
+<li>guac_client_end_frame()
+: <a class="el" href="client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc">client.h</a>
+</li>
+<li>guac_client_for_owner()
+: <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a">client.h</a>
+</li>
+<li>guac_client_for_user()
+: <a class="el" href="client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03">client.h</a>
+</li>
+<li>guac_client_foreach_user()
+: <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077">client.h</a>
+</li>
+<li>guac_client_free()
+: <a class="el" href="client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427">client.h</a>
+</li>
+<li>guac_client_free_buffer()
+: <a class="el" href="client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b">client.h</a>
+</li>
+<li>guac_client_free_layer()
+: <a class="el" href="client_8h.html#a4e5b374211012d1897792335112dcb89">client.h</a>
+</li>
+<li>guac_client_free_stream()
+: <a class="el" href="client_8h.html#af0103a5aae8ba76badd2e68e827f6782">client.h</a>
+</li>
+<li>guac_client_get_processing_lag()
+: <a class="el" href="client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c">client.h</a>
+</li>
+<li>guac_client_load_plugin()
+: <a class="el" href="client_8h.html#afa2b90d686c56cf753c36718ec085f35">client.h</a>
+</li>
+<li>guac_client_log()
+: <a class="el" href="client_8h.html#ad53666bbe29346497cabb04fc9628208">client.h</a>
+</li>
+<li>guac_client_remove_user()
+: <a class="el" href="client_8h.html#a02832d5be5330dc3de524b497b7c6dfa">client.h</a>
+</li>
+<li>guac_client_stop()
+: <a class="el" href="client_8h.html#a022d4b5587c84f2963b176ab7999aa1b">client.h</a>
+</li>
+<li>guac_client_stream_argv()
+: <a class="el" href="client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f">client.h</a>
+</li>
+<li>guac_client_stream_jpeg()
+: <a class="el" href="client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf">client.h</a>
+</li>
+<li>guac_client_stream_png()
+: <a class="el" href="client_8h.html#a317b9d79afd0b0b473d7d359e0c33750">client.h</a>
+</li>
+<li>guac_client_stream_webp()
+: <a class="el" href="client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e">client.h</a>
+</li>
+<li>guac_client_supports_webp()
+: <a class="el" href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3">client.h</a>
+</li>
+<li>vguac_client_abort()
+: <a class="el" href="client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224">client.h</a>
+</li>
+<li>vguac_client_log()
+: <a class="el" href="client_8h.html#a37a0fa9cfc4c02236085e3852972f494">client.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_h"></a>- h -</h3><ul>
+<li>guac_hash_surface()
+: <a class="el" href="hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c">hash.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_p"></a>- p -</h3><ul>
+<li>guac_parser_alloc()
+: <a class="el" href="parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad">parser.h</a>
+</li>
+<li>guac_parser_append()
+: <a class="el" href="parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d">parser.h</a>
+</li>
+<li>guac_parser_expect()
+: <a class="el" href="parser_8h.html#ac54c94465aead463ce10e9a090b9b701">parser.h</a>
+</li>
+<li>guac_parser_free()
+: <a class="el" href="parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f">parser.h</a>
+</li>
+<li>guac_parser_length()
+: <a class="el" href="parser_8h.html#a8899dd607997fcffd78517947b17760b">parser.h</a>
+</li>
+<li>guac_parser_read()
+: <a class="el" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93">parser.h</a>
+</li>
+<li>guac_parser_shift()
+: <a class="el" href="parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">parser.h</a>
+</li>
+<li>guac_pool_alloc()
+: <a class="el" href="pool_8h.html#a3e7589997fdd734a6d6155badebd042f">pool.h</a>
+</li>
+<li>guac_pool_free()
+: <a class="el" href="pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb">pool.h</a>
+</li>
+<li>guac_pool_free_int()
+: <a class="el" href="pool_8h.html#ad90069a41689cf319f46af44bb113579">pool.h</a>
+</li>
+<li>guac_pool_next_int()
+: <a class="el" href="pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4">pool.h</a>
+</li>
+<li>guac_protocol_decode_base64()
+: <a class="el" href="protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec">protocol.h</a>
+</li>
+<li>guac_protocol_send_ack()
+: <a class="el" href="protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e">protocol.h</a>
+</li>
+<li>guac_protocol_send_arc()
+: <a class="el" href="protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3">protocol.h</a>
+</li>
+<li>guac_protocol_send_args()
+: <a class="el" href="protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6">protocol.h</a>
+</li>
+<li>guac_protocol_send_argv()
+: <a class="el" href="protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531">protocol.h</a>
+</li>
+<li>guac_protocol_send_audio()
+: <a class="el" href="protocol_8h.html#ab92edb38a4df2db402a013422cee6b42">protocol.h</a>
+</li>
+<li>guac_protocol_send_blob()
+: <a class="el" href="protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127">protocol.h</a>
+</li>
+<li>guac_protocol_send_blobs()
+: <a class="el" href="protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e">protocol.h</a>
+</li>
+<li>guac_protocol_send_body()
+: <a class="el" href="protocol_8h.html#aca9fb516e730233c33da297819f7ae7e">protocol.h</a>
+</li>
+<li>guac_protocol_send_cfill()
+: <a class="el" href="protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e">protocol.h</a>
+</li>
+<li>guac_protocol_send_clip()
+: <a class="el" href="protocol_8h.html#acbd1869635b752bbf52998613804df00">protocol.h</a>
+</li>
+<li>guac_protocol_send_clipboard()
+: <a class="el" href="protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64">protocol.h</a>
+</li>
+<li>guac_protocol_send_close()
+: <a class="el" href="protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a">protocol.h</a>
+</li>
+<li>guac_protocol_send_connect()
+: <a class="el" href="protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb">protocol.h</a>
+</li>
+<li>guac_protocol_send_copy()
+: <a class="el" href="protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda">protocol.h</a>
+</li>
+<li>guac_protocol_send_cstroke()
+: <a class="el" href="protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9">protocol.h</a>
+</li>
+<li>guac_protocol_send_cursor()
+: <a class="el" href="protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a">protocol.h</a>
+</li>
+<li>guac_protocol_send_curve()
+: <a class="el" href="protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5">protocol.h</a>
+</li>
+<li>guac_protocol_send_disconnect()
+: <a class="el" href="protocol_8h.html#afd463766036afda4798edbe788d29524">protocol.h</a>
+</li>
+<li>guac_protocol_send_dispose()
+: <a class="el" href="protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d">protocol.h</a>
+</li>
+<li>guac_protocol_send_distort()
+: <a class="el" href="protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">protocol.h</a>
+</li>
+<li>guac_protocol_send_end()
+: <a class="el" href="protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae">protocol.h</a>
+</li>
+<li>guac_protocol_send_error()
+: <a class="el" href="protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a">protocol.h</a>
+</li>
+<li>guac_protocol_send_file()
+: <a class="el" href="protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06">protocol.h</a>
+</li>
+<li>guac_protocol_send_filesystem()
+: <a class="el" href="protocol_8h.html#a3779c2287625af70fb001afbcc739da5">protocol.h</a>
+</li>
+<li>guac_protocol_send_identity()
+: <a class="el" href="protocol_8h.html#aac205e52801a875bfbef02ae237b6b15">protocol.h</a>
+</li>
+<li>guac_protocol_send_img()
+: <a class="el" href="protocol_8h.html#afda8074f65d35795203f392f6688163e">protocol.h</a>
+</li>
+<li>guac_protocol_send_key()
+: <a class="el" href="protocol_8h.html#a2d276595cea8a2d382240d868487f077">protocol.h</a>
+</li>
+<li>guac_protocol_send_lfill()
+: <a class="el" href="protocol_8h.html#a9271e3b6cc0030b833d18137969a4018">protocol.h</a>
+</li>
+<li>guac_protocol_send_line()
+: <a class="el" href="protocol_8h.html#afac3f57649c20b5e39c484a52d264005">protocol.h</a>
+</li>
+<li>guac_protocol_send_log()
+: <a class="el" href="protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0">protocol.h</a>
+</li>
+<li>guac_protocol_send_lstroke()
+: <a class="el" href="protocol_8h.html#a5b7d621d534126e26178789800a1a5d5">protocol.h</a>
+</li>
+<li>guac_protocol_send_mouse()
+: <a class="el" href="protocol_8h.html#a8947056262da2f3263b9851370597622">protocol.h</a>
+</li>
+<li>guac_protocol_send_move()
+: <a class="el" href="protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd">protocol.h</a>
+</li>
+<li>guac_protocol_send_name()
+: <a class="el" href="protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e">protocol.h</a>
+</li>
+<li>guac_protocol_send_nest()
+: <a class="el" href="protocol_8h.html#a94efa63c9895383e142a3f7ce559300b">protocol.h</a>
+</li>
+<li>guac_protocol_send_nop()
+: <a class="el" href="protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41">protocol.h</a>
+</li>
+<li>guac_protocol_send_pipe()
+: <a class="el" href="protocol_8h.html#a18b2c462077b7c51d211f3db09c30292">protocol.h</a>
+</li>
+<li>guac_protocol_send_pop()
+: <a class="el" href="protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4">protocol.h</a>
+</li>
+<li>guac_protocol_send_push()
+: <a class="el" href="protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8">protocol.h</a>
+</li>
+<li>guac_protocol_send_ready()
+: <a class="el" href="protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359">protocol.h</a>
+</li>
+<li>guac_protocol_send_rect()
+: <a class="el" href="protocol_8h.html#a42dc3db797b83accd3418b76648adac5">protocol.h</a>
+</li>
+<li>guac_protocol_send_reset()
+: <a class="el" href="protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a">protocol.h</a>
+</li>
+<li>guac_protocol_send_select()
+: <a class="el" href="protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf">protocol.h</a>
+</li>
+<li>guac_protocol_send_set()
+: <a class="el" href="protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a">protocol.h</a>
+</li>
+<li>guac_protocol_send_shade()
+: <a class="el" href="protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5">protocol.h</a>
+</li>
+<li>guac_protocol_send_size()
+: <a class="el" href="protocol_8h.html#affc4cf09c3337bd860439da99bdfef98">protocol.h</a>
+</li>
+<li>guac_protocol_send_start()
+: <a class="el" href="protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126">protocol.h</a>
+</li>
+<li>guac_protocol_send_sync()
+: <a class="el" href="protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73">protocol.h</a>
+</li>
+<li>guac_protocol_send_transfer()
+: <a class="el" href="protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9">protocol.h</a>
+</li>
+<li>guac_protocol_send_transform()
+: <a class="el" href="protocol_8h.html#a17058795c93be51c82a9df95eca8e62b">protocol.h</a>
+</li>
+<li>guac_protocol_send_undefine()
+: <a class="el" href="protocol_8h.html#aefa251505e61332e8e1c27ade0478e64">protocol.h</a>
+</li>
+<li>guac_protocol_send_video()
+: <a class="el" href="protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8">protocol.h</a>
+</li>
+<li>vguac_protocol_send_log()
+: <a class="el" href="protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4">protocol.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>guac_socket_alloc()
+: <a class="el" href="socket_8h.html#a7e5859b812923b894779f59353fdadb4">socket.h</a>
+</li>
+<li>guac_socket_broadcast()
+: <a class="el" href="socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6">socket.h</a>
+</li>
+<li>guac_socket_flush()
+: <a class="el" href="socket_8h.html#ababc834d5812e006b55a79da417bfe12">socket.h</a>
+</li>
+<li>guac_socket_flush_base64()
+: <a class="el" href="socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab">socket.h</a>
+</li>
+<li>guac_socket_free()
+: <a class="el" href="socket_8h.html#a376df8efcc02a7104504f104433884ed">socket.h</a>
+</li>
+<li>guac_socket_instruction_begin()
+: <a class="el" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1">socket.h</a>
+</li>
+<li>guac_socket_instruction_end()
+: <a class="el" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94">socket.h</a>
+</li>
+<li>guac_socket_nest()
+: <a class="el" href="socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda">socket.h</a>
+</li>
+<li>guac_socket_open()
+: <a class="el" href="socket_8h.html#a076f62b9b6082260462e18ca77c64e7a">socket.h</a>
+</li>
+<li>guac_socket_open_secure()
+: <a class="el" href="socket-ssl_8h.html#afa6689181258a29460b978f1e496f790">socket-ssl.h</a>
+</li>
+<li>guac_socket_open_wsa()
+: <a class="el" href="socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be">socket-wsa.h</a>
+</li>
+<li>guac_socket_read()
+: <a class="el" href="socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31">socket.h</a>
+</li>
+<li>guac_socket_require_keep_alive()
+: <a class="el" href="socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03">socket.h</a>
+</li>
+<li>guac_socket_select()
+: <a class="el" href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7">socket.h</a>
+</li>
+<li>guac_socket_tee()
+: <a class="el" href="socket_8h.html#add9c80240912b0c8d309cf7de94f5305">socket.h</a>
+</li>
+<li>guac_socket_write()
+: <a class="el" href="socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4">socket.h</a>
+</li>
+<li>guac_socket_write_base64()
+: <a class="el" href="socket_8h.html#ac7ec68bc42436ba316805718c292c510">socket.h</a>
+</li>
+<li>guac_socket_write_int()
+: <a class="el" href="socket_8h.html#a57a963e37377de2104c2d785980ff400">socket.h</a>
+</li>
+<li>guac_socket_write_string()
+: <a class="el" href="socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc">socket.h</a>
+</li>
+<li>guac_status_string()
+: <a class="el" href="error_8h.html#a39a2290527ea7c3f0acb07f002c397b1">error.h</a>
+</li>
+<li>guac_strlcat()
+: <a class="el" href="string_8h.html#a0dccfb28be71414fb2a4b1b641799f57">string.h</a>
+</li>
+<li>guac_strlcpy()
+: <a class="el" href="string_8h.html#add551909cdd14d762106832a800a5e16">string.h</a>
+</li>
+<li>guac_strljoin()
+: <a class="el" href="string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f">string.h</a>
+</li>
+<li>guac_surface_cmp()
+: <a class="el" href="hash_8h.html#a377c701a920281a98cbcf0842124aaac">hash.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_t"></a>- t -</h3><ul>
+<li>guac_timestamp_current()
+: <a class="el" href="timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719">timestamp.h</a>
+</li>
+<li>guac_timestamp_msleep()
+: <a class="el" href="timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868">timestamp.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_u"></a>- u -</h3><ul>
+<li>guac_user_abort()
+: <a class="el" href="user_8h.html#a0eff54a869374e37237b2006ad77b958">user.h</a>
+</li>
+<li>guac_user_alloc()
+: <a class="el" href="user_8h.html#a586cd1d712dce0db02d57684ddcb02ef">user.h</a>
+</li>
+<li>guac_user_alloc_object()
+: <a class="el" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">user.h</a>
+</li>
+<li>guac_user_alloc_stream()
+: <a class="el" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">user.h</a>
+</li>
+<li>guac_user_free()
+: <a class="el" href="user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8">user.h</a>
+</li>
+<li>guac_user_free_object()
+: <a class="el" href="user_8h.html#acf92065fb6bbc92f9794ea50255acdb9">user.h</a>
+</li>
+<li>guac_user_free_stream()
+: <a class="el" href="user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4">user.h</a>
+</li>
+<li>guac_user_handle_connection()
+: <a class="el" href="user_8h.html#a28f08ab54f138796dea4655ef54526fe">user.h</a>
+</li>
+<li>guac_user_handle_instruction()
+: <a class="el" href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78">user.h</a>
+</li>
+<li>guac_user_log()
+: <a class="el" href="user_8h.html#ab19481d0800901190d3d734eae466151">user.h</a>
+</li>
+<li>guac_user_parse_args_boolean()
+: <a class="el" href="user_8h.html#a5f0bae838d82357e95e98769f7b98cd2">user.h</a>
+</li>
+<li>guac_user_parse_args_int()
+: <a class="el" href="user_8h.html#a08f6fd4d84de665487a45fb324dc8844">user.h</a>
+</li>
+<li>guac_user_parse_args_string()
+: <a class="el" href="user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f">user.h</a>
+</li>
+<li>guac_user_stop()
+: <a class="el" href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf">user.h</a>
+</li>
+<li>guac_user_stream_argv()
+: <a class="el" href="user_8h.html#aa3f85461f15abfb46fd7c732538b33ea">user.h</a>
+</li>
+<li>guac_user_stream_jpeg()
+: <a class="el" href="user_8h.html#a6e947ee6996d5711f18d5b785757ccb3">user.h</a>
+</li>
+<li>guac_user_stream_png()
+: <a class="el" href="user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630">user.h</a>
+</li>
+<li>guac_user_stream_webp()
+: <a class="el" href="user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8">user.h</a>
+</li>
+<li>guac_user_supports_webp()
+: <a class="el" href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7">user.h</a>
+</li>
+<li>guac_utf8_charsize()
+: <a class="el" href="unicode_8h.html#a423523f1531719c6ab4fafdb02008623">unicode.h</a>
+</li>
+<li>guac_utf8_read()
+: <a class="el" href="unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af">unicode.h</a>
+</li>
+<li>guac_utf8_strlen()
+: <a class="el" href="unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b">unicode.h</a>
+</li>
+<li>guac_utf8_write()
+: <a class="el" href="unicode_8h.html#aa49339a4af9952b0b56402825059a2ce">unicode.h</a>
+</li>
+<li>vguac_user_abort()
+: <a class="el" href="user_8h.html#ad8529247b551cb93509236a7f9138dd2">user.h</a>
+</li>
+<li>vguac_user_log()
+: <a class="el" href="user_8h.html#af15509bcb891932a3fa93a142018b95c">user.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_g.html b/doc/1.1.0/libguac/globals_g.html
new file mode 100644
index 0000000..cd8358d
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_g.html
@@ -0,0 +1,335 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>GUAC_BUFFER_POOL_INITIAL_SIZE
+: <a class="el" href="client-constants_8h.html#aa8a296e1032ff408ab141b0765fb9bfb">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_CLOSED_STREAM_INDEX
+: <a class="el" href="client-constants_8h.html#a6fda25106c4c454c22db2c7e042ee142">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_ID_PREFIX
+: <a class="el" href="client-constants_8h.html#a8e2b48136e5c358e012a1558d5e5f0c2">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MAX_STREAMS
+: <a class="el" href="client-constants_8h.html#ad9f977643c5ffee5c1eeb426664796a1">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_LEFT
+: <a class="el" href="client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_MIDDLE
+: <a class="el" href="client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_RIGHT
+: <a class="el" href="client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_SCROLL_DOWN
+: <a class="el" href="client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_SCROLL_UP
+: <a class="el" href="client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_RUNNING
+: <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0">client-types.h</a>
+</li>
+<li>GUAC_CLIENT_STOPPING
+: <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd">client-types.h</a>
+</li>
+<li>GUAC_DEFAULT_LAYER
+: <a class="el" href="client_8h.html#a336a485c006394d5eea88bf6d8d422d8">client.h</a>
+</li>
+<li>GUAC_INSTRUCTION_MAX_DIGITS
+: <a class="el" href="parser-constants_8h.html#a408e5069154be109ad3dcf45cbc0b00f">parser-constants.h</a>
+</li>
+<li>GUAC_INSTRUCTION_MAX_ELEMENTS
+: <a class="el" href="parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46">parser-constants.h</a>
+</li>
+<li>GUAC_INSTRUCTION_MAX_LENGTH
+: <a class="el" href="parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744">parser-constants.h</a>
+</li>
+<li>GUAC_LOG_DEBUG
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b">client-types.h</a>
+</li>
+<li>GUAC_LOG_ERROR
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c">client-types.h</a>
+</li>
+<li>GUAC_LOG_INFO
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29">client-types.h</a>
+</li>
+<li>GUAC_LOG_TRACE
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb">client-types.h</a>
+</li>
+<li>GUAC_LOG_WARNING
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be">client-types.h</a>
+</li>
+<li>GUAC_PARSE_COMPLETE
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf">parser-types.h</a>
+</li>
+<li>GUAC_PARSE_CONTENT
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e">parser-types.h</a>
+</li>
+<li>GUAC_PARSE_ERROR
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc">parser-types.h</a>
+</li>
+<li>GUAC_PARSE_LENGTH
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc">parser-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_BLOB_MAX_LENGTH
+: <a class="el" href="protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166">protocol-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_LIBRARY_LIMIT
+: <a class="el" href="plugin-constants_8h.html#a03c00580f4455d35c1ed33ed4dcfe2fe">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_LIBRARY_PREFIX
+: <a class="el" href="plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_LIBRARY_SUFFIX
+: <a class="el" href="plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_NAME_LIMIT
+: <a class="el" href="plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SERVER_BUSY
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SERVER_ERROR
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SESSION_CLOSED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SESSION_CONFLICT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SUCCESS
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UNSUPPORTED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814">protocol-types.h</a>
+</li>
+<li>GUAC_SOCKET_CLOSED
+: <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e">socket-types.h</a>
+</li>
+<li>GUAC_SOCKET_KEEP_ALIVE_INTERVAL
+: <a class="el" href="socket-constants_8h.html#aa8820e76e3d3471bdc8771591ebf29f7">socket-constants.h</a>
+</li>
+<li>GUAC_SOCKET_OPEN
+: <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5">socket-types.h</a>
+</li>
+<li>GUAC_SOCKET_OUTPUT_BUFFER_SIZE
+: <a class="el" href="socket-constants_8h.html#af93053e27466c566624301d7b32a68c3">socket-constants.h</a>
+</li>
+<li>GUAC_STATUS_BUSY
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55">error-types.h</a>
+</li>
+<li>GUAC_STATUS_CANCELED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c">error-types.h</a>
+</li>
+<li>GUAC_STATUS_CLOSED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff">error-types.h</a>
+</li>
+<li>GUAC_STATUS_INPUT_TOO_LARGE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_INTERNAL_ERROR
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab">error-types.h</a>
+</li>
+<li>GUAC_STATUS_INVALID_ARGUMENT
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4">error-types.h</a>
+</li>
+<li>GUAC_STATUS_IO_ERROR
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NO_MEMORY
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NO_SPACE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_AVAILABLE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_FOUND
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_INPLEMENTED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_SUPPORTED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e">error-types.h</a>
+</li>
+<li>GUAC_STATUS_OUT_OF_RANGE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4">error-types.h</a>
+</li>
+<li>GUAC_STATUS_PERMISSION_DENIED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740">error-types.h</a>
+</li>
+<li>GUAC_STATUS_PROTOCOL_ERROR
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787">error-types.h</a>
+</li>
+<li>GUAC_STATUS_REFUSED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7">error-types.h</a>
+</li>
+<li>GUAC_STATUS_RESULT_TOO_LARGE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d">error-types.h</a>
+</li>
+<li>GUAC_STATUS_SEE_ERRNO
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7">error-types.h</a>
+</li>
+<li>GUAC_STATUS_SUCCESS
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3">error-types.h</a>
+</li>
+<li>GUAC_STATUS_TIMEOUT
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3">error-types.h</a>
+</li>
+<li>GUAC_STATUS_TOO_MANY
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546">error-types.h</a>
+</li>
+<li>GUAC_STATUS_TRY_AGAIN
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_WOULD_BLOCK
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f">error-types.h</a>
+</li>
+<li>GUAC_USER_CLOSED_STREAM_INDEX
+: <a class="el" href="user-constants_8h.html#a8749ef8d1917591b82b7747edc85d275">user-constants.h</a>
+</li>
+<li>GUAC_USER_ID_PREFIX
+: <a class="el" href="user-constants_8h.html#aa6442383e07f6aa68fbe504037101a87">user-constants.h</a>
+</li>
+<li>GUAC_USER_MAX_OBJECTS
+: <a class="el" href="user-constants_8h.html#afbdfab527f553d531ce690cabd4ae1e7">user-constants.h</a>
+</li>
+<li>GUAC_USER_MAX_STREAMS
+: <a class="el" href="user-constants_8h.html#a9e0884fe25345c84beac1c5a13b1c5ce">user-constants.h</a>
+</li>
+<li>GUAC_USER_OBJECT_ROOT_NAME
+: <a class="el" href="user-constants_8h.html#acb353db4f79b67678376bb521db182e5">user-constants.h</a>
+</li>
+<li>GUAC_USER_STREAM_INDEX_MIMETYPE
+: <a class="el" href="user-constants_8h.html#af3135ba0f5c4cf3099374f612446b490">user-constants.h</a>
+</li>
+<li>GUAC_USER_UNDEFINED_OBJECT_INDEX
+: <a class="el" href="user-constants_8h.html#ae0609bd43bffdfa9ebb8da62f8118c9f">user-constants.h</a>
+</li>
+<li>GUACAMOLE_PROTOCOL_VERSION
+: <a class="el" href="protocol-constants_8h.html#ab1706e67b56808564438ef853a8d2821">protocol-constants.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_h.html b/doc/1.1.0/libguac/globals_h.html
new file mode 100644
index 0000000..3827078
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_h.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_h"></a>- h -</h3><ul>
+<li>guac_hash_surface()
+: <a class="el" href="hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c">hash.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_l.html b/doc/1.1.0/libguac/globals_l.html
new file mode 100644
index 0000000..bf4cf36
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_l.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_l"></a>- l -</h3><ul>
+<li>guac_line_cap_style
+: <a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">protocol-types.h</a>
+</li>
+<li>guac_line_join_style
+: <a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">protocol-types.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_p.html b/doc/1.1.0/libguac/globals_p.html
new file mode 100644
index 0000000..29630fc
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_p.html
@@ -0,0 +1,278 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_p"></a>- p -</h3><ul>
+<li>guac_parse_state
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">parser-types.h</a>
+</li>
+<li>guac_parser_alloc()
+: <a class="el" href="parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad">parser.h</a>
+</li>
+<li>guac_parser_append()
+: <a class="el" href="parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d">parser.h</a>
+</li>
+<li>guac_parser_expect()
+: <a class="el" href="parser_8h.html#ac54c94465aead463ce10e9a090b9b701">parser.h</a>
+</li>
+<li>guac_parser_free()
+: <a class="el" href="parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f">parser.h</a>
+</li>
+<li>guac_parser_length()
+: <a class="el" href="parser_8h.html#a8899dd607997fcffd78517947b17760b">parser.h</a>
+</li>
+<li>guac_parser_read()
+: <a class="el" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93">parser.h</a>
+</li>
+<li>guac_parser_shift()
+: <a class="el" href="parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">parser.h</a>
+</li>
+<li>guac_pool_alloc()
+: <a class="el" href="pool_8h.html#a3e7589997fdd734a6d6155badebd042f">pool.h</a>
+</li>
+<li>guac_pool_free()
+: <a class="el" href="pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb">pool.h</a>
+</li>
+<li>guac_pool_free_int()
+: <a class="el" href="pool_8h.html#ad90069a41689cf319f46af44bb113579">pool.h</a>
+</li>
+<li>guac_pool_next_int()
+: <a class="el" href="pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4">pool.h</a>
+</li>
+<li>guac_protocol_decode_base64()
+: <a class="el" href="protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec">protocol.h</a>
+</li>
+<li>guac_protocol_send_ack()
+: <a class="el" href="protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e">protocol.h</a>
+</li>
+<li>guac_protocol_send_arc()
+: <a class="el" href="protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3">protocol.h</a>
+</li>
+<li>guac_protocol_send_args()
+: <a class="el" href="protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6">protocol.h</a>
+</li>
+<li>guac_protocol_send_argv()
+: <a class="el" href="protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531">protocol.h</a>
+</li>
+<li>guac_protocol_send_audio()
+: <a class="el" href="protocol_8h.html#ab92edb38a4df2db402a013422cee6b42">protocol.h</a>
+</li>
+<li>guac_protocol_send_blob()
+: <a class="el" href="protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127">protocol.h</a>
+</li>
+<li>guac_protocol_send_blobs()
+: <a class="el" href="protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e">protocol.h</a>
+</li>
+<li>guac_protocol_send_body()
+: <a class="el" href="protocol_8h.html#aca9fb516e730233c33da297819f7ae7e">protocol.h</a>
+</li>
+<li>guac_protocol_send_cfill()
+: <a class="el" href="protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e">protocol.h</a>
+</li>
+<li>guac_protocol_send_clip()
+: <a class="el" href="protocol_8h.html#acbd1869635b752bbf52998613804df00">protocol.h</a>
+</li>
+<li>guac_protocol_send_clipboard()
+: <a class="el" href="protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64">protocol.h</a>
+</li>
+<li>guac_protocol_send_close()
+: <a class="el" href="protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a">protocol.h</a>
+</li>
+<li>guac_protocol_send_connect()
+: <a class="el" href="protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb">protocol.h</a>
+</li>
+<li>guac_protocol_send_copy()
+: <a class="el" href="protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda">protocol.h</a>
+</li>
+<li>guac_protocol_send_cstroke()
+: <a class="el" href="protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9">protocol.h</a>
+</li>
+<li>guac_protocol_send_cursor()
+: <a class="el" href="protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a">protocol.h</a>
+</li>
+<li>guac_protocol_send_curve()
+: <a class="el" href="protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5">protocol.h</a>
+</li>
+<li>guac_protocol_send_disconnect()
+: <a class="el" href="protocol_8h.html#afd463766036afda4798edbe788d29524">protocol.h</a>
+</li>
+<li>guac_protocol_send_dispose()
+: <a class="el" href="protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d">protocol.h</a>
+</li>
+<li>guac_protocol_send_distort()
+: <a class="el" href="protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">protocol.h</a>
+</li>
+<li>guac_protocol_send_end()
+: <a class="el" href="protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae">protocol.h</a>
+</li>
+<li>guac_protocol_send_error()
+: <a class="el" href="protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a">protocol.h</a>
+</li>
+<li>guac_protocol_send_file()
+: <a class="el" href="protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06">protocol.h</a>
+</li>
+<li>guac_protocol_send_filesystem()
+: <a class="el" href="protocol_8h.html#a3779c2287625af70fb001afbcc739da5">protocol.h</a>
+</li>
+<li>guac_protocol_send_identity()
+: <a class="el" href="protocol_8h.html#aac205e52801a875bfbef02ae237b6b15">protocol.h</a>
+</li>
+<li>guac_protocol_send_img()
+: <a class="el" href="protocol_8h.html#afda8074f65d35795203f392f6688163e">protocol.h</a>
+</li>
+<li>guac_protocol_send_key()
+: <a class="el" href="protocol_8h.html#a2d276595cea8a2d382240d868487f077">protocol.h</a>
+</li>
+<li>guac_protocol_send_lfill()
+: <a class="el" href="protocol_8h.html#a9271e3b6cc0030b833d18137969a4018">protocol.h</a>
+</li>
+<li>guac_protocol_send_line()
+: <a class="el" href="protocol_8h.html#afac3f57649c20b5e39c484a52d264005">protocol.h</a>
+</li>
+<li>guac_protocol_send_log()
+: <a class="el" href="protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0">protocol.h</a>
+</li>
+<li>guac_protocol_send_lstroke()
+: <a class="el" href="protocol_8h.html#a5b7d621d534126e26178789800a1a5d5">protocol.h</a>
+</li>
+<li>guac_protocol_send_mouse()
+: <a class="el" href="protocol_8h.html#a8947056262da2f3263b9851370597622">protocol.h</a>
+</li>
+<li>guac_protocol_send_move()
+: <a class="el" href="protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd">protocol.h</a>
+</li>
+<li>guac_protocol_send_name()
+: <a class="el" href="protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e">protocol.h</a>
+</li>
+<li>guac_protocol_send_nest()
+: <a class="el" href="protocol_8h.html#a94efa63c9895383e142a3f7ce559300b">protocol.h</a>
+</li>
+<li>guac_protocol_send_nop()
+: <a class="el" href="protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41">protocol.h</a>
+</li>
+<li>guac_protocol_send_pipe()
+: <a class="el" href="protocol_8h.html#a18b2c462077b7c51d211f3db09c30292">protocol.h</a>
+</li>
+<li>guac_protocol_send_pop()
+: <a class="el" href="protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4">protocol.h</a>
+</li>
+<li>guac_protocol_send_push()
+: <a class="el" href="protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8">protocol.h</a>
+</li>
+<li>guac_protocol_send_ready()
+: <a class="el" href="protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359">protocol.h</a>
+</li>
+<li>guac_protocol_send_rect()
+: <a class="el" href="protocol_8h.html#a42dc3db797b83accd3418b76648adac5">protocol.h</a>
+</li>
+<li>guac_protocol_send_reset()
+: <a class="el" href="protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a">protocol.h</a>
+</li>
+<li>guac_protocol_send_select()
+: <a class="el" href="protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf">protocol.h</a>
+</li>
+<li>guac_protocol_send_set()
+: <a class="el" href="protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a">protocol.h</a>
+</li>
+<li>guac_protocol_send_shade()
+: <a class="el" href="protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5">protocol.h</a>
+</li>
+<li>guac_protocol_send_size()
+: <a class="el" href="protocol_8h.html#affc4cf09c3337bd860439da99bdfef98">protocol.h</a>
+</li>
+<li>guac_protocol_send_start()
+: <a class="el" href="protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126">protocol.h</a>
+</li>
+<li>guac_protocol_send_sync()
+: <a class="el" href="protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73">protocol.h</a>
+</li>
+<li>guac_protocol_send_transfer()
+: <a class="el" href="protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9">protocol.h</a>
+</li>
+<li>guac_protocol_send_transform()
+: <a class="el" href="protocol_8h.html#a17058795c93be51c82a9df95eca8e62b">protocol.h</a>
+</li>
+<li>guac_protocol_send_undefine()
+: <a class="el" href="protocol_8h.html#aefa251505e61332e8e1c27ade0478e64">protocol.h</a>
+</li>
+<li>guac_protocol_send_video()
+: <a class="el" href="protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8">protocol.h</a>
+</li>
+<li>guac_protocol_status
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">protocol-types.h</a>
+</li>
+<li>vguac_protocol_send_log()
+: <a class="el" href="protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4">protocol.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_s.html b/doc/1.1.0/libguac/globals_s.html
new file mode 100644
index 0000000..8657081
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_s.html
@@ -0,0 +1,176 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>guac_socket_alloc()
+: <a class="el" href="socket_8h.html#a7e5859b812923b894779f59353fdadb4">socket.h</a>
+</li>
+<li>guac_socket_broadcast()
+: <a class="el" href="socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6">socket.h</a>
+</li>
+<li>guac_socket_flush()
+: <a class="el" href="socket_8h.html#ababc834d5812e006b55a79da417bfe12">socket.h</a>
+</li>
+<li>guac_socket_flush_base64()
+: <a class="el" href="socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab">socket.h</a>
+</li>
+<li>guac_socket_flush_handler
+: <a class="el" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">socket-fntypes.h</a>
+</li>
+<li>guac_socket_free()
+: <a class="el" href="socket_8h.html#a376df8efcc02a7104504f104433884ed">socket.h</a>
+</li>
+<li>guac_socket_free_handler
+: <a class="el" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">socket-fntypes.h</a>
+</li>
+<li>guac_socket_instruction_begin()
+: <a class="el" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1">socket.h</a>
+</li>
+<li>guac_socket_instruction_end()
+: <a class="el" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94">socket.h</a>
+</li>
+<li>guac_socket_lock_handler
+: <a class="el" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">socket-fntypes.h</a>
+</li>
+<li>guac_socket_nest()
+: <a class="el" href="socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda">socket.h</a>
+</li>
+<li>guac_socket_open()
+: <a class="el" href="socket_8h.html#a076f62b9b6082260462e18ca77c64e7a">socket.h</a>
+</li>
+<li>guac_socket_open_secure()
+: <a class="el" href="socket-ssl_8h.html#afa6689181258a29460b978f1e496f790">socket-ssl.h</a>
+</li>
+<li>guac_socket_open_wsa()
+: <a class="el" href="socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be">socket-wsa.h</a>
+</li>
+<li>guac_socket_read()
+: <a class="el" href="socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31">socket.h</a>
+</li>
+<li>guac_socket_read_handler
+: <a class="el" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">socket-fntypes.h</a>
+</li>
+<li>guac_socket_require_keep_alive()
+: <a class="el" href="socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03">socket.h</a>
+</li>
+<li>guac_socket_select()
+: <a class="el" href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7">socket.h</a>
+</li>
+<li>guac_socket_select_handler
+: <a class="el" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">socket-fntypes.h</a>
+</li>
+<li>guac_socket_state
+: <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">socket-types.h</a>
+</li>
+<li>guac_socket_tee()
+: <a class="el" href="socket_8h.html#add9c80240912b0c8d309cf7de94f5305">socket.h</a>
+</li>
+<li>guac_socket_unlock_handler
+: <a class="el" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">socket-fntypes.h</a>
+</li>
+<li>guac_socket_write()
+: <a class="el" href="socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4">socket.h</a>
+</li>
+<li>guac_socket_write_base64()
+: <a class="el" href="socket_8h.html#ac7ec68bc42436ba316805718c292c510">socket.h</a>
+</li>
+<li>guac_socket_write_handler
+: <a class="el" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">socket-fntypes.h</a>
+</li>
+<li>guac_socket_write_int()
+: <a class="el" href="socket_8h.html#a57a963e37377de2104c2d785980ff400">socket.h</a>
+</li>
+<li>guac_socket_write_string()
+: <a class="el" href="socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc">socket.h</a>
+</li>
+<li>guac_status
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">error-types.h</a>
+</li>
+<li>guac_status_string()
+: <a class="el" href="error_8h.html#a39a2290527ea7c3f0acb07f002c397b1">error.h</a>
+</li>
+<li>guac_strlcat()
+: <a class="el" href="string_8h.html#a0dccfb28be71414fb2a4b1b641799f57">string.h</a>
+</li>
+<li>guac_strlcpy()
+: <a class="el" href="string_8h.html#add551909cdd14d762106832a800a5e16">string.h</a>
+</li>
+<li>guac_strljoin()
+: <a class="el" href="string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f">string.h</a>
+</li>
+<li>guac_surface_cmp()
+: <a class="el" href="hash_8h.html#a377c701a920281a98cbcf0842124aaac">hash.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_t.html b/doc/1.1.0/libguac/globals_t.html
new file mode 100644
index 0000000..0a284ee
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_t.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_t"></a>- t -</h3><ul>
+<li>guac_timestamp
+: <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">timestamp-types.h</a>
+</li>
+<li>guac_timestamp_current()
+: <a class="el" href="timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719">timestamp.h</a>
+</li>
+<li>guac_timestamp_msleep()
+: <a class="el" href="timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868">timestamp.h</a>
+</li>
+<li>guac_transfer_function
+: <a class="el" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">protocol-types.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_type.html b/doc/1.1.0/libguac/globals_type.html
new file mode 100644
index 0000000..649f5ed
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_type.html
@@ -0,0 +1,192 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_a"></a>- a -</h3><ul>
+<li>guac_audio_encoder_begin_handler
+: <a class="el" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_end_handler
+: <a class="el" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_flush_handler
+: <a class="el" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_join_handler
+: <a class="el" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_write_handler
+: <a class="el" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">audio-fntypes.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>guac_client_free_handler
+: <a class="el" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">client-fntypes.h</a>
+</li>
+<li>guac_client_init_handler
+: <a class="el" href="client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c">client-fntypes.h</a>
+</li>
+<li>guac_client_log_handler
+: <a class="el" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">client-fntypes.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>guac_socket_flush_handler
+: <a class="el" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">socket-fntypes.h</a>
+</li>
+<li>guac_socket_free_handler
+: <a class="el" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">socket-fntypes.h</a>
+</li>
+<li>guac_socket_lock_handler
+: <a class="el" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">socket-fntypes.h</a>
+</li>
+<li>guac_socket_read_handler
+: <a class="el" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">socket-fntypes.h</a>
+</li>
+<li>guac_socket_select_handler
+: <a class="el" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">socket-fntypes.h</a>
+</li>
+<li>guac_socket_unlock_handler
+: <a class="el" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">socket-fntypes.h</a>
+</li>
+<li>guac_socket_write_handler
+: <a class="el" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">socket-fntypes.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_t"></a>- t -</h3><ul>
+<li>guac_timestamp
+: <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">timestamp-types.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_u"></a>- u -</h3><ul>
+<li>guac_user_ack_handler
+: <a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">user-fntypes.h</a>
+</li>
+<li>guac_user_argv_handler
+: <a class="el" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">user-fntypes.h</a>
+</li>
+<li>guac_user_audio_handler
+: <a class="el" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">user-fntypes.h</a>
+</li>
+<li>guac_user_blob_handler
+: <a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">user-fntypes.h</a>
+</li>
+<li>guac_user_callback
+: <a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">user-fntypes.h</a>
+</li>
+<li>guac_user_clipboard_handler
+: <a class="el" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">user-fntypes.h</a>
+</li>
+<li>guac_user_end_handler
+: <a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">user-fntypes.h</a>
+</li>
+<li>guac_user_file_handler
+: <a class="el" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">user-fntypes.h</a>
+</li>
+<li>guac_user_get_handler
+: <a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">user-fntypes.h</a>
+</li>
+<li>guac_user_join_handler
+: <a class="el" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">user-fntypes.h</a>
+</li>
+<li>guac_user_key_handler
+: <a class="el" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">user-fntypes.h</a>
+</li>
+<li>guac_user_leave_handler
+: <a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">user-fntypes.h</a>
+</li>
+<li>guac_user_mouse_handler
+: <a class="el" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">user-fntypes.h</a>
+</li>
+<li>guac_user_pipe_handler
+: <a class="el" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">user-fntypes.h</a>
+</li>
+<li>guac_user_put_handler
+: <a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">user-fntypes.h</a>
+</li>
+<li>guac_user_size_handler
+: <a class="el" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">user-fntypes.h</a>
+</li>
+<li>guac_user_sync_handler
+: <a class="el" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">user-fntypes.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_u.html b/doc/1.1.0/libguac/globals_u.html
new file mode 100644
index 0000000..008b9e5
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_u.html
@@ -0,0 +1,203 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_u"></a>- u -</h3><ul>
+<li>guac_user_abort()
+: <a class="el" href="user_8h.html#a0eff54a869374e37237b2006ad77b958">user.h</a>
+</li>
+<li>guac_user_ack_handler
+: <a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">user-fntypes.h</a>
+</li>
+<li>guac_user_alloc()
+: <a class="el" href="user_8h.html#a586cd1d712dce0db02d57684ddcb02ef">user.h</a>
+</li>
+<li>guac_user_alloc_object()
+: <a class="el" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">user.h</a>
+</li>
+<li>guac_user_alloc_stream()
+: <a class="el" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">user.h</a>
+</li>
+<li>guac_user_argv_handler
+: <a class="el" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">user-fntypes.h</a>
+</li>
+<li>guac_user_audio_handler
+: <a class="el" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">user-fntypes.h</a>
+</li>
+<li>guac_user_blob_handler
+: <a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">user-fntypes.h</a>
+</li>
+<li>guac_user_callback
+: <a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">user-fntypes.h</a>
+</li>
+<li>guac_user_clipboard_handler
+: <a class="el" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">user-fntypes.h</a>
+</li>
+<li>guac_user_end_handler
+: <a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">user-fntypes.h</a>
+</li>
+<li>guac_user_file_handler
+: <a class="el" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">user-fntypes.h</a>
+</li>
+<li>guac_user_free()
+: <a class="el" href="user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8">user.h</a>
+</li>
+<li>guac_user_free_object()
+: <a class="el" href="user_8h.html#acf92065fb6bbc92f9794ea50255acdb9">user.h</a>
+</li>
+<li>guac_user_free_stream()
+: <a class="el" href="user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4">user.h</a>
+</li>
+<li>guac_user_get_handler
+: <a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">user-fntypes.h</a>
+</li>
+<li>guac_user_handle_connection()
+: <a class="el" href="user_8h.html#a28f08ab54f138796dea4655ef54526fe">user.h</a>
+</li>
+<li>guac_user_handle_instruction()
+: <a class="el" href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78">user.h</a>
+</li>
+<li>guac_user_join_handler
+: <a class="el" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">user-fntypes.h</a>
+</li>
+<li>guac_user_key_handler
+: <a class="el" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">user-fntypes.h</a>
+</li>
+<li>guac_user_leave_handler
+: <a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">user-fntypes.h</a>
+</li>
+<li>guac_user_log()
+: <a class="el" href="user_8h.html#ab19481d0800901190d3d734eae466151">user.h</a>
+</li>
+<li>guac_user_mouse_handler
+: <a class="el" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">user-fntypes.h</a>
+</li>
+<li>guac_user_parse_args_boolean()
+: <a class="el" href="user_8h.html#a5f0bae838d82357e95e98769f7b98cd2">user.h</a>
+</li>
+<li>guac_user_parse_args_int()
+: <a class="el" href="user_8h.html#a08f6fd4d84de665487a45fb324dc8844">user.h</a>
+</li>
+<li>guac_user_parse_args_string()
+: <a class="el" href="user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f">user.h</a>
+</li>
+<li>guac_user_pipe_handler
+: <a class="el" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">user-fntypes.h</a>
+</li>
+<li>guac_user_put_handler
+: <a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">user-fntypes.h</a>
+</li>
+<li>guac_user_size_handler
+: <a class="el" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">user-fntypes.h</a>
+</li>
+<li>guac_user_stop()
+: <a class="el" href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf">user.h</a>
+</li>
+<li>guac_user_stream_argv()
+: <a class="el" href="user_8h.html#aa3f85461f15abfb46fd7c732538b33ea">user.h</a>
+</li>
+<li>guac_user_stream_jpeg()
+: <a class="el" href="user_8h.html#a6e947ee6996d5711f18d5b785757ccb3">user.h</a>
+</li>
+<li>guac_user_stream_png()
+: <a class="el" href="user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630">user.h</a>
+</li>
+<li>guac_user_stream_webp()
+: <a class="el" href="user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8">user.h</a>
+</li>
+<li>guac_user_supports_webp()
+: <a class="el" href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7">user.h</a>
+</li>
+<li>guac_user_sync_handler
+: <a class="el" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">user-fntypes.h</a>
+</li>
+<li>guac_utf8_charsize()
+: <a class="el" href="unicode_8h.html#a423523f1531719c6ab4fafdb02008623">unicode.h</a>
+</li>
+<li>guac_utf8_read()
+: <a class="el" href="unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af">unicode.h</a>
+</li>
+<li>guac_utf8_strlen()
+: <a class="el" href="unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b">unicode.h</a>
+</li>
+<li>guac_utf8_write()
+: <a class="el" href="unicode_8h.html#aa49339a4af9952b0b56402825059a2ce">unicode.h</a>
+</li>
+<li>vguac_user_abort()
+: <a class="el" href="user_8h.html#ad8529247b551cb93509236a7f9138dd2">user.h</a>
+</li>
+<li>vguac_user_log()
+: <a class="el" href="user_8h.html#af15509bcb891932a3fa93a142018b95c">user.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_vars.html b/doc/1.1.0/libguac/globals_vars.html
new file mode 100644
index 0000000..37b6a3c
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_vars.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>GUAC_DEFAULT_LAYER
+: <a class="el" href="client_8h.html#a336a485c006394d5eea88bf6d8d422d8">client.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/hash_8h.html b/doc/1.1.0/libguac/hash_8h.html
new file mode 100644
index 0000000..e4b774a
--- /dev/null
+++ b/doc/1.1.0/libguac/hash_8h.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/hash.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">hash.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures for producing likely-to-be-unique hash values for images.  
+<a href="#details">More...</a></p>
+
+<p><a href="hash_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ae8243122fb0b158a22058f9dbd2bbc0c"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c">guac_hash_surface</a> (cairo_surface_t *surface)</td></tr>
+<tr class="memdesc:ae8243122fb0b158a22058f9dbd2bbc0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Produces a 24-bit hash value from all pixels of the given surface.  <a href="#ae8243122fb0b158a22058f9dbd2bbc0c">More...</a><br /></td></tr>
+<tr class="separator:ae8243122fb0b158a22058f9dbd2bbc0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a377c701a920281a98cbcf0842124aaac"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#a377c701a920281a98cbcf0842124aaac">guac_surface_cmp</a> (cairo_surface_t *a, cairo_surface_t *b)</td></tr>
+<tr class="memdesc:a377c701a920281a98cbcf0842124aaac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given two Cairo surfaces, returns zero if the data contained within each is identical, and a positive or negative value if the value of the first is found to be lexically greater or less than the second respectively.  <a href="#a377c701a920281a98cbcf0842124aaac">More...</a><br /></td></tr>
+<tr class="separator:a377c701a920281a98cbcf0842124aaac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures for producing likely-to-be-unique hash values for images. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="ae8243122fb0b158a22058f9dbd2bbc0c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae8243122fb0b158a22058f9dbd2bbc0c">&#9670;&nbsp;</a></span>guac_hash_surface()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned int guac_hash_surface </td>
+          <td>(</td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Produces a 24-bit hash value from all pixels of the given surface. </p>
+<p>The surface provided must be RGB or ARGB with each pixel stored in 32 bits. The hashing algorithm used is a variant of the cyclic polynomial rolling hash.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">surface</td><td>The Cairo surface to hash. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>An arbitrary 24-bit unsigned integer value intended to be well distributed across different images. </dd></dl>
+
+</div>
+</div>
+<a id="a377c701a920281a98cbcf0842124aaac"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a377c701a920281a98cbcf0842124aaac">&#9670;&nbsp;</a></span>guac_surface_cmp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_surface_cmp </td>
+          <td>(</td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>b</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Given two Cairo surfaces, returns zero if the data contained within each is identical, and a positive or negative value if the value of the first is found to be lexically greater or less than the second respectively. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">a</td><td>The first Cairo surface to compare. </td></tr>
+    <tr><td class="paramname">b</td><td>The Cairo surface to compare the first surface against. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the data contained within each is identical, and a positive or negative value if the value of the first is found to be lexically greater or less than the second respectively. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/hash_8h_source.html b/doc/1.1.0/libguac/hash_8h_source.html
new file mode 100644
index 0000000..8179735
--- /dev/null
+++ b/doc/1.1.0/libguac/hash_8h_source.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/hash.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">hash.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="hash_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef _GUAC_HASH_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define _GUAC_HASH_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo.h&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c">guac_hash_surface</a>(cairo_surface_t* surface);</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="keywordtype">int</span> <a class="code" href="hash_8h.html#a377c701a920281a98cbcf0842124aaac">guac_surface_cmp</a>(cairo_surface_t* a, cairo_surface_t* b);</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="ttc" id="hash_8h_html_a377c701a920281a98cbcf0842124aaac"><div class="ttname"><a href="hash_8h.html#a377c701a920281a98cbcf0842124aaac">guac_surface_cmp</a></div><div class="ttdeci">int guac_surface_cmp(cairo_surface_t *a, cairo_surface_t *b)</div><div class="ttdoc">Given two Cairo surfaces, returns zero if the data contained within each is identical, and a positive or negative value if the value of the first is found to be lexically greater or less than the second respectively. </div></div>
+<div class="ttc" id="hash_8h_html_ae8243122fb0b158a22058f9dbd2bbc0c"><div class="ttname"><a href="hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c">guac_hash_surface</a></div><div class="ttdeci">unsigned int guac_hash_surface(cairo_surface_t *surface)</div><div class="ttdoc">Produces a 24-bit hash value from all pixels of the given surface. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/index.html b/doc/1.1.0/libguac/index.html
new file mode 100644
index 0000000..45c3183
--- /dev/null
+++ b/doc/1.1.0/libguac/index.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Main Page</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">libguac Documentation</div>  </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/jquery.js b/doc/1.1.0/libguac/jquery.js
new file mode 100644
index 0000000..2771c74
--- /dev/null
+++ b/doc/1.1.0/libguac/jquery.js
@@ -0,0 +1,115 @@
+/*
+ @licstart  The following is the entire license notice for the
+ JavaScript code in this file.
+
+ Copyright (C) 1997-2017 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend  The above is the entire license notice
+ for the JavaScript code in this file
+ */
+/*!
+ * jQuery JavaScript Library v1.7.1
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Mon Nov 21 21:11:03 2011 -0500
+ */
+(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b4<b3;b4++){if((b9=arguments[b4])!=null){for(b2 in b9){b0=b5[b2];b1=b9[b2];if(b5===b1){continue}if(b8&&b1&&(bF.isPlainObject(b1)||(b6=bF.isArray(b1)))){if(b6){b6=false;b7=b0&&bF.isArray(b0)?b0:[]}else{b7=b0&&bF.isPlainObject(b0)?b0:{}}b5[b2]=bF.extend(b8,b7,b1)}else{if(b1!==L){b5[b2]=b1}}}}}return b5};bF.extend({noConflict:function(b0){if(bb.$===bF){bb.$=bH}if(b0&&bb.jQuery===bF){bb.jQuery=bU}return bF},isReady:false,readyWait:1,holdReady:function(b0){if(b0){bF.readyWait++}else{bF.ready(true)}},ready:function(b0){if((b0===true&&!--bF.readyWait)||(b0!==true&&!bF.isReady)){if(!av.body){return setTimeout(bF.ready,1)}bF.isReady=true;if(b0!==true&&--bF.readyWait>0){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b4<b5;){if(b6.apply(b3[b4++],b2)===false){break}}}}else{if(b0){for(b1 in b3){if(b6.call(b3[b1],b1,b3[b1])===false){break}}}else{for(;b4<b5;){if(b6.call(b3[b4],b4,b3[b4++])===false){break}}}}return b3},trim:bO?function(b0){return b0==null?"":bO.call(b0)}:function(b0){return b0==null?"":b0.toString().replace(bI,"").replace(bE,"")},makeArray:function(b3,b1){var b0=b1||[];if(b3!=null){var b2=bF.type(b3);if(b3.length==null||b2==="string"||b2==="function"||b2==="regexp"||bF.isWindow(b3)){bz.call(b0,b3)}else{bF.merge(b0,b3)}}return b0},inArray:function(b2,b3,b1){var b0;if(b3){if(bv){return bv.call(b3,b2,b1)}b0=b3.length;b1=b1?b1<0?Math.max(0,b0+b1):b1:0;for(;b1<b0;b1++){if(b1 in b3&&b3[b1]===b2){return b1}}}return -1},merge:function(b4,b2){var b3=b4.length,b1=0;if(typeof b2.length==="number"){for(var b0=b2.length;b1<b0;b1++){b4[b3++]=b2[b1]}}else{while(b2[b1]!==L){b4[b3++]=b2[b1++]}}b4.length=b3;return b4},grep:function(b1,b6,b0){var b2=[],b5;b0=!!b0;for(var b3=0,b4=b1.length;b3<b4;b3++){b5=!!b6(b1[b3],b3);if(b0!==b5){b2.push(b1[b3])}}return b2},map:function(b0,b7,b8){var b5,b6,b4=[],b2=0,b1=b0.length,b3=b0 instanceof bF||b1!==L&&typeof b1==="number"&&((b1>0&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b2<b1;b2++){b5=b7(b0[b2],b2,b8);if(b5!=null){b4[b4.length]=b5}}}else{for(b6 in b0){b5=b7(b0[b6],b6,b8);if(b5!=null){b4[b4.length]=b5}}}return b4.concat.apply([],b4)},guid:1,proxy:function(b4,b3){if(typeof b3==="string"){var b2=b4[b3];b3=b4;b4=b2}if(!bF.isFunction(b4)){return L}var b0=bK.call(arguments,2),b1=function(){return b4.apply(b3,b0.concat(bK.call(arguments)))};b1.guid=b4.guid=b4.guid||b1.guid||bF.guid++;return b1},access:function(b0,b8,b6,b2,b5,b7){var b1=b0.length;if(typeof b8==="object"){for(var b3 in b8){bF.access(b0,b3,b8[b3],b2,b5,b6)}return b0}if(b6!==L){b2=!b7&&b2&&bF.isFunction(b6);for(var b4=0;b4<b1;b4++){b5(b0[b4],b8,b2?b6.call(b0[b4],b4,b5(b0[b4],b8)):b6,b7)}return b0}return b1?b5(b0[0],b8):L},now:function(){return(new Date()).getTime()},uaMatch:function(b1){b1=b1.toLowerCase();var b0=by.exec(b1)||bR.exec(b1)||bQ.exec(b1)||b1.indexOf("compatible")<0&&bS.exec(b1)||[];return{browser:b0[1]||"",version:b0[2]||"0"}},sub:function(){function b0(b3,b4){return new b0.fn.init(b3,b4)}bF.extend(true,b0,this);b0.superclass=this;b0.fn=b0.prototype=this();b0.fn.constructor=b0;b0.sub=this.sub;b0.fn.init=function b2(b3,b4){if(b4&&b4 instanceof bF&&!(b4 instanceof b0)){b4=b0(b4)}return bF.fn.init.call(this,b3,b4,b1)};b0.fn.init.prototype=b0.fn;var b1=b0(av);return b0},browser:{}});bF.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(b1,b0){bx["[object "+b0+"]"]=b0.toLowerCase()});bV=bF.uaMatch(bX);if(bV.browser){bF.browser[bV.browser]=true;bF.browser.version=bV.version}if(bF.browser.webkit){bF.browser.safari=true}if(bM.test("\xA0")){bI=/^[\s\xA0]+/;bE=/[\s\xA0]+$/}bD=bF(av);if(av.addEventListener){e=function(){av.removeEventListener("DOMContentLoaded",e,false);bF.ready()}}else{if(av.attachEvent){e=function(){if(av.readyState==="complete"){av.detachEvent("onreadystatechange",e);bF.ready()}}}}function bw(){if(bF.isReady){return}try{av.documentElement.doScroll("left")}catch(b0){setTimeout(bw,1);return}bF.ready()}return bF})();var a2={};function X(e){var bv=a2[e]={},bw,bx;e=e.split(/\s+/);for(bw=0,bx=e.length;bw<bx;bw++){bv[e[bw]]=true}return bv}b.Callbacks=function(bw){bw=bw?(a2[bw]||X(bw)):{};var bB=[],bC=[],bx,by,bv,bz,bA,bE=function(bF){var bG,bJ,bI,bH,bK;for(bG=0,bJ=bF.length;bG<bJ;bG++){bI=bF[bG];bH=b.type(bI);if(bH==="array"){bE(bI)}else{if(bH==="function"){if(!bw.unique||!bD.has(bI)){bB.push(bI)}}}}},e=function(bG,bF){bF=bF||[];bx=!bw.memory||[bG,bF];by=true;bA=bv||0;bv=0;bz=bB.length;for(;bB&&bA<bz;bA++){if(bB[bA].apply(bG,bF)===false&&bw.stopOnFalse){bx=true;break}}by=false;if(bB){if(!bw.once){if(bC&&bC.length){bx=bC.shift();bD.fireWith(bx[0],bx[1])}}else{if(bx===true){bD.disable()}else{bB=[]}}}},bD={add:function(){if(bB){var bF=bB.length;bE(arguments);if(by){bz=bB.length}else{if(bx&&bx!==true){bv=bF;e(bx[0],bx[1])}}}return this},remove:function(){if(bB){var bF=arguments,bH=0,bI=bF.length;for(;bH<bI;bH++){for(var bG=0;bG<bB.length;bG++){if(bF[bH]===bB[bG]){if(by){if(bG<=bz){bz--;if(bG<=bA){bA--}}}bB.splice(bG--,1);if(bw.unique){break}}}}}return this},has:function(bG){if(bB){var bF=0,bH=bB.length;for(;bF<bH;bF++){if(bG===bB[bF]){return true}}}return false},empty:function(){bB=[];return this},disable:function(){bB=bC=bx=L;return this},disabled:function(){return !bB},lock:function(){bC=L;if(!bx||bx===true){bD.disable()}return this},locked:function(){return !bC},fireWith:function(bG,bF){if(bC){if(by){if(!bw.once){bC.push([bG,bF])}}else{if(!(bw.once&&bx)){e(bG,bF)}}}return this},fire:function(){bD.fireWith(this,arguments);return this},fired:function(){return !!bx}};return bD};var aJ=[].slice;b.extend({Deferred:function(by){var bx=b.Callbacks("once memory"),bw=b.Callbacks("once memory"),bv=b.Callbacks("memory"),e="pending",bA={resolve:bx,reject:bw,notify:bv},bC={done:bx.add,fail:bw.add,progress:bv.add,state:function(){return e},isResolved:bx.fired,isRejected:bw.fired,then:function(bE,bD,bF){bB.done(bE).fail(bD).progress(bF);return this},always:function(){bB.done.apply(bB,arguments).fail.apply(bB,arguments);return this},pipe:function(bF,bE,bD){return b.Deferred(function(bG){b.each({done:[bF,"resolve"],fail:[bE,"reject"],progress:[bD,"notify"]},function(bI,bL){var bH=bL[0],bK=bL[1],bJ;if(b.isFunction(bH)){bB[bI](function(){bJ=bH.apply(this,arguments);if(bJ&&b.isFunction(bJ.promise)){bJ.promise().then(bG.resolve,bG.reject,bG.notify)}else{bG[bK+"With"](this===bB?bG:this,[bJ])}})}else{bB[bI](bG[bK])}})}).promise()},promise:function(bE){if(bE==null){bE=bC}else{for(var bD in bC){bE[bD]=bC[bD]}}return bE}},bB=bC.promise({}),bz;for(bz in bA){bB[bz]=bA[bz].fire;bB[bz+"With"]=bA[bz].fireWith}bB.done(function(){e="resolved"},bw.disable,bv.lock).fail(function(){e="rejected"},bx.disable,bv.lock);if(by){by.call(bB,bB)}return bB},when:function(bA){var bx=aJ.call(arguments,0),bv=0,e=bx.length,bB=new Array(e),bw=e,by=e,bC=e<=1&&bA&&b.isFunction(bA.promise)?bA:b.Deferred(),bE=bC.promise();function bD(bF){return function(bG){bx[bF]=arguments.length>1?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv<e;bv++){if(bx[bv]&&bx[bv].promise&&b.isFunction(bx[bv].promise)){bx[bv].promise().then(bD(bv),bC.reject,bz(bv))}else{--bw}}if(!bw){bC.resolveWith(bC,bx)}}else{if(bC!==bA){bC.resolveWith(bC,e?[bA]:[])}}return bE}});b.support=(function(){var bJ,bI,bF,bG,bx,bE,bA,bD,bz,bK,bB,by,bw,bv=av.createElement("div"),bH=av.documentElement;bv.setAttribute("className","t");bv.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="<div "+e+"><div></div></div><table "+e+" cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="<div style='width:4px;'></div>";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA<bz;bA++){delete bB[bv[bA]]}if(!(by?S:b.isEmptyObject)(bB)){return}}}if(!by){delete e[bw].data;if(!S(e[bw])){return}}if(b.support.deleteExpando||!e.setInterval){delete e[bw]}else{e[bw]=null}if(bD){if(b.support.deleteExpando){delete bx[bC]}else{if(bx.removeAttribute){bx.removeAttribute(bC)}else{bx[bC]=null}}}},_data:function(bv,e,bw){return b.data(bv,e,bw,true)},acceptData:function(bv){if(bv.nodeName){var e=b.noData[bv.nodeName.toLowerCase()];if(e){return !(e===true||bv.getAttribute("classid")!==e)}}return true}});b.fn.extend({data:function(by,bA){var bB,e,bw,bz=null;if(typeof by==="undefined"){if(this.length){bz=b.data(this[0]);if(this[0].nodeType===1&&!b._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var bx=0,bv=e.length;bx<bv;bx++){bw=e[bx].name;if(bw.indexOf("data-")===0){bw=b.camelCase(bw.substring(5));a5(this[0],bw,bz[bw])}}b._data(this[0],"parsedAttrs",true)}}return bz}else{if(typeof by==="object"){return this.each(function(){b.data(this,by)})}}bB=by.split(".");bB[1]=bB[1]?"."+bB[1]:"";if(bA===L){bz=this.triggerHandler("getData"+bB[1]+"!",[bB[0]]);if(bz===L&&this.length){bz=b.data(this[0],by);bz=a5(this[0],by,bz)}return bz===L&&bB[1]?this.data(bB[0]):bz}else{return this.each(function(){var bC=b(this),bD=[bB[0],bA];bC.triggerHandler("setData"+bB[1]+"!",bD);b.data(this,by,bA);bC.triggerHandler("changeData"+bB[1]+"!",bD)})}},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function a5(bx,bw,by){if(by===L&&bx.nodeType===1){var bv="data-"+bw.replace(aA,"-$1").toLowerCase();by=bx.getAttribute(bv);if(typeof by==="string"){try{by=by==="true"?true:by==="false"?false:by==="null"?null:b.isNumeric(by)?parseFloat(by):aS.test(by)?b.parseJSON(by):by}catch(bz){}b.data(bx,bw,by)}else{by=L}}return by}function S(bv){for(var e in bv){if(e==="data"&&b.isEmptyObject(bv[e])){continue}if(e!=="toJSON"){return false}}return true}function bi(by,bx,bA){var bw=bx+"defer",bv=bx+"queue",e=bx+"mark",bz=b._data(by,bw);if(bz&&(bA==="queue"||!b._data(by,bv))&&(bA==="mark"||!b._data(by,e))){setTimeout(function(){if(!b._data(by,bv)&&!b._data(by,e)){b.removeData(by,bw,true);bz.fire()}},0)}}b.extend({_mark:function(bv,e){if(bv){e=(e||"fx")+"mark";b._data(bv,e,(b._data(bv,e)||0)+1)}},_unmark:function(by,bx,bv){if(by!==true){bv=bx;bx=by;by=false}if(bx){bv=bv||"fx";var e=bv+"mark",bw=by?0:((b._data(bx,e)||1)-1);if(bw){b._data(bx,e,bw)}else{b.removeData(bx,e,true);bi(bx,bv,"mark")}}},queue:function(bv,e,bx){var bw;if(bv){e=(e||"fx")+"queue";bw=b._data(bv,e);if(bx){if(!bw||b.isArray(bx)){bw=b._data(bv,e,b.makeArray(bx))}else{bw.push(bx)}}return bw||[]}},dequeue:function(by,bx){bx=bx||"fx";var bv=b.queue(by,bx),bw=bv.shift(),e={};if(bw==="inprogress"){bw=bv.shift()}if(bw){if(bx==="fx"){bv.unshift("inprogress")}b._data(by,bx+".run",e);bw.call(by,function(){b.dequeue(by,bx)},e)}if(!bv.length){b.removeData(by,bx+"queue "+bx+".run",true);bi(by,bx,"queue")}}});b.fn.extend({queue:function(e,bv){if(typeof e!=="string"){bv=e;e="fx"}if(bv===L){return b.queue(this[0],e)}return this.each(function(){var bw=b.queue(this,e,bv);if(e==="fx"&&bw[0]!=="inprogress"){b.dequeue(this,e)}})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(bv,e){bv=b.fx?b.fx.speeds[bv]||bv:bv;e=e||"fx";return this.queue(e,function(bx,bw){var by=setTimeout(bx,bv);bw.stop=function(){clearTimeout(by)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(bD,bw){if(typeof bD!=="string"){bw=bD;bD=L}bD=bD||"fx";var e=b.Deferred(),bv=this,by=bv.length,bB=1,bz=bD+"defer",bA=bD+"queue",bC=bD+"mark",bx;function bE(){if(!(--bB)){e.resolveWith(bv,[bv])}}while(by--){if((bx=b.data(bv[by],bz,L,true)||(b.data(bv[by],bA,L,true)||b.data(bv[by],bC,L,true))&&b.data(bv[by],bz,b.Callbacks("once memory"),true))){bB++;bx.add(bE)}}bE();return e.promise()}});var aP=/[\n\t\r]/g,af=/\s+/,aU=/\r/g,g=/^(?:button|input)$/i,D=/^(?:button|input|object|select|textarea)$/i,l=/^a(?:rea)?$/i,ao=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,F=b.support.getSetAttribute,be,aY,aF;b.fn.extend({attr:function(e,bv){return b.access(this,e,bv,true,b.attr)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,bv){return b.access(this,e,bv,true,b.prop)},removeProp:function(e){e=b.propFix[e]||e;return this.each(function(){try{this[e]=L;delete this[e]}catch(bv){}})},addClass:function(by){var bA,bw,bv,bx,bz,bB,e;if(b.isFunction(by)){return this.each(function(bC){b(this).addClass(by.call(this,bC,this.className))})}if(by&&typeof by==="string"){bA=by.split(af);for(bw=0,bv=this.length;bw<bv;bw++){bx=this[bw];if(bx.nodeType===1){if(!bx.className&&bA.length===1){bx.className=by}else{bz=" "+bx.className+" ";for(bB=0,e=bA.length;bB<e;bB++){if(!~bz.indexOf(" "+bA[bB]+" ")){bz+=bA[bB]+" "}}bx.className=b.trim(bz)}}}}return this},removeClass:function(bz){var bA,bw,bv,by,bx,bB,e;if(b.isFunction(bz)){return this.each(function(bC){b(this).removeClass(bz.call(this,bC,this.className))})}if((bz&&typeof bz==="string")||bz===L){bA=(bz||"").split(af);for(bw=0,bv=this.length;bw<bv;bw++){by=this[bw];if(by.nodeType===1&&by.className){if(bz){bx=(" "+by.className+" ").replace(aP," ");for(bB=0,e=bA.length;bB<e;bB++){bx=bx.replace(" "+bA[bB]+" "," ")}by.className=b.trim(bx)}else{by.className=""}}}}return this},toggleClass:function(bx,bv){var bw=typeof bx,e=typeof bv==="boolean";if(b.isFunction(bx)){return this.each(function(by){b(this).toggleClass(bx.call(this,by,this.className,bv),bv)})}return this.each(function(){if(bw==="string"){var bA,bz=0,by=b(this),bB=bv,bC=bx.split(af);while((bA=bC[bz++])){bB=e?bB:!by.hasClass(bA);by[bB?"addClass":"removeClass"](bA)}}else{if(bw==="undefined"||bw==="boolean"){if(this.className){b._data(this,"__className__",this.className)}this.className=this.className||bx===false?"":b._data(this,"__className__")||""}}})},hasClass:function(e){var bx=" "+e+" ",bw=0,bv=this.length;for(;bw<bv;bw++){if(this[bw].nodeType===1&&(" "+this[bw].className+" ").replace(aP," ").indexOf(bx)>-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv<bz;bv++){bx=bC[bv];if(bx.selected&&(b.support.optDisabled?!bx.disabled:bx.getAttribute("disabled")===null)&&(!bx.parentNode.disabled||!b.nodeName(bx.parentNode,"optgroup"))){bA=b(bx).val();if(bw){return bA}bB.push(bA)}}if(bw&&!bB.length&&bC.length){return b(bC[by]).val()}return bB},set:function(bv,bw){var e=b.makeArray(bw);b(bv).find("option").each(function(){this.selected=b.inArray(b(this).val(),e)>=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw<e;bw++){bv=bA[bw];if(bv){by=b.propFix[bv]||bv;b.attr(bx,bv,"");bx.removeAttribute(F?bv:by);if(ao.test(bv)&&by in bx){bx[by]=false}}}}},attrHooks:{type:{set:function(e,bv){if(g.test(e.nodeName)&&e.parentNode){b.error("type property can't be changed")}else{if(!b.support.radioValue&&bv==="radio"&&b.nodeName(e,"input")){var bw=e.value;e.setAttribute("type",bv);if(bw){e.value=bw}return bv}}}},value:{get:function(bv,e){if(be&&b.nodeName(bv,"button")){return be.get(bv,e)}return e in bv?bv.value:null},set:function(bv,bw,e){if(be&&b.nodeName(bv,"button")){return be.set(bv,bw,e)}bv.value=bw}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(bz,bx,bA){var bw,e,by,bv=bz.nodeType;if(!bz||bv===3||bv===8||bv===2){return}by=bv!==1||!b.isXMLDoc(bz);if(by){bx=b.propFix[bx]||bx;e=b.propHooks[bx]}if(bA!==L){if(e&&"set" in e&&(bw=e.set(bz,bA,bx))!==L){return bw}else{return(bz[bx]=bA)}}else{if(e&&"get" in e&&(bw=e.get(bz,bx))!==null){return bw}else{return bz[bx]}}},propHooks:{tabIndex:{get:function(bv){var e=bv.getAttributeNode("tabindex");return e&&e.specified?parseInt(e.value,10):D.test(bv.nodeName)||l.test(bv.nodeName)&&bv.href?0:L}}}});b.attrHooks.tabindex=b.propHooks.tabIndex;aY={get:function(bv,e){var bx,bw=b.prop(bv,e);return bw===true||typeof bw!=="boolean"&&(bx=bv.getAttributeNode(e))&&bx.nodeValue!==false?e.toLowerCase():L},set:function(bv,bx,e){var bw;if(bx===false){b.removeAttr(bv,e)}else{bw=b.propFix[e]||e;if(bw in bv){bv[bw]=true}bv.setAttribute(e,e.toLowerCase())}return e}};if(!F){aF={name:true,id:true};be=b.valHooks.button={get:function(bw,bv){var e;e=bw.getAttributeNode(bv);return e&&(aF[bv]?e.nodeValue!=="":e.specified)?e.nodeValue:L},set:function(bw,bx,bv){var e=bw.getAttributeNode(bv);if(!e){e=av.createAttribute(bv);bw.setAttributeNode(e)}return(e.nodeValue=bx+"")}};b.attrHooks.tabindex.set=be.set;b.each(["width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{set:function(bw,bx){if(bx===""){bw.setAttribute(e,"auto");return bx}}})});b.attrHooks.contenteditable={get:be.get,set:function(bv,bw,e){if(bw===""){bw="false"}be.set(bv,bw,e)}}}if(!b.support.hrefNormalized){b.each(["href","src","width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{get:function(bx){var bw=bx.getAttribute(e,2);return bw===null?L:bw}})})}if(!b.support.style){b.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||L},set:function(e,bv){return(e.style.cssText=""+bv)}}}if(!b.support.optSelected){b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(bv){var e=bv.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}return null}})}if(!b.support.enctype){b.propFix.enctype="encoding"}if(!b.support.checkOn){b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}})}b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,bv){if(b.isArray(bv)){return(e.checked=b.inArray(b(e).val(),bv)>=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI<bC.length;bI++){bH=n.exec(bC[bI])||[];bF=bH[1];e=(bH[2]||"").split(".").sort();bE=b.event.special[bF]||{};bF=(by?bE.delegateType:bE.bindType)||bF;bE=b.event.special[bF]||{};bG=b.extend({type:bF,origType:bH[1],data:bA,handler:bJ,guid:bJ.guid,selector:by,quick:Y(by),namespace:e.join(".")},bv);bw=bK[bF];if(!bw){bw=bK[bF]=[];bw.delegateCount=0;if(!bE.setup||bE.setup.call(bx,bA,e,bB)===false){if(bx.addEventListener){bx.addEventListener(bF,bB,false)}else{if(bx.attachEvent){bx.attachEvent("on"+bF,bB)}}}}if(bE.add){bE.add.call(bx,bG);if(!bG.handler.guid){bG.handler.guid=bJ.guid}}if(by){bw.splice(bw.delegateCount++,0,bG)}else{bw.push(bG)}b.event.global[bF]=true}bx=null},global:{},remove:function(bJ,bE,bv,bH,bB){var bI=b.hasData(bJ)&&b._data(bJ),bF,bx,bz,bL,bC,bA,bG,bw,by,bK,bD,e;if(!bI||!(bw=bI.events)){return}bE=b.trim(bt(bE||"")).split(" ");for(bF=0;bF<bE.length;bF++){bx=n.exec(bE[bF])||[];bz=bL=bx[1];bC=bx[2];if(!bz){for(bz in bw){b.event.remove(bJ,bz+bE[bF],bv,bH,true)}continue}by=b.event.special[bz]||{};bz=(bH?by.delegateType:by.bindType)||bz;bD=bw[bz]||[];bA=bD.length;bC=bC?new RegExp("(^|\\.)"+bC.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(bG=0;bG<bD.length;bG++){e=bD[bG];if((bB||bL===e.origType)&&(!bv||bv.guid===e.guid)&&(!bC||bC.test(e.namespace))&&(!bH||bH===e.selector||bH==="**"&&e.selector)){bD.splice(bG--,1);if(e.selector){bD.delegateCount--}if(by.remove){by.remove.call(bJ,e)}}}if(bD.length===0&&bA!==bD.length){if(!by.teardown||by.teardown.call(bJ,bC)===false){b.removeEvent(bJ,bz,bI.handle)}delete bw[bz]}}if(b.isEmptyObject(bw)){bK=bI.handle;if(bK){bK.elem=null}b.removeData(bJ,["events","handle"],true)}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(bv,bD,bA,bJ){if(bA&&(bA.nodeType===3||bA.nodeType===8)){return}var bG=bv.type||bv,bx=[],e,bw,bC,bH,bz,by,bF,bE,bB,bI;if(T.test(bG+b.event.triggered)){return}if(bG.indexOf("!")>=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bC<bB.length&&!bv.isPropagationStopped();bC++){bH=bB[bC][0];bv.type=bB[bC][1];bE=(b._data(bH,"events")||{})[bv.type]&&b._data(bH,"handle");if(bE){bE.apply(bH,bD)}bE=by&&bH[by];if(bE&&b.acceptData(bH)&&bE.apply(bH,bD)===false){bv.preventDefault()}}bv.type=bG;if(!bJ&&!bv.isDefaultPrevented()){if((!bF._default||bF._default.apply(bA.ownerDocument,bD)===false)&&!(bG==="click"&&b.nodeName(bA,"a"))&&b.acceptData(bA)){if(by&&bA[bG]&&((bG!=="focus"&&bG!=="blur")||bv.target.offsetWidth!==0)&&!b.isWindow(bA)){bz=bA[by];if(bz){bA[by]=null}b.event.triggered=bG;bA[bG]();b.event.triggered=L;if(bz){bA[by]=bz}}}}return bv.result},dispatch:function(e){e=b.event.fix(e||bb.event);var bz=((b._data(this,"events")||{})[e.type]||[]),bA=bz.delegateCount,bG=[].slice.call(arguments,0),by=!e.exclusive&&!e.namespace,bH=[],bC,bB,bK,bx,bF,bE,bv,bD,bI,bw,bJ;bG[0]=e;e.delegateTarget=this;if(bA&&!e.target.disabled&&!(e.button&&e.type==="click")){bx=b(this);bx.context=this.ownerDocument||this;for(bK=e.target;bK!=this;bK=bK.parentNode||this){bE={};bD=[];bx[0]=bK;for(bC=0;bC<bA;bC++){bI=bz[bC];bw=bI.selector;if(bE[bw]===L){bE[bw]=(bI.quick?j(bK,bI.quick):bx.is(bw))}if(bE[bw]){bD.push(bI)}}if(bD.length){bH.push({elem:bK,matches:bD})}}}if(bz.length>bA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC<bH.length&&!e.isPropagationStopped();bC++){bv=bH[bC];e.currentTarget=bv.elem;for(bB=0;bB<bv.matches.length&&!e.isImmediatePropagationStopped();bB++){bI=bv.matches[bB];if(by||(!e.namespace&&!bI.namespace)||e.namespace_re&&e.namespace_re.test(bI.namespace)){e.data=bI.data;e.handleObj=bI;bF=((b.event.special[bI.origType]||{}).handle||bI.handler).apply(bv.elem,bG);if(bF!==L){e.result=bF;if(bF===false){e.preventDefault();e.stopPropagation()}}}}}return e.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(bv,e){if(bv.which==null){bv.which=e.charCode!=null?e.charCode:e.keyCode}return bv}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(bx,bw){var by,bz,e,bv=bw.button,bA=bw.fromElement;if(bx.pageX==null&&bw.clientX!=null){by=bx.target.ownerDocument||av;bz=by.documentElement;e=by.body;bx.pageX=bw.clientX+(bz&&bz.scrollLeft||e&&e.scrollLeft||0)-(bz&&bz.clientLeft||e&&e.clientLeft||0);bx.pageY=bw.clientY+(bz&&bz.scrollTop||e&&e.scrollTop||0)-(bz&&bz.clientTop||e&&e.clientTop||0)}if(!bx.relatedTarget&&bA){bx.relatedTarget=bA===bx.target?bw.toElement:bA}if(!bx.which&&bv!==L){bx.which=(bv&1?1:(bv&2?3:(bv&4?2:0)))}return bx}},fix:function(bw){if(bw[b.expando]){return bw}var bv,bz,e=bw,bx=b.event.fixHooks[bw.type]||{},by=bx.props?this.props.concat(bx.props):this.props;bw=b.Event(e);for(bv=by.length;bv;){bz=by[--bv];bw[bz]=e[bz]}if(!bw.target){bw.target=e.srcElement||av}if(bw.target.nodeType===3){bw.target=bw.target.parentNode}if(bw.metaKey===L){bw.metaKey=bw.ctrlKey}return bx.filter?bx.filter(bw,e):bw},special:{ready:{setup:b.bindReady},load:{noBubble:true},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(bw,bv,e){if(b.isWindow(this)){this.onbeforeunload=e}},teardown:function(bv,e){if(this.onbeforeunload===e){this.onbeforeunload=null}}}},simulate:function(bw,by,bx,bv){var bz=b.extend(new b.Event(),bx,{type:bw,isSimulated:true,originalEvent:{}});if(bv){b.event.trigger(bz,null,by)}else{b.event.dispatch.call(by,bz)}if(bz.isDefaultPrevented()){bx.preventDefault()}}};b.event.handle=b.event.dispatch;b.removeEvent=av.removeEventListener?function(bv,e,bw){if(bv.removeEventListener){bv.removeEventListener(e,bw,false)}}:function(bv,e,bw){if(bv.detachEvent){bv.detachEvent("on"+e,bw)}};b.Event=function(bv,e){if(!(this instanceof b.Event)){return new b.Event(bv,e)}if(bv&&bv.type){this.originalEvent=bv;this.type=bv.type;this.isDefaultPrevented=(bv.defaultPrevented||bv.returnValue===false||bv.getPreventDefault&&bv.getPreventDefault())?i:bk}else{this.type=bv}if(e){b.extend(this,e)}this.timeStamp=bv&&bv.timeStamp||b.now();this[b.expando]=true};function bk(){return false}function i(){return true}b.Event.prototype={preventDefault:function(){this.isDefaultPrevented=i;var bv=this.originalEvent;if(!bv){return}if(bv.preventDefault){bv.preventDefault()}else{bv.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=i;var bv=this.originalEvent;if(!bv){return}if(bv.stopPropagation){bv.stopPropagation()}bv.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=i;this.stopPropagation()},isDefaultPrevented:bk,isPropagationStopped:bk,isImmediatePropagationStopped:bk};b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(bv,e){b.event.special[bv]={delegateType:e,bindType:e,handle:function(bz){var bB=this,bA=bz.relatedTarget,by=bz.handleObj,bw=by.selector,bx;if(!bA||(bA!==bB&&!b.contains(bB,bA))){bz.type=by.origType;bx=by.handler.apply(this,arguments);bz.type=e}return bx}}});if(!b.support.submitBubbles){b.event.special.submit={setup:function(){if(b.nodeName(this,"form")){return false}b.event.add(this,"click._submit keypress._submit",function(bx){var bw=bx.target,bv=b.nodeName(bw,"input")||b.nodeName(bw,"button")?bw.form:L;if(bv&&!bv._submit_attached){b.event.add(bv,"submit._submit",function(e){if(this.parentNode&&!e.isTrigger){b.event.simulate("submit",this.parentNode,e,true)}});bv._submit_attached=true}})},teardown:function(){if(b.nodeName(this,"form")){return false}b.event.remove(this,"._submit")}}}if(!b.support.changeBubbles){b.event.special.change={setup:function(){if(bd.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){b.event.add(this,"propertychange._change",function(e){if(e.originalEvent.propertyName==="checked"){this._just_changed=true}});b.event.add(this,"click._change",function(e){if(this._just_changed&&!e.isTrigger){this._just_changed=false;b.event.simulate("change",this,e,true)}})}return false}b.event.add(this,"beforeactivate._change",function(bw){var bv=bw.target;if(bd.test(bv.nodeName)&&!bv._change_attached){b.event.add(bv,"change._change",function(e){if(this.parentNode&&!e.isSimulated&&!e.isTrigger){b.event.simulate("change",this.parentNode,e,true)}});bv._change_attached=true}})},handle:function(bv){var e=bv.target;if(this!==e||bv.isSimulated||bv.isTrigger||(e.type!=="radio"&&e.type!=="checkbox")){return bv.handleObj.handler.apply(this,arguments)}},teardown:function(){b.event.remove(this,"._change");return bd.test(this.nodeName)}}}if(!b.support.focusinBubbles){b.each({focus:"focusin",blur:"focusout"},function(bx,e){var bv=0,bw=function(by){b.event.simulate(e,by.target,b.event.fix(by),true)};b.event.special[e]={setup:function(){if(bv++===0){av.addEventListener(bx,bw,true)}},teardown:function(){if(--bv===0){av.removeEventListener(bx,bw,true)}}}})}b.fn.extend({on:function(bw,e,bz,by,bv){var bA,bx;if(typeof bw==="object"){if(typeof e!=="string"){bz=e;e=L}for(bx in bw){this.on(bx,e,bz,bw[bx],bv)}return this}if(bz==null&&by==null){by=e;bz=e=L}else{if(by==null){if(typeof e==="string"){by=bz;bz=L}else{by=bz;bz=e;e=L}}}if(by===false){by=bk}else{if(!by){return this}}if(bv===1){bA=by;by=function(bB){b().off(bB);return bA.apply(this,arguments)};by.guid=bA.guid||(bA.guid=b.guid++)}return this.each(function(){b.event.add(this,bw,by,bz,e)})},one:function(bv,e,bx,bw){return this.on.call(this,bv,e,bx,bw,1)},off:function(bw,e,by){if(bw&&bw.preventDefault&&bw.handleObj){var bv=bw.handleObj;b(bw.delegateTarget).off(bv.namespace?bv.type+"."+bv.namespace:bv.type,bv.selector,bv.handler);return this}if(typeof bw==="object"){for(var bx in bw){this.off(bx,e,bw[bx])}return this}if(e===false||typeof e==="function"){by=e;e=L}if(by===false){by=bk}return this.each(function(){b.event.remove(this,bw,by,e)})},bind:function(e,bw,bv){return this.on(e,null,bw,bv)},unbind:function(e,bv){return this.off(e,null,bv)},live:function(e,bw,bv){b(this.context).on(e,this.selector,bw,bv);return this},die:function(e,bv){b(this.context).off(e,this.selector||"**",bv);return this},delegate:function(e,bv,bx,bw){return this.on(bv,e,bx,bw)},undelegate:function(e,bv,bw){return arguments.length==1?this.off(e,"**"):this.off(bv,e,bw)},trigger:function(e,bv){return this.each(function(){b.event.trigger(e,bv,this)})},triggerHandler:function(e,bv){if(this[0]){return b.event.trigger(e,bv,this[0],true)}},toggle:function(bx){var bv=arguments,e=bx.guid||b.guid++,bw=0,by=function(bz){var bA=(b._data(this,"lastToggle"+bx.guid)||0)%bw;b._data(this,"lastToggle"+bx.guid,bA+1);bz.preventDefault();return bv[bA].apply(this,arguments)||false};by.guid=e;while(bw<bv.length){bv[bw++].guid=e}return this.click(by)},hover:function(e,bv){return this.mouseenter(e).mouseleave(bv||e)}});b.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu").split(" "),function(bv,e){b.fn[e]=function(bx,bw){if(bw==null){bw=bx;bx=null}return arguments.length>0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}});
+/*!
+ * Sizzle CSS Selector Engine
+ *  Copyright 2011, The Dojo Foundation
+ *  Released under the MIT, BSD, and GPL Licenses.
+ *  More information: http://sizzlejs.com/
+ */
+(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e<bR.length;e++){if(bR[e]===bR[e-1]){bR.splice(e--,1)}}}}return bR};by.matches=function(e,bR){return by(e,null,null,bR)};by.matchesSelector=function(e,bR){return by(bR,null,null,[e]).length>0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS<bU;bS++){bV=bE.order[bS];if((bT=bE.leftMatch[bV].exec(bX))){bR=bT[1];bT.splice(1,1);if(bR.substr(bR.length-1)!=="\\"){bT[1]=(bT[1]||"").replace(bK,"");bW=bE.find[bV](bT,e,bY);if(bW!=null){bX=bX.replace(bE.match[bV],"");break}}}}if(!bW){bW=typeof e.getElementsByTagName!=="undefined"?e.getElementsByTagName("*"):[]}return{set:bW,expr:bX}};by.filter=function(b1,b0,b4,bU){var bW,e,bZ,b6,b3,bR,bT,bV,b2,bS=b1,b5=[],bY=b0,bX=b0&&b0[0]&&by.isXML(b0[0]);while(b1&&b0.length){for(bZ in bE.filter){if((bW=bE.leftMatch[bZ].exec(b1))!=null&&bW[2]){bR=bE.filter[bZ];bT=bW[1];e=false;bW.splice(1,1);if(bT.substr(bT.length-1)==="\\"){continue}if(bY===b5){b5=[]}if(bE.preFilter[bZ]){bW=bE.preFilter[bZ](bW,bY,b4,b5,bU,bX);if(!bW){e=b6=true}else{if(bW===true){continue}}}if(bW){for(bV=0;(b3=bY[bV])!=null;bV++){if(b3){b6=bR(b3,bW,bV,bY);b2=bU^b6;if(b4&&b6!=null){if(b2){e=true}else{bY[bV]=false}}else{if(b2){b5.push(b3);e=true}}}}}if(b6!==L){if(!b4){bY=b5}b1=b1.replace(bE.match[bZ],"");if(!e){return[]}break}}}if(b1===bS){if(e==null){by.error(b1)}else{break}}bS=b1}return bY};by.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};var bw=by.getText=function(bU){var bS,bT,e=bU.nodeType,bR="";if(e){if(e===1||e===9){if(typeof bU.textContent==="string"){return bU.textContent}else{if(typeof bU.innerText==="string"){return bU.innerText.replace(bO,"")}else{for(bU=bU.firstChild;bU;bU=bU.nextSibling){bR+=bw(bU)}}}}else{if(e===3||e===4){return bU.nodeValue}}}else{for(bS=0;(bT=bU[bS]);bS++){if(bT.nodeType!==8){bR+=bw(bT)}}}return bR};var bE=by.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(bW,bR){var bT=typeof bR==="string",bV=bT&&!bQ.test(bR),bX=bT&&!bV;if(bV){bR=bR.toLowerCase()}for(var bS=0,e=bW.length,bU;bS<e;bS++){if((bU=bW[bS])){while((bU=bU.previousSibling)&&bU.nodeType!==1){}bW[bS]=bX||bU&&bU.nodeName.toLowerCase()===bR?bU||false:bU===bR}}if(bX){by.filter(bR,bW,true)}},">":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS<e;bS++){bV=bW[bS];if(bV){var bT=bV.parentNode;bW[bS]=bT.nodeName.toLowerCase()===bR?bT:false}}}else{for(;bS<e;bS++){bV=bW[bS];if(bV){bW[bS]=bU?bV.parentNode:bV.parentNode===bR}}if(bU){by.filter(bR,bW,true)}}},"":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("parentNode",bR,bS,bT,bU,bV)},"~":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("previousSibling",bR,bS,bT,bU,bV)}},find:{ID:function(bR,bS,bT){if(typeof bS.getElementById!=="undefined"&&!bT){var e=bS.getElementById(bR[1]);return e&&e.parentNode?[e]:[]}},NAME:function(bS,bV){if(typeof bV.getElementsByName!=="undefined"){var bR=[],bU=bV.getElementsByName(bS[1]);for(var bT=0,e=bU.length;bT<e;bT++){if(bU[bT].getAttribute("name")===bS[1]){bR.push(bU[bT])}}return bR.length===0?null:bR}},TAG:function(e,bR){if(typeof bR.getElementsByTagName!=="undefined"){return bR.getElementsByTagName(e[1])}}},preFilter:{CLASS:function(bT,bR,bS,e,bW,bX){bT=" "+bT[1].replace(bK,"")+" ";if(bX){return bT}for(var bU=0,bV;(bV=bR[bU])!=null;bU++){if(bV){if(bW^(bV.className&&(" "+bV.className+" ").replace(/[\t\n\r]/g," ").indexOf(bT)>=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bR<e[3]-0},gt:function(bS,bR,e){return bR>e[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV<bU;bV++){if(bT[bV]===bS){return false}}return true}else{by.error(e)}}}},CHILD:function(bS,bU){var bT,b0,bW,bZ,e,bV,bY,bX=bU[1],bR=bS;switch(bX){case"only":case"first":while((bR=bR.previousSibling)){if(bR.nodeType===1){return false}}if(bX==="first"){return true}bR=bS;case"last":while((bR=bR.nextSibling)){if(bR.nodeType===1){return false}}return true;case"nth":bT=bU[2];b0=bU[3];if(bT===1&&b0===0){return true}bW=bU[0];bZ=bS.parentNode;if(bZ&&(bZ[bC]!==bW||!bS.nodeIndex)){bV=0;for(bR=bZ.firstChild;bR;bR=bR.nextSibling){if(bR.nodeType===1){bR.nodeIndex=++bV}}bZ[bC]=bW}bY=bS.nodeIndex-b0;if(bT===0){return bY===0}else{return(bY%bT===0&&bY/bT>=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS<e;bS++){bR.push(bU[bS])}}else{for(;bU[bS];bS++){bR.push(bU[bS])}}}return bR}}var bJ,bG;if(av.documentElement.compareDocumentPosition){bJ=function(bR,e){if(bR===e){bB=true;return 0}if(!bR.compareDocumentPosition||!e.compareDocumentPosition){return bR.compareDocumentPosition?-1:1}return bR.compareDocumentPosition(e)&4?-1:1}}else{bJ=function(bY,bX){if(bY===bX){bB=true;return 0}else{if(bY.sourceIndex&&bX.sourceIndex){return bY.sourceIndex-bX.sourceIndex}}var bV,bR,bS=[],e=[],bU=bY.parentNode,bW=bX.parentNode,bZ=bU;if(bU===bW){return bG(bY,bX)}else{if(!bU){return -1}else{if(!bW){return 1}}}while(bZ){bS.unshift(bZ);bZ=bZ.parentNode}bZ=bW;while(bZ){e.unshift(bZ);bZ=bZ.parentNode}bV=bS.length;bR=e.length;for(var bT=0;bT<bV&&bT<bR;bT++){if(bS[bT]!==e[bT]){return bG(bS[bT],e[bT])}}return bT===bV?bG(bY,e[bT],-1):bG(bS[bT],bX,1)};bG=function(bR,e,bS){if(bR===e){return bS}var bT=bR.nextSibling;while(bT){if(bT===e){return -1}bT=bT.nextSibling}return 1}}(function(){var bR=av.createElement("div"),bS="script"+(new Date()).getTime(),e=av.documentElement;bR.innerHTML="<a name='"+bS+"'/>";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="<p class='TEST'></p>";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1&&!bY){e[bC]=bV;e.sizset=bT}if(e.nodeName.toLowerCase()===bW){bU=e;break}e=e[bR]}bZ[bT]=bU}}}function bN(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1){if(!bY){e[bC]=bV;e.sizset=bT}if(typeof bW!=="string"){if(e===bW){bU=true;break}}else{if(by.filter(bW,[e]).length>0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT<bR;bT++){by(bS,bY[bT],bX,bW)}return by.filter(bU,bX)};by.attr=b.attr;by.selectors.attrMap={};b.find=by;b.expr=by.selectors;b.expr[":"]=b.expr.filters;b.unique=by.uniqueSort;b.text=by.getText;b.isXMLDoc=by.isXML;b.contains=by.contains})();var ab=/Until$/,aq=/^(?:parents|prevUntil|prevAll)/,a9=/,/,bp=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,H=b.expr.match.POS,ay={children:true,contents:true,next:true,prev:true};b.fn.extend({find:function(e){var bw=this,by,bv;if(typeof e!=="string"){return b(e).filter(function(){for(by=0,bv=bw.length;by<bv;by++){if(b.contains(bw[by],this)){return true}}})}var bx=this.pushStack("","find",e),bA,bB,bz;for(by=0,bv=this.length;by<bv;by++){bA=bx.length;b.find(e,this[by],bx);if(by>0){for(bB=bA;bB<bx.length;bB++){for(bz=0;bz<bA;bz++){if(bx[bz]===bx[bB]){bx.splice(bB--,1);break}}}}}return bx},has:function(bv){var e=b(bv);return this.filter(function(){for(var bx=0,bw=e.length;bx<bw;bx++){if(b.contains(this,e[bx])){return true}}})},not:function(e){return this.pushStack(aG(this,e,false),"not",e)},filter:function(e){return this.pushStack(aG(this,e,true),"filter",e)},is:function(e){return !!e&&(typeof e==="string"?H.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw<by.length;bw++){if(b(bz).is(by[bw])){bv.push({selector:by[bw],elem:bz,level:bB})}}bz=bz.parentNode;bB++}return bv}var bA=H.test(by)||typeof by!=="string"?b(by,bx||this.context):0;for(bw=0,e=this.length;bw<e;bw++){bz=this[bw];while(bz){if(bA?bA.index(bz)>-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/<tbody/i,W=/<|&#?\w+;/,ae=/<(?:script|style)/i,O=/<(?:script|object|embed|option|style)/i,ah=new RegExp("<(?:"+aR+")","i"),o=/checked\s*(?:[^=]|=\s*.checked.)/i,bm=/\/(java|ecma)script/i,aN=/^\s*<!(?:\[CDATA\[|\-\-)/,ax={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div<div>","</div>"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1></$2>");try{for(var bw=0,bv=this.length;bw<bv;bw++){if(this[bw].nodeType===1){b.cleanData(this[bw].getElementsByTagName("*"));this[bw].innerHTML=bx}}}catch(by){this.empty().append(bx)}}else{if(b.isFunction(bx)){this.each(function(bz){var e=b(this);e.html(bx.call(this,bz,e.html()))})}else{this.empty().append(bx)}}}return this},replaceWith:function(e){if(this[0]&&this[0].parentNode){if(b.isFunction(e)){return this.each(function(bx){var bw=b(this),bv=bw.html();bw.replaceWith(e.call(this,bx,bv))})}if(typeof e!=="string"){e=b(e).detach()}return this.each(function(){var bw=this.nextSibling,bv=this.parentNode;b(this).remove();if(bw){b(bw).before(e)}else{b(bv).append(e)}})}else{return this.length?this.pushStack(b(b.isFunction(e)?e():e),"replaceWith",e):this}},detach:function(e){return this.remove(e,true)},domManip:function(bB,bF,bE){var bx,by,bA,bD,bC=bB[0],bv=[];if(!b.support.checkClone&&arguments.length===3&&typeof bC==="string"&&o.test(bC)){return this.each(function(){b(this).domManip(bB,bF,bE,true)})}if(b.isFunction(bC)){return this.each(function(bH){var bG=b(this);bB[0]=bC.call(this,bH,bF?bG.html():L);bG.domManip(bB,bF,bE)})}if(this[0]){bD=bC&&bC.parentNode;if(b.support.parentNode&&bD&&bD.nodeType===11&&bD.childNodes.length===this.length){bx={fragment:bD}}else{bx=b.buildFragment(bB,this,bv)}bA=bx.fragment;if(bA.childNodes.length===1){by=bA=bA.firstChild}else{by=bA.firstChild}if(by){bF=bF&&b.nodeName(by,"tr");for(var bw=0,e=this.length,bz=e-1;bw<e;bw++){bE.call(bF?ba(this[bw],by):this[bw],bx.cacheable||(e>1&&bw<bz)?b.clone(bA,true,true):bA)}}if(bv.length){b.each(bv,bo)}}return this}});function ba(e,bv){return b.nodeName(e,"table")?(e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody"))):e}function t(bB,bv){if(bv.nodeType!==1||!b.hasData(bB)){return}var by,bx,e,bA=b._data(bB),bz=b._data(bv,bA),bw=bA.events;if(bw){delete bz.handle;bz.events={};for(by in bw){for(bx=0,e=bw[by].length;bx<e;bx++){b.event.add(bv,by+(bw[by][bx].namespace?".":"")+bw[by][bx].namespace,bw[by][bx],bw[by][bx].data)}}}if(bz.data){bz.data=b.extend({},bz.data)}}function ai(bv,e){var bw;if(e.nodeType!==1){return}if(e.clearAttributes){e.clearAttributes()}if(e.mergeAttributes){e.mergeAttributes(bv)}bw=e.nodeName.toLowerCase();if(bw==="object"){e.outerHTML=bv.outerHTML}else{if(bw==="input"&&(bv.type==="checkbox"||bv.type==="radio")){if(bv.checked){e.defaultChecked=e.checked=bv.checked}if(e.value!==bv.value){e.value=bv.value}}else{if(bw==="option"){e.selected=bv.defaultSelected}else{if(bw==="input"||bw==="textarea"){e.defaultValue=bv.defaultValue}}}}e.removeAttribute(b.expando)}b.buildFragment=function(bz,bx,bv){var by,e,bw,bA,bB=bz[0];if(bx&&bx[0]){bA=bx[0].ownerDocument||bx[0]}if(!bA.createDocumentFragment){bA=av}if(bz.length===1&&typeof bB==="string"&&bB.length<512&&bA===av&&bB.charAt(0)==="<"&&!O.test(bB)&&(b.support.checkClone||!o.test(bB))&&(b.support.html5Clone||!ah.test(bB))){e=true;bw=b.fragments[bB];if(bw&&bw!==1){by=bw}}if(!by){by=bA.createDocumentFragment();b.clean(bz,bA,by,bv)}if(e){b.fragments[bB]=bw?by:1}return{fragment:by,cacheable:e}};b.fragments={};b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,bv){b.fn[e]=function(bw){var bz=[],bC=b(bw),bB=this.length===1&&this[0].parentNode;if(bB&&bB.nodeType===11&&bB.childNodes.length===1&&bC.length===1){bC[bv](this[0]);return this}else{for(var bA=0,bx=bC.length;bA<bx;bA++){var by=(bA>0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1></$2>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]==="<table>"&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB<bG;bB++){E(bz[bB])}}else{E(bz)}}if(bz.nodeType){bI.push(bz)}else{bI=b.merge(bI,bz)}}if(bH){bF=function(bL){return !bL.type||bm.test(bL.type)};for(bE=0;bI[bE];bE++){if(bA&&b.nodeName(bI[bE],"script")&&(!bI[bE].type||bI[bE].type.toLowerCase()==="text/javascript")){bA.push(bI[bE].parentNode?bI[bE].parentNode.removeChild(bI[bE]):bI[bE])}else{if(bI[bE].nodeType===1){var bJ=b.grep(bI[bE].getElementsByTagName("script"),bF);bI.splice.apply(bI,[bE+1,0].concat(bJ))}bH.appendChild(bI[bE])}}}return bI},cleanData:function(bv){var by,bw,e=b.cache,bB=b.event.special,bA=b.support.deleteExpando;for(var bz=0,bx;(bx=bv[bz])!=null;bz++){if(bx.nodeName&&b.noData[bx.nodeName.toLowerCase()]){continue}bw=bx[b.expando];if(bw){by=e[bw];if(by&&by.events){for(var bC in by.events){if(bB[bC]){b.event.remove(bx,bC)}else{b.removeEvent(bx,bC,by.handle)}}if(by.handle){by.handle.elem=null}}if(bA){delete bx[b.expando]}else{if(bx.removeAttribute){bx.removeAttribute(b.expando)}}delete e[bw]}}}});function bo(e,bv){if(bv.src){b.ajax({url:bv.src,async:false,dataType:"script"})}else{b.globalEval((bv.text||bv.textContent||bv.innerHTML||"").replace(aN,"/*$0*/"))}if(bv.parentNode){bv.parentNode.removeChild(bv)}}var ak=/alpha\([^)]*\)/i,au=/opacity=([^)]*)/,z=/([A-Z]|^ms)/g,bc=/^-?\d+(?:px)?$/i,bn=/^-?\d/,I=/^([\-+])=([\-+.\de]+)/,a7={position:"absolute",visibility:"hidden",display:"block"},an=["Left","Right"],a1=["Top","Bottom"],Z,aI,aX;b.fn.css=function(e,bv){if(arguments.length===2&&bv===L){return this}return b.access(this,e,bv,true,function(bx,bw,by){return by!==L?b.style(bx,bw,by):b.css(bx,bw)})};b.extend({cssHooks:{opacity:{get:function(bw,bv){if(bv){var e=Z(bw,"opacity","opacity");return e===""?"1":e}else{return bw.style.opacity}}}},cssNumber:{fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(bx,bw,bD,by){if(!bx||bx.nodeType===3||bx.nodeType===8||!bx.style){return}var bB,bC,bz=b.camelCase(bw),bv=bx.style,bE=b.cssHooks[bz];bw=b.cssProps[bz]||bz;if(bD!==L){bC=typeof bD;if(bC==="string"&&(bB=I.exec(bD))){bD=(+(bB[1]+1)*+bB[2])+parseFloat(b.css(bx,bw));bC="number"}if(bD==null||bC==="number"&&isNaN(bD)){return}if(bC==="number"&&!b.cssNumber[bz]){bD+="px"}if(!bE||!("set" in bE)||(bD=bE.set(bx,bD))!==L){try{bv[bw]=bD}catch(bA){}}}else{if(bE&&"get" in bE&&(bB=bE.get(bx,false,by))!==L){return bB}return bv[bw]}},css:function(by,bx,bv){var bw,e;bx=b.camelCase(bx);e=b.cssHooks[bx];bx=b.cssProps[bx]||bx;if(bx==="cssFloat"){bx="float"}if(e&&"get" in e&&(bw=e.get(by,true,bv))!==L){return bw}else{if(Z){return Z(by,bx)}}},swap:function(bx,bw,by){var e={};for(var bv in bw){e[bv]=bx.style[bv];bx.style[bv]=bw[bv]}by.call(bx);for(bv in bw){bx.style[bv]=e[bv]}}});b.curCSS=b.css;b.each(["height","width"],function(bv,e){b.cssHooks[e]={get:function(by,bx,bw){var bz;if(bx){if(by.offsetWidth!==0){return p(by,e,bw)}else{b.swap(by,a7,function(){bz=p(by,e,bw)})}return bz}},set:function(bw,bx){if(bc.test(bx)){bx=parseFloat(bx);if(bx>=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx<e;bx++){if(!bv){bA-=parseFloat(b.css(by,"padding"+bz[bx]))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}else{bA-=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}}}return bA+"px"}bA=Z(by,bw,bw);if(bA<0||bA==null){bA=by.style[bw]||0}bA=parseFloat(bA)||0;if(bv){for(;bx<e;bx++){bA+=parseFloat(b.css(by,"padding"+bz[bx]))||0;if(bv!=="padding"){bA+=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}}}return bA+"px"}if(b.expr&&b.expr.filters){b.expr.filters.hidden=function(bw){var bv=bw.offsetWidth,e=bw.offsetHeight;return(bv===0&&e===0)||(!b.support.reliableHiddenOffsets&&((bw.style&&bw.style.display)||b.css(bw,"display"))==="none")};b.expr.filters.visible=function(e){return !b.expr.filters.hidden(e)}}var k=/%20/g,ap=/\[\]$/,bs=/\r?\n/g,bq=/#.*$/,aD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,aZ=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aM=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,aQ=/^(?:GET|HEAD)$/,c=/^\/\//,M=/\?/,a6=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw<bz;bw++){bv=bx[bw];bC=/^\+/.test(bv);if(bC){bv=bv.substr(1)||"*"}bB=e[bv]=e[bv]||[];bB[bC?"unshift":"push"](bA)}}}}function aW(bv,bE,bz,bD,bB,bx){bB=bB||bE.dataTypes[0];bx=bx||{};bx[bB]=true;var bA=bv[bB],bw=0,e=bA?bA.length:0,by=(bv===aa),bC;for(;bw<e&&(by||!bC);bw++){bC=bA[bw](bE,bz,bD);if(typeof bC==="string"){if(!by||bx[bC]){bC=L}else{bE.dataTypes.unshift(bC);bC=aW(bv,bE,bz,bD,bC,bx)}}}if((by||!bC)&&!bx["*"]){bC=aW(bv,bE,bz,bD,"*",bx)}return bC}function am(bw,bx){var bv,e,by=b.ajaxSettings.flatOptions||{};for(bv in bx){if(bx[bv]!==L){(by[bv]?bw:(e||(e={})))[bv]=bx[bv]}}if(e){b.extend(true,bw,e)}}b.fn.extend({load:function(bw,bz,bA){if(typeof bw!=="string"&&A){return A.apply(this,arguments)}else{if(!this.length){return this}}var by=bw.indexOf(" ");if(by>=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("<div>").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA<bw;bA++){if(bA===1){for(bE in bH.converters){if(typeof bE==="string"){bG[bE.toLowerCase()]=bH.converters[bE]}}}bx=bC;bC=bD[bA];if(bC==="*"){bC=bx}else{if(bx!=="*"&&bx!==bC){by=bx+" "+bC;bF=bG[by]||bG["* "+bC];if(!bF){e=L;for(bv in bG){bB=bv.split(" ");if(bB[0]===bx||bB[0]==="*"){e=bG[bB[1]+" "+bC];if(e){bv=bG[bv];if(bv===true){bF=e}else{if(e===true){bF=bv}}break}}}}if(!(bF||e)){b.error("No conversion from "+by.replace(" "," to "))}if(bF!==true){bz=bF?bF(bz):e(bv(bz))}}}}return bz}var aC=b.now(),u=/(\=)\?(&|$)|\?\?/i;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return b.expando+"_"+(aC++)}});b.ajaxPrefilter("json jsonp",function(bD,bA,bC){var bx=bD.contentType==="application/x-www-form-urlencoded"&&(typeof bD.data==="string");if(bD.dataTypes[0]==="jsonp"||bD.jsonp!==false&&(u.test(bD.url)||bx&&u.test(bD.data))){var bB,bw=bD.jsonpCallback=b.isFunction(bD.jsonpCallback)?bD.jsonpCallback():bD.jsonpCallback,bz=bb[bw],e=bD.url,by=bD.data,bv="$1"+bw+"$2";if(bD.jsonp!==false){e=e.replace(u,bv);if(bD.url===e){if(bx){by=by.replace(u,bv)}if(bD.data===by){e+=(/\?/.test(e)?"&":"?")+bD.jsonp+"="+bw}}}bD.url=e;bD.data=by;bb[bw]=function(bE){bB=[bE]};bC.always(function(){bb[bw]=bz;if(bB&&b.isFunction(bz)){bb[bw](bB[0])}});bD.converters["script json"]=function(){if(!bB){b.error(bw+" was not called")}return bB[0]};bD.dataTypes[0]="json";return"script"}});b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){b.globalEval(e);return e}}});b.ajaxPrefilter("script",function(e){if(e.cache===L){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});b.ajaxTransport("script",function(bw){if(bw.crossDomain){var e,bv=av.head||av.getElementsByTagName("head")[0]||av.documentElement;return{send:function(bx,by){e=av.createElement("script");e.async="async";if(bw.scriptCharset){e.charset=bw.scriptCharset}e.src=bw.url;e.onload=e.onreadystatechange=function(bA,bz){if(bz||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(bv&&e.parentNode){bv.removeChild(e)}e=L;if(!bz){by(200,"success")}}};bv.insertBefore(e,bv.firstChild)},abort:function(){if(e){e.onload(0,1)}}}}});var B=bb.ActiveXObject?function(){for(var e in N){N[e](0,1)}}:false,y=0,N;function aL(){try{return new bb.XMLHttpRequest()}catch(bv){}}function aj(){try{return new bb.ActiveXObject("Microsoft.XMLHTTP")}catch(bv){}}b.ajaxSettings.xhr=bb.ActiveXObject?function(){return !this.isLocal&&aL()||aj()}:aL;(function(e){b.extend(b.support,{ajax:!!e,cors:!!e&&("withCredentials" in e)})})(b.ajaxSettings.xhr());if(b.support.ajax){b.ajaxTransport(function(e){if(!e.crossDomain||b.support.cors){var bv;return{send:function(bB,bw){var bA=e.xhr(),bz,by;if(e.username){bA.open(e.type,e.url,e.async,e.username,e.password)}else{bA.open(e.type,e.url,e.async)}if(e.xhrFields){for(by in e.xhrFields){bA[by]=e.xhrFields[by]}}if(e.mimeType&&bA.overrideMimeType){bA.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!bB["X-Requested-With"]){bB["X-Requested-With"]="XMLHttpRequest"}try{for(by in bB){bA.setRequestHeader(by,bB[by])}}catch(bx){}bA.send((e.hasContent&&e.data)||null);bv=function(bK,bE){var bF,bD,bC,bI,bH;try{if(bv&&(bE||bA.readyState===4)){bv=L;if(bz){bA.onreadystatechange=b.noop;if(B){delete N[bz]}}if(bE){if(bA.readyState!==4){bA.abort()}}else{bF=bA.status;bC=bA.getAllResponseHeaders();bI={};bH=bA.responseXML;if(bH&&bH.documentElement){bI.xml=bH}bI.text=bA.responseText;try{bD=bA.statusText}catch(bJ){bD=""}if(!bF&&e.isLocal&&!e.crossDomain){bF=bI.text?200:404}else{if(bF===1223){bF=204}}}}}catch(bG){if(!bE){bw(-1,bG)}}if(bI){bw(bF,bD,bI,bC)}};if(!e.async||bA.readyState===4){bv()}else{bz=++y;if(B){if(!N){N={};b(bb).unload(B)}N[bz]=bv}bA.onreadystatechange=bv}},abort:function(){if(bv){bv(0,1)}}}}})}var Q={},a8,m,aB=/^(?:toggle|show|hide)$/,aT=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,a3,aH=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],a4;b.fn.extend({show:function(bx,bA,bz){var bw,by;if(bx||bx===0){return this.animate(a0("show",3),bx,bA,bz)}else{for(var bv=0,e=this.length;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(!b._data(bw,"olddisplay")&&by==="none"){by=bw.style.display=""}if(by===""&&b.css(bw,"display")==="none"){b._data(bw,"olddisplay",x(bw.nodeName))}}}for(bv=0;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(by===""||by==="none"){bw.style.display=b._data(bw,"olddisplay")||""}}}return this}},hide:function(bx,bA,bz){if(bx||bx===0){return this.animate(a0("hide",3),bx,bA,bz)}else{var bw,by,bv=0,e=this.length;for(;bv<e;bv++){bw=this[bv];if(bw.style){by=b.css(bw,"display");if(by!=="none"&&!b._data(bw,"olddisplay")){b._data(bw,"olddisplay",by)}}}for(bv=0;bv<e;bv++){if(this[bv].style){this[bv].style.display="none"}}return this}},_toggle:b.fn.toggle,toggle:function(bw,bv,bx){var e=typeof bw==="boolean";if(b.isFunction(bw)&&b.isFunction(bv)){this._toggle.apply(this,arguments)}else{if(bw==null||e){this.each(function(){var by=e?bw:b(this).is(":hidden");b(this)[by?"show":"hide"]()})}else{this.animate(a0("toggle",3),bw,bv,bx)}}return this},fadeTo:function(e,bx,bw,bv){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:bx},e,bw,bv)},animate:function(bz,bw,by,bx){var e=b.speed(bw,by,bx);if(b.isEmptyObject(bz)){return this.each(e.complete,[false])}bz=b.extend({},bz);function bv(){if(e.queue===false){b._mark(this)}var bE=b.extend({},e),bK=this.nodeType===1,bI=bK&&b(this).is(":hidden"),bB,bF,bD,bJ,bH,bC,bG,bL,bA;bE.animatedProperties={};for(bD in bz){bB=b.camelCase(bD);if(bD!==bB){bz[bB]=bz[bD];delete bz[bD]}bF=bz[bB];if(b.isArray(bF)){bE.animatedProperties[bB]=bF[1];bF=bz[bB]=bF[0]}else{bE.animatedProperties[bB]=bE.specialEasing&&bE.specialEasing[bB]||bE.easing||"swing"}if(bF==="hide"&&bI||bF==="show"&&!bI){return bE.complete.call(this)}if(bK&&(bB==="height"||bB==="width")){bE.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(b.css(this,"display")==="inline"&&b.css(this,"float")==="none"){if(!b.support.inlineBlockNeedsLayout||x(this.nodeName)==="inline"){this.style.display="inline-block"}else{this.style.zoom=1}}}}if(bE.overflow!=null){this.style.overflow="hidden"}for(bD in bz){bJ=new b.fx(this,bE,bD);bF=bz[bD];if(aB.test(bF)){bA=b._data(this,"toggle"+bD)||(bF==="toggle"?bI?"show":"hide":0);if(bA){b._data(this,"toggle"+bD,bA==="show"?"hide":"show");bJ[bA]()}else{bJ[bF]()}}else{bH=aT.exec(bF);bC=bJ.cur();if(bH){bG=parseFloat(bH[2]);bL=bH[3]||(b.cssNumber[bD]?"":"px");if(bL!=="px"){b.style(this,bD,(bG||1)+bL);bC=((bG||1)/bJ.cur())*bC;b.style(this,bD,bC+bL)}if(bH[1]){bG=((bH[1]==="-="?-1:1)*bG)+bC}bJ.custom(bC,bG,bL)}else{bJ.custom(bC,bF,"")}}}return true}return e.queue===false?this.each(bv):this.queue(e.queue,bv)},stop:function(bw,bv,e){if(typeof bw!=="string"){e=bv;bv=bw;bw=L}if(bv&&bw!==false){this.queue(bw||"fx",[])}return this.each(function(){var bx,by=false,bA=b.timers,bz=b._data(this);if(!e){b._unmark(true,this)}function bB(bE,bF,bD){var bC=bF[bD];b.removeData(bE,bD,true);bC.stop(e)}if(bw==null){for(bx in bz){if(bz[bx]&&bz[bx].stop&&bx.indexOf(".run")===bx.length-4){bB(this,bz,bx)}}}else{if(bz[bx=bw+".run"]&&bz[bx].stop){bB(this,bz,bx)}}for(bx=bA.length;bx--;){if(bA[bx].elem===this&&(bw==null||bA[bx].queue===bw)){if(e){bA[bx](true)}else{bA[bx].saveState()}by=true;bA.splice(bx,1)}}if(!(e&&by)){b.dequeue(this,bw)}})}});function bh(){setTimeout(at,0);return(a4=b.now())}function at(){a4=L}function a0(bv,e){var bw={};b.each(aH.concat.apply([],aH.slice(0,e)),function(){bw[this]=bv});return bw}b.each({slideDown:a0("show",1),slideUp:a0("hide",1),slideToggle:a0("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,bv){b.fn[e]=function(bw,by,bx){return this.animate(bv,bw,by,bx)}});b.extend({speed:function(bw,bx,bv){var e=bw&&typeof bw==="object"?b.extend({},bw):{complete:bv||!bv&&bx||b.isFunction(bw)&&bw,duration:bw,easing:bv&&bx||bx&&!b.isFunction(bx)&&bx};e.duration=b.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in b.fx.speeds?b.fx.speeds[e.duration]:b.fx.speeds._default;if(e.queue==null||e.queue===true){e.queue="fx"}e.old=e.complete;e.complete=function(by){if(b.isFunction(e.old)){e.old.call(this)}if(e.queue){b.dequeue(this,e.queue)}else{if(by!==false){b._unmark(this)}}};return e},easing:{linear:function(bw,bx,e,bv){return e+bv*bw},swing:function(bw,bx,e,bv){return((-Math.cos(bw*Math.PI)/2)+0.5)*bv+e}},timers:[],fx:function(bv,e,bw){this.options=e;this.elem=bv;this.prop=bw;e.orig=e.orig||{}}});b.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(b.fx.step[this.prop]||b.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var e,bv=b.css(this.elem,this.prop);return isNaN(e=parseFloat(bv))?!bv||bv==="auto"?0:bv:e},custom:function(bz,by,bx){var e=this,bw=b.fx;this.startTime=a4||bh();this.end=by;this.now=this.start=bz;this.pos=this.state=0;this.unit=bx||this.unit||(b.cssNumber[this.prop]?"":"px");function bv(bA){return e.step(bA)}bv.queue=this.options.queue;bv.elem=this.elem;bv.saveState=function(){if(e.options.hide&&b._data(e.elem,"fxshow"+e.prop)===L){b._data(e.elem,"fxshow"+e.prop,e.start)}};if(bv()&&b.timers.push(bv)&&!a3){a3=setInterval(bw.tick,bw.interval)}},show:function(){var e=b._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=e||b.style(this.elem,this.prop);this.options.show=true;if(e!==L){this.custom(this.cur(),e)}else{this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur())}b(this.elem).show()},hide:function(){this.options.orig[this.prop]=b._data(this.elem,"fxshow"+this.prop)||b.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(by){var bA,bB,bv,bx=a4||bh(),e=true,bz=this.elem,bw=this.options;if(by||bx>=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e<bv.length;e++){bw=bv[e];if(!bw()&&bv[e]===bw){bv.splice(e--,1)}}if(!bv.length){b.fx.stop()}},interval:13,stop:function(){clearInterval(a3);a3=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){b.style(e.elem,"opacity",e.now)},_default:function(e){if(e.elem.style&&e.elem.style[e.prop]!=null){e.elem.style[e.prop]=e.now+e.unit}else{e.elem[e.prop]=e.now}}}});b.each(["width","height"],function(e,bv){b.fx.step[bv]=function(bw){b.style(bw.elem,bv,Math.max(0,bw.now)+bw.unit)}});if(b.expr&&b.expr.filters){b.expr.filters.animated=function(e){return b.grep(b.timers,function(bv){return e===bv.elem}).length}}function x(bx){if(!Q[bx]){var e=av.body,bv=b("<"+bx+">").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*!
+ * jQuery UI 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI
+ */
+(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h<j.length;h++){if(e.options[j[h][0]]){j[h][1].apply(e.element,f)}}}},contains:function(f,e){return document.compareDocumentPosition?f.compareDocumentPosition(e)&16:f!==e&&f.contains(e)},hasScroll:function(h,f){if(a(h).css("overflow")==="hidden"){return false}var e=(f&&f==="left")?"scrollLeft":"scrollTop",g=false;if(h[e]>0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*!
+ * jQuery UI Widget 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Widget
+ */
+(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*!
+ * jQuery UI Mouse 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Mouse
+ *
+ * Depends:
+ *	jquery.ui.widget.js
+ */
+(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g<l.length;g++){var j=c.trim(l[g]),e="ui-resizable-"+j;var h=c('<div class="ui-resizable-handle '+e+'"></div>');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(h<e.maxWidth){e.maxWidth=h}if(k<e.maxHeight){e.maxHeight=k}}this._vBoundaries=e},_updateCache:function(e){var f=this.options;this.offset=this.helper.offset();if(a(e.left)){this.position.left=e.left}if(a(e.top)){this.position.top=e.top}if(a(e.height)){this.size.height=e.height}if(a(e.width)){this.size.width=e.width}},_updateRatio:function(h,g){var i=this.options,j=this.position,f=this.size,e=this.axis;if(a(h.height)){h.width=(h.height*this.aspectRatio)}else{if(a(h.width)){h.height=(h.width/this.aspectRatio)}}if(e=="sw"){h.left=j.left+(f.width-h.width);h.top=null}if(e=="nw"){h.top=j.top+(f.height-h.height);h.left=j.left+(f.width-h.width)}return h},_respectSize:function(l,g){var j=this.helper,i=this._vBoundaries,r=this._aspectRatio||g.shiftKey,q=this.axis,t=a(l.width)&&i.maxWidth&&(i.maxWidth<l.width),m=a(l.height)&&i.maxHeight&&(i.maxHeight<l.height),h=a(l.width)&&i.minWidth&&(i.minWidth>l.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f<this._proportionallyResizeElements.length;f++){var h=this._proportionallyResizeElements[f];if(!this.borderDif){var e=[h.css("borderTopWidth"),h.css("borderRightWidth"),h.css("borderBottomWidth"),h.css("borderLeftWidth")],j=[h.css("paddingTop"),h.css("paddingRight"),h.css("paddingBottom"),h.css("paddingLeft")];this.borderDif=c.map(e,function(l,n){var m=parseInt(l,10)||0,o=parseInt(j[n],10)||0;return m+o})}if(c.browser.msie&&!(!(c(g).is(":hidden")||c(g).parents(":hidden").length))){continue}h.css({height:(g.height()-this.borderDif[0]-this.borderDif[2])||0,width:(g.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var f=this.element,i=this.options;this.elementOffset=f.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*!
+ * jQuery hashchange event - v1.3 - 7/21/2010
+ * http://benalman.com/projects/jquery-hashchange-plugin/
+ *
+ * Copyright (c) 2010 "Cowboy" Ben Alman
+ * Dual licensed under the MIT and GPL licenses.
+ * http://benalman.com/about/license/
+ */
+(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);(function(c){var a=c.scrollTo=function(f,e,d){c(window).scrollTo(f,e,d)};a.defaults={axis:"xy",duration:parseFloat(c.fn.jquery)>=1.3?0:1};a.window=function(d){return c(window)._scrollable()};c.fn._scrollable=function(){return this.map(function(){var e=this,d=!e.nodeName||c.inArray(e.nodeName.toLowerCase(),["iframe","#document","html","body"])!=-1;if(!d){return e}var f=(e.contentWindow||e).document||e.ownerDocument||e;return c.browser.safari||f.compatMode=="BackCompat"?f.body:f.documentElement})};c.fn.scrollTo=function(f,e,d){if(typeof e=="object"){d=e;e=0}if(typeof d=="function"){d={onAfter:d}}if(f=="max"){f=9000000000}d=c.extend({},a.defaults,d);e=e||d.speed||d.duration;d.queue=d.queue&&d.axis.length>1;if(d.queue){e/=2}d.offset=b(d.offset);d.over=b(d.over);return this._scrollable().each(function(){var l=this,j=c(l),k=f,i,g={},m=j.is("html,body");switch(typeof k){case"number":case"string":if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(k)){k=b(k);break}k=c(k,this);case"object":if(k.is||k.style){i=(k=c(k)).offset()}}c.each(d.axis.split(""),function(q,r){var s=r=="x"?"Left":"Top",u=s.toLowerCase(),p="scroll"+s,o=l[p],n=a.max(l,r);if(i){g[p]=i[u]+(m?0:o-j.offset()[u]);if(d.margin){g[p]-=parseInt(k.css("margin"+s))||0;g[p]-=parseInt(k.css("border"+s+"Width"))||0}g[p]+=d.offset[u]||0;if(d.over[u]){g[p]+=k[r=="x"?"width":"height"]()*d.over[u]}}else{var t=k[u];g[p]=t.slice&&t.slice(-1)=="%"?parseFloat(t)/100*n:t}if(/^\d+$/.test(g[p])){g[p]=g[p]<=0?0:Math.min(g[p],n)}if(!q&&d.queue){if(o!=g[p]){h(d.onAfterFirst)}delete g[p]}});h(d.onAfter);function h(n){j.animate(g,e,d.easing,n&&function(){n.call(this,f,d)})}}).end()};a.max=function(j,i){var h=i=="x"?"Width":"Height",e="scroll"+h;if(!c(j).is("html,body")){return j[e]-c(j)[h.toLowerCase()]()}var g="client"+h,f=j.ownerDocument.documentElement,d=j.ownerDocument.body;return Math.max(f[e],d[e])-Math.min(f[g],d[g])};function b(d){return typeof d=="object"?d:{top:d,left:d}}})(jQuery);/*!
+ PowerTip - v1.2.0 - 2013-04-03
+ http://stevenbenner.github.com/jquery-powertip/
+ Copyright (c) 2013 Steven Benner (http://stevenbenner.com/).
+ Released under MIT license.
+ https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
+*/
+(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(k){var A=k(document),s=k(window),w=k("body");var n="displayController",e="hasActiveHover",d="forcedOpen",u="hasMouseMove",f="mouseOnToPopup",g="originalTitle",y="powertip",o="powertipjq",l="powertiptarget",E=180/Math.PI;var c={isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var p={none:0,top:1,bottom:2,left:4,right:8};k.fn.powerTip=function(F,N){if(!this.length){return this}if(k.type(F)==="string"&&k.powerTip[F]){return k.powerTip[F].call(this,this,N)}var O=k.extend({},k.fn.powerTip.defaults,F),G=new x(O);h();this.each(function M(){var R=k(this),Q=R.data(y),P=R.data(o),T=R.data(l),S;if(R.data(n)){k.powerTip.destroy(R)}S=R.attr("title");if(!Q&&!T&&!P&&S){R.data(y,S);R.data(g,S);R.removeAttr("title")}R.data(n,new t(R,O,G))});if(!O.manual){this.on({"mouseenter.powertip":function J(P){k.powerTip.show(this,P)},"mouseleave.powertip":function L(){k.powerTip.hide(this)},"focus.powertip":function K(){k.powerTip.show(this)},"blur.powertip":function H(){k.powerTip.hide(this,true)},"keydown.powertip":function I(P){if(P.keyCode===27){k.powerTip.hide(this,true)}}})}return this};k.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false};k.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};k.powerTip={show:function z(F,G){if(G){i(G);c.previousX=G.pageX;c.previousY=G.pageY;k(F).data(n).show()}else{k(F).first().data(n).show(true,true)}return F},reposition:function r(F){k(F).first().data(n).resetPosition();return F},hide:function D(G,F){if(G){k(G).first().data(n).hide(F)}else{if(c.activeHover){c.activeHover.data(n).hide(true)}}return G},destroy:function C(G){k(G).off(".powertip").each(function F(){var I=k(this),H=[g,n,e,d];if(I.data(g)){I.attr("title",I.data(g));H.push(y)}I.removeData(H)});return G}};k.powerTip.showTip=k.powerTip.show;k.powerTip.closeTip=k.powerTip.hide;function b(){var F=this;F.top="auto";F.left="auto";F.right="auto";F.bottom="auto";F.set=function(H,G){if(k.isNumeric(G)){F[H]=Math.round(G)}}}function t(K,N,F){var J=null;function L(P,Q){M();if(!K.data(e)){if(!P){c.tipOpenImminent=true;J=setTimeout(function O(){J=null;I()},N.intentPollInterval)}else{if(Q){K.data(d,true)}F.showTip(K)}}}function G(P){M();c.tipOpenImminent=false;if(K.data(e)){K.data(d,false);if(!P){c.delayInProgress=true;J=setTimeout(function O(){J=null;F.hideTip(K);c.delayInProgress=false},N.closeDelay)}else{F.hideTip(K)}}}function I(){var Q=Math.abs(c.previousX-c.currentX),O=Math.abs(c.previousY-c.currentY),P=Q+O;if(P<N.intentSensitivity){F.showTip(K)}else{c.previousX=c.currentX;c.previousY=c.currentY;L()}}function M(){J=clearTimeout(J);c.delayInProgress=false}function H(){F.resetPosition(K)}this.show=L;this.hide=G;this.cancel=M;this.resetPosition=H}function j(){function G(M,L,J,O,P){var K=L.split("-")[0],N=new b(),I;if(q(M)){I=H(M,K)}else{I=F(M,K)}switch(L){case"n":N.set("left",I.left-(J/2));N.set("bottom",c.windowHeight-I.top+P);break;case"e":N.set("left",I.left+P);N.set("top",I.top-(O/2));break;case"s":N.set("left",I.left-(J/2));N.set("top",I.top+P);break;case"w":N.set("top",I.top-(O/2));N.set("right",c.windowWidth-I.left+P);break;case"nw":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"nw-alt":N.set("left",I.left);N.set("bottom",c.windowHeight-I.top+P);break;case"ne":N.set("left",I.left-20);N.set("bottom",c.windowHeight-I.top+P);break;case"ne-alt":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left);break;case"sw":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"sw-alt":N.set("left",I.left);N.set("top",I.top+P);break;case"se":N.set("left",I.left-20);N.set("top",I.top+P);break;case"se-alt":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left);break}return N}function F(K,J){var O=K.offset(),N=K.outerWidth(),I=K.outerHeight(),M,L;switch(J){case"n":M=O.left+N/2;L=O.top;break;case"e":M=O.left+N;L=O.top+I/2;break;case"s":M=O.left+N/2;L=O.top+I;break;case"w":M=O.left;L=O.top+I/2;break;case"nw":M=O.left;L=O.top;break;case"ne":M=O.left+N;L=O.top;break;case"sw":M=O.left;L=O.top+I;break;case"se":M=O.left+N;L=O.top+I;break}return{top:L,left:M}}function H(O,K){var S=O.closest("svg")[0],N=O[0],W=S.createSVGPoint(),L=N.getBBox(),V=N.getScreenCTM(),M=L.width/2,Q=L.height/2,P=[],I=["nw","n","ne","e","se","s","sw","w"],U,X,R,T;function J(){P.push(W.matrixTransform(V))}W.x=L.x;W.y=L.y;J();W.x+=M;J();W.x+=M;J();W.y+=Q;J();W.y+=Q;J();W.x-=M;J();W.x-=M;J();W.y-=Q;J();if(P[0].y!==P[1].y||P[0].x!==P[7].x){X=Math.atan2(V.b,V.a)*E;R=Math.ceil(((X%360)-22.5)/45);if(R<1){R+=8}while(R--){I.push(I.shift())}}for(T=0;T<P.length;T++){if(I[T]===K){U=P[T];break}}return{top:U.y+c.scrollTop,left:U.x+c.scrollLeft}}this.compute=G}function x(Q){var P=new j(),O=k("#"+Q.popupId);if(O.length===0){O=k("<div/>",{id:Q.popupId});if(w.length===0){w=k("body")}w.append(O)}if(Q.followMouse){if(!O.data(u)){A.on("mousemove",M);s.on("scroll",M);O.data(u,true)}}if(Q.mouseOnToPopup){O.on({mouseenter:function L(){if(O.data(f)){if(c.activeHover){c.activeHover.data(n).cancel()}}},mouseleave:function N(){if(c.activeHover){c.activeHover.data(n).hide()}}})}function I(S){S.data(e,true);O.queue(function R(T){H(S);T()})}function H(S){var U;if(!S.data(e)){return}if(c.isTipOpen){if(!c.isClosing){K(c.activeHover)}O.delay(100).queue(function R(V){H(S);V()});return}S.trigger("powerTipPreRender");U=B(S);if(U){O.empty().append(U)}else{return}S.trigger("powerTipRender");c.activeHover=S;c.isTipOpen=true;O.data(f,Q.mouseOnToPopup);if(!Q.followMouse){G(S);c.isFixedTipOpen=true}else{M()}O.fadeIn(Q.fadeInTime,function T(){if(!c.desyncTimeout){c.desyncTimeout=setInterval(J,500)}S.trigger("powerTipOpen")})}function K(R){c.isClosing=true;c.activeHover=null;c.isTipOpen=false;c.desyncTimeout=clearInterval(c.desyncTimeout);R.data(e,false);R.data(d,false);O.fadeOut(Q.fadeOutTime,function S(){var T=new b();c.isClosing=false;c.isFixedTipOpen=false;O.removeClass();T.set("top",c.currentY+Q.offset);T.set("left",c.currentX+Q.offset);O.css(T);R.trigger("powerTipClose")})}function M(){if(!c.isFixedTipOpen&&(c.isTipOpen||(c.tipOpenImminent&&O.data(u)))){var R=O.outerWidth(),V=O.outerHeight(),U=new b(),S,T;U.set("top",c.currentY+Q.offset);U.set("left",c.currentX+Q.offset);S=m(U,R,V);if(S!==p.none){T=a(S);if(T===1){if(S===p.right){U.set("left",c.windowWidth-R)}else{if(S===p.bottom){U.set("top",c.scrollTop+c.windowHeight-V)}}}else{U.set("left",c.currentX-R-Q.offset);U.set("top",c.currentY-V-Q.offset)}}O.css(U)}}function G(S){var R,T;if(Q.smartPlacement){R=k.fn.powerTip.smartPlacementLists[Q.placement];k.each(R,function(U,W){var V=m(F(S,W),O.outerWidth(),O.outerHeight());T=W;if(V===p.none){return false}})}else{F(S,Q.placement);T=Q.placement}O.addClass(T)}function F(U,T){var R=0,S,W,V=new b();V.set("top",0);V.set("left",0);O.css(V);do{S=O.outerWidth();W=O.outerHeight();V=P.compute(U,T,S,W,Q.offset);O.css(V)}while(++R<=5&&(S!==O.outerWidth()||W!==O.outerHeight()));return V}function J(){var R=false;if(c.isTipOpen&&!c.isClosing&&!c.delayInProgress){if(c.activeHover.data(e)===false||c.activeHover.is(":disabled")){R=true}else{if(!v(c.activeHover)&&!c.activeHover.is(":focus")&&!c.activeHover.data(d)){if(O.data(f)){if(!v(O)){R=true}}else{R=true}}}if(R){K(c.activeHover)}}}this.showTip=I;this.hideTip=K;this.resetPosition=G}function q(F){return window.SVGElement&&F[0] instanceof SVGElement}function h(){if(!c.mouseTrackingActive){c.mouseTrackingActive=true;k(function H(){c.scrollLeft=s.scrollLeft();c.scrollTop=s.scrollTop();c.windowWidth=s.width();c.windowHeight=s.height()});A.on("mousemove",i);s.on({resize:function G(){c.windowWidth=s.width();c.windowHeight=s.height()},scroll:function F(){var I=s.scrollLeft(),J=s.scrollTop();if(I!==c.scrollLeft){c.currentX+=I-c.scrollLeft;c.scrollLeft=I}if(J!==c.scrollTop){c.currentY+=J-c.scrollTop;c.scrollTop=J}}})}}function i(F){c.currentX=F.pageX;c.currentY=F.pageY}function v(F){var H=F.offset(),J=F[0].getBoundingClientRect(),I=J.right-J.left,G=J.bottom-J.top;return c.currentX>=H.left&&c.currentX<=H.left+I&&c.currentY>=H.top&&c.currentY<=H.top+G}function B(I){var G=I.data(y),F=I.data(o),K=I.data(l),H,J;if(G){if(k.isFunction(G)){G=G.call(I[0])}J=G}else{if(F){if(k.isFunction(F)){F=F.call(I[0])}if(F.length>0){J=F.clone(true,true)}}else{if(K){H=k("#"+K);if(H.length>0){J=H.html()}}}}return J}function m(M,L,K){var G=c.scrollTop,J=c.scrollLeft,I=G+c.windowHeight,F=J+c.windowWidth,H=p.none;if(M.top<G||Math.abs(M.bottom-c.windowHeight)-K<G){H|=p.top}if(M.top+K>I||Math.abs(M.bottom-c.windowHeight)>I){H|=p.bottom}if(M.left<J||M.right+L>F){H|=p.left}if(M.left+L>F||M.right<J){H|=p.right}return H}function a(G){var F=0;while(G){G&=G-1;F++}return F}}));/*!
+ * jQuery UI Touch Punch 0.2.3
+ *
+ * Copyright 2011–2014, Dave Furfero
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ *
+ * Depends:
+ *  jquery.ui.widget.js
+ *  jquery.ui.mouse.js
+ */
+(function(b){b.support.touch="ontouchend" in document;if(!b.support.touch){return}var d=b.ui.mouse.prototype,f=d._mouseInit,c=d._mouseDestroy,a;function e(h,i){if(h.originalEvent.touches.length>1){return}h.preventDefault();var j=h.originalEvent.changedTouches[0],g=document.createEvent("MouseEvents");g.initMouseEvent(i,true,true,window,1,j.screenX,j.screenY,j.clientX,j.clientY,false,false,false,false,0,null);h.target.dispatchEvent(g)}d._touchStart=function(h){var g=this;if(a||!g._mouseCapture(h.originalEvent.changedTouches[0])){return}a=true;g._touchMoved=false;e(h,"mouseover");e(h,"mousemove");e(h,"mousedown")};d._touchMove=function(g){if(!a){return}this._touchMoved=true;e(g,"mousemove")};d._touchEnd=function(g){if(!a){return}e(g,"mouseup");e(g,"mouseout");if(!this._touchMoved){e(g,"click")}a=false};d._mouseInit=function(){var g=this;g.element.bind({touchstart:b.proxy(g,"_touchStart"),touchmove:b.proxy(g,"_touchMove"),touchend:b.proxy(g,"_touchEnd")});f.call(g)};d._mouseDestroy=function(){var g=this;g.element.unbind({touchstart:b.proxy(g,"_touchStart"),touchmove:b.proxy(g,"_touchMove"),touchend:b.proxy(g,"_touchEnd")});c.call(g)}})(jQuery);/*!
+ * SmartMenus jQuery Plugin - v1.0.0 - January 27, 2016
+ * http://www.smartmenus.org/
+ *
+ * Copyright Vasil Dinkov, Vadikom Web Ltd.
+ * http://vadikom.com
+ *
+ * Licensed MIT
+ */
+(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{if(typeof module==="object"&&typeof module.exports==="object"){module.exports=a(require("jquery"))}else{a(jQuery)}}}(function(a){var b=[],e=!!window.createPopup,f=false,d="ontouchstart" in window,h=false,g=window.requestAnimationFrame||function(l){return setTimeout(l,1000/60)},c=window.cancelAnimationFrame||function(l){clearTimeout(l)};function k(m){var n=".smartmenus_mouse";if(!h&&!m){var o=true,l=null;a(document).bind(i([["mousemove",function(s){var t={x:s.pageX,y:s.pageY,timeStamp:new Date().getTime()};if(l){var q=Math.abs(l.x-t.x),p=Math.abs(l.y-t.y);if((q>0||p>0)&&q<=2&&p<=2&&t.timeStamp-l.timeStamp<=300){f=true;if(o){var r=a(s.target).closest("a");if(r.is("a")){a.each(b,function(){if(a.contains(this.$root[0],r[0])){this.itemEnter({currentTarget:r[0]});return false}})}o=false}}}l=t}],[d?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut",function(p){if(j(p.originalEvent)){f=false}}]],n));h=true}else{if(h&&m){a(document).unbind(n);h=false}}}function j(l){return !/^(4|mouse)$/.test(l.pointerType)}function i(l,n){if(!n){n=""}var m={};a.each(l,function(o,p){m[p[0].split(" ").join(n+" ")+n]=p[1]});return m}a.SmartMenus=function(m,l){this.$root=a(m);this.opts=l;this.rootId="";this.accessIdPrefix="";this.$subArrow=null;this.activatedItems=[];this.visibleSubMenus=[];this.showTimeout=0;this.hideTimeout=0;this.scrollTimeout=0;this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.idInc=0;this.$firstLink=null;this.$firstSub=null;this.disabled=false;this.$disableOverlay=null;this.$touchScrollingSub=null;this.cssTransforms3d="perspective" in m.style||"webkitPerspective" in m.style;this.wasCollapsible=false;this.init()};a.extend(a.SmartMenus,{hideAll:function(){a.each(b,function(){this.menuHideAll()})},destroy:function(){while(b.length){b[0].destroy()}k(true)},prototype:{init:function(n){var l=this;if(!n){b.push(this);this.rootId=(new Date().getTime()+Math.random()+"").replace(/\D/g,"");this.accessIdPrefix="sm-"+this.rootId+"-";if(this.$root.hasClass("sm-rtl")){this.opts.rightToLeftSubMenus=true}var r=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).bind(i([["mouseover focusin",a.proxy(this.rootOver,this)],["mouseout focusout",a.proxy(this.rootOut,this)],["keydown",a.proxy(this.rootKeyDown,this)]],r)).delegate("a",i([["mouseenter",a.proxy(this.itemEnter,this)],["mouseleave",a.proxy(this.itemLeave,this)],["mousedown",a.proxy(this.itemDown,this)],["focus",a.proxy(this.itemFocus,this)],["blur",a.proxy(this.itemBlur,this)],["click",a.proxy(this.itemClick,this)]],r));r+=this.rootId;if(this.opts.hideOnClick){a(document).bind(i([["touchstart",a.proxy(this.docTouchStart,this)],["touchmove",a.proxy(this.docTouchMove,this)],["touchend",a.proxy(this.docTouchEnd,this)],["click",a.proxy(this.docClick,this)]],r))}a(window).bind(i([["resize orientationchange",a.proxy(this.winResize,this)]],r));if(this.opts.subIndicators){this.$subArrow=a("<span/>").addClass("sub-arrow");if(this.opts.subIndicatorsText){this.$subArrow.html(this.opts.subIndicatorsText)}}k()}this.$firstSub=this.$root.find("ul").each(function(){l.menuInit(a(this))}).eq(0);this.$firstLink=this.$root.find("a").eq(0);if(this.opts.markCurrentItem){var p=/(index|default)\.[^#\?\/]*/i,m=/#.*/,q=window.location.href.replace(p,""),o=q.replace(m,"");this.$root.find("a").each(function(){var s=this.href.replace(p,""),t=a(this);if(s==q||s==o){t.addClass("current");if(l.opts.markCurrentTree){t.parentsUntil("[data-smartmenus-id]","ul").each(function(){a(this).dataSM("parent-a").addClass("current")})}}})}this.wasCollapsible=this.isCollapsible()},destroy:function(m){if(!m){var n=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").unbind(n).undelegate(n);n+=this.rootId;a(document).unbind(n);a(window).unbind(n);if(this.opts.subIndicators){this.$subArrow=null}}this.menuHideAll();var l=this;this.$root.find("ul").each(function(){var o=a(this);if(o.dataSM("scroll-arrows")){o.dataSM("scroll-arrows").remove()}if(o.dataSM("shown-before")){if(l.opts.subMenusMinWidth||l.opts.subMenusMaxWidth){o.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap")}if(o.dataSM("scroll-arrows")){o.dataSM("scroll-arrows").remove()}o.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})}if((o.attr("id")||"").indexOf(l.accessIdPrefix)==0){o.removeAttr("id")}}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("ie-shim").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded");this.$root.find("a.has-submenu").each(function(){var o=a(this);if(o.attr("id").indexOf(l.accessIdPrefix)==0){o.removeAttr("id")}}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub");if(this.opts.subIndicators){this.$root.find("span.sub-arrow").remove()}if(this.opts.markCurrentItem){this.$root.find("a.current").removeClass("current")}if(!m){this.$root=null;this.$firstLink=null;this.$firstSub=null;if(this.$disableOverlay){this.$disableOverlay.remove();this.$disableOverlay=null}b.splice(a.inArray(this,b),1)}},disable:function(l){if(!this.disabled){this.menuHideAll();if(!l&&!this.opts.isPopup&&this.$root.is(":visible")){var m=this.$root.offset();this.$disableOverlay=a('<div class="sm-jquery-disable-overlay"/>').css({position:"absolute",top:m.top,left:m.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(true),opacity:0}).appendTo(document.body)}this.disabled=true}},docClick:function(l){if(this.$touchScrollingSub){this.$touchScrollingSub=null;return}if(this.visibleSubMenus.length&&!a.contains(this.$root[0],l.target)||a(l.target).is("a")){this.menuHideAll()}},docTouchEnd:function(m){if(!this.lastTouch){return}if(this.visibleSubMenus.length&&(this.lastTouch.x2===undefined||this.lastTouch.x1==this.lastTouch.x2)&&(this.lastTouch.y2===undefined||this.lastTouch.y1==this.lastTouch.y2)&&(!this.lastTouch.target||!a.contains(this.$root[0],this.lastTouch.target))){if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}var l=this;this.hideTimeout=setTimeout(function(){l.menuHideAll()},350)}this.lastTouch=null},docTouchMove:function(m){if(!this.lastTouch){return}var l=m.originalEvent.touches[0];this.lastTouch.x2=l.pageX;this.lastTouch.y2=l.pageY},docTouchStart:function(m){var l=m.originalEvent.touches[0];this.lastTouch={x1:l.pageX,y1:l.pageY,target:l.target}},enable:function(){if(this.disabled){if(this.$disableOverlay){this.$disableOverlay.remove();this.$disableOverlay=null}this.disabled=false}},getClosestMenu:function(m){var l=a(m).closest("ul");while(l.dataSM("in-mega")){l=l.parent().closest("ul")}return l[0]||null},getHeight:function(l){return this.getOffset(l,true)},getOffset:function(n,l){var m;if(n.css("display")=="none"){m={position:n[0].style.position,visibility:n[0].style.visibility};n.css({position:"absolute",visibility:"hidden"}).show()}var o=n[0].getBoundingClientRect&&n[0].getBoundingClientRect(),p=o&&(l?o.height||o.bottom-o.top:o.width||o.right-o.left);if(!p&&p!==0){p=l?n[0].offsetHeight:n[0].offsetWidth}if(m){n.hide().css(m)}return p},getStartZIndex:function(l){var m=parseInt(this[l?"$root":"$firstSub"].css("z-index"));if(!l&&isNaN(m)){m=parseInt(this.$root.css("z-index"))}return !isNaN(m)?m:1},getTouchPoint:function(l){return l.touches&&l.touches[0]||l.changedTouches&&l.changedTouches[0]||l},getViewport:function(l){var m=l?"Height":"Width",o=document.documentElement["client"+m],n=window["inner"+m];if(n){o=Math.min(o,n)}return o},getViewportHeight:function(){return this.getViewport(true)},getViewportWidth:function(){return this.getViewport()},getWidth:function(l){return this.getOffset(l)},handleEvents:function(){return !this.disabled&&this.isCSSOn()},handleItemEvents:function(l){return this.handleEvents()&&!this.isLinkInMegaMenu(l)},isCollapsible:function(){return this.$firstSub.css("position")=="static"},isCSSOn:function(){return this.$firstLink.css("display")=="block"},isFixed:function(){var l=this.$root.css("position")=="fixed";if(!l){this.$root.parentsUntil("body").each(function(){if(a(this).css("position")=="fixed"){l=true;return false}})}return l},isLinkInMegaMenu:function(l){return a(this.getClosestMenu(l[0])).hasClass("mega-menu")},isTouchMode:function(){return !f||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(p,l){var n=p.closest("ul"),q=n.dataSM("level");if(q>1&&(!this.activatedItems[q-2]||this.activatedItems[q-2][0]!=n.dataSM("parent-a")[0])){var m=this;a(n.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(n).each(function(){m.itemActivate(a(this).dataSM("parent-a"))})}if(!this.isCollapsible()||l){this.menuHideSubMenus(!this.activatedItems[q-1]||this.activatedItems[q-1][0]!=p[0]?q-1:q)}this.activatedItems[q-1]=p;if(this.$root.triggerHandler("activate.smapi",p[0])===false){return}var o=p.dataSM("sub");if(o&&(this.isTouchMode()||(!this.opts.showOnClick||this.clickActivated))){this.menuShow(o)}},itemBlur:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}this.$root.triggerHandler("blur.smapi",l[0])},itemClick:function(o){var n=a(o.currentTarget);if(!this.handleItemEvents(n)){return}if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==n.closest("ul")[0]){this.$touchScrollingSub=null;o.stopPropagation();return false}if(this.$root.triggerHandler("click.smapi",n[0])===false){return false}var p=a(o.target).is("span.sub-arrow"),m=n.dataSM("sub"),l=m?m.dataSM("level")==2:false;if(m&&!m.is(":visible")){if(this.opts.showOnClick&&l){this.clickActivated=true}this.itemActivate(n);if(m.is(":visible")){this.focusActivated=true;return false}}else{if(this.isCollapsible()&&p){this.itemActivate(n);this.menuHide(m);return false}}if(this.opts.showOnClick&&l||n.hasClass("disabled")||this.$root.triggerHandler("select.smapi",n[0])===false){return false}},itemDown:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}l.dataSM("mousedown",true)},itemEnter:function(n){var m=a(n.currentTarget);if(!this.handleItemEvents(m)){return}if(!this.isTouchMode()){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}var l=this;this.showTimeout=setTimeout(function(){l.itemActivate(m)},this.opts.showOnClick&&m.closest("ul").dataSM("level")==1?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",m[0])},itemFocus:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}if(this.focusActivated&&(!this.isTouchMode()||!l.dataSM("mousedown"))&&(!this.activatedItems.length||this.activatedItems[this.activatedItems.length-1][0]!=l[0])){this.itemActivate(l,true)}this.$root.triggerHandler("focus.smapi",l[0])},itemLeave:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}if(!this.isTouchMode()){l[0].blur();if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}}l.removeDataSM("mousedown");this.$root.triggerHandler("mouseleave.smapi",l[0])},menuHide:function(m){if(this.$root.triggerHandler("beforehide.smapi",m[0])===false){return}m.stop(true,true);if(m.css("display")!="none"){var l=function(){m.css("z-index","")};if(this.isCollapsible()){if(this.opts.collapsibleHideFunction){this.opts.collapsibleHideFunction.call(this,m,l)}else{m.hide(this.opts.collapsibleHideDuration,l)}}else{if(this.opts.hideFunction){this.opts.hideFunction.call(this,m,l)}else{m.hide(this.opts.hideDuration,l)}}if(m.dataSM("ie-shim")){m.dataSM("ie-shim").remove().css({"-webkit-transform":"",transform:""})}if(m.dataSM("scroll")){this.menuScrollStop(m);m.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).unbind(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()}m.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false");m.attr({"aria-expanded":"false","aria-hidden":"true"});var n=m.dataSM("level");this.activatedItems.splice(n-1,1);this.visibleSubMenus.splice(a.inArray(m,this.visibleSubMenus),1);this.$root.triggerHandler("hide.smapi",m[0])}},menuHideAll:function(){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}var m=this.opts.isPopup?1:0;for(var l=this.visibleSubMenus.length-1;l>=m;l--){this.menuHide(this.visibleSubMenus[l])}if(this.opts.isPopup){this.$root.stop(true,true);if(this.$root.is(":visible")){if(this.opts.hideFunction){this.opts.hideFunction.call(this,this.$root)}else{this.$root.hide(this.opts.hideDuration)}if(this.$root.dataSM("ie-shim")){this.$root.dataSM("ie-shim").remove()}}}this.activatedItems=[];this.visibleSubMenus=[];this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(n){for(var l=this.activatedItems.length-1;l>=n;l--){var m=this.activatedItems[l].dataSM("sub");if(m){this.menuHide(m)}}},menuIframeShim:function(l){if(e&&this.opts.overlapControlsInIE&&!l.dataSM("ie-shim")){l.dataSM("ie-shim",a("<iframe/>").attr({src:"javascript:0",tabindex:-9}).css({position:"absolute",top:"auto",left:"0",opacity:0,border:"0"}))}},menuInit:function(l){if(!l.dataSM("in-mega")){if(l.hasClass("mega-menu")){l.find("ul").dataSM("in-mega",true)}var q=2,m=l[0];while((m=m.parentNode.parentNode)!=this.$root[0]){q++}var n=l.prevAll("a").eq(-1);if(!n.length){n=l.prevAll().find("a").eq(-1)}n.addClass("has-submenu").dataSM("sub",l);l.dataSM("parent-a",n).dataSM("level",q).parent().dataSM("sub",l);var o=n.attr("id")||this.accessIdPrefix+(++this.idInc),p=l.attr("id")||this.accessIdPrefix+(++this.idInc);n.attr({id:o,"aria-haspopup":"true","aria-controls":p,"aria-expanded":"false"});l.attr({id:p,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"});if(this.opts.subIndicators){n[this.opts.subIndicatorsPos](this.$subArrow.clone())}}},menuPosition:function(K){var r=K.dataSM("parent-a"),D=r.closest("li"),E=D.parent(),l=K.dataSM("level"),t=this.getWidth(K),J=this.getHeight(K),u=r.offset(),o=u.left,m=u.top,q=this.getWidth(r),F=this.getHeight(r),H=a(window),v=H.scrollLeft(),s=H.scrollTop(),z=this.getViewportWidth(),L=this.getViewportHeight(),w=E.parent().is("[data-sm-horizontal-sub]")||l==2&&!E.hasClass("sm-vertical"),B=this.opts.rightToLeftSubMenus&&!D.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&D.is("[data-sm-reverse]"),p=l==2?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,n=l==2?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY,C,A;if(w){C=B?q-t-p:p;A=this.opts.bottomToTopSubMenus?-J-n:F+n}else{C=B?p-t:q-p;A=this.opts.bottomToTopSubMenus?F-n-J:n}if(this.opts.keepInViewport){var N=o+C,M=m+A;if(B&&N<v){C=w?v-N+C:q-p}else{if(!B&&N+t>v+z){C=w?v+z-t-N+C:p-t}}if(!w){if(J<L&&M+J>s+L){A+=s+L-J-M}else{if(J>=L||M<s){A+=s-M}}}if(w&&(M+J>s+L+0.49||M<s)||!w&&J>L+0.49){var G=this;if(!K.dataSM("scroll-arrows")){K.dataSM("scroll-arrows",a([a('<span class="scroll-up"><span class="scroll-up-arrow"></span></span>')[0],a('<span class="scroll-down"><span class="scroll-down-arrow"></span></span>')[0]]).bind({mouseenter:function(){K.dataSM("scroll").up=a(this).hasClass("scroll-up");G.menuScroll(K)},mouseleave:function(x){G.menuScrollStop(K);G.menuScrollOut(K,x)},"mousewheel DOMMouseScroll":function(x){x.preventDefault()}}).insertAfter(K))}var I=".smartmenus_scroll";K.dataSM("scroll",{y:this.cssTransforms3d?0:A-F,step:1,itemH:F,subH:J,arrowDownH:this.getHeight(K.dataSM("scroll-arrows").eq(1))}).bind(i([["mouseover",function(x){G.menuScrollOver(K,x)}],["mouseout",function(x){G.menuScrollOut(K,x)}],["mousewheel DOMMouseScroll",function(x){G.menuScrollMousewheel(K,x)}]],I)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:C+(parseInt(K.css("border-left-width"))||0),width:t-(parseInt(K.css("border-left-width"))||0)-(parseInt(K.css("border-right-width"))||0),zIndex:K.css("z-index")}).eq(w&&this.opts.bottomToTopSubMenus?0:1).show();if(this.isFixed()){K.css({"touch-action":"none","-ms-touch-action":"none"}).bind(i([[d?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp",function(x){G.menuScrollTouch(K,x)}]],I))}}}K.css({top:"auto",left:"0",marginLeft:C,marginTop:A-F});this.menuIframeShim(K);if(K.dataSM("ie-shim")){K.dataSM("ie-shim").css({zIndex:K.css("z-index"),width:t,height:J,marginLeft:C,marginTop:A-F})}},menuScroll:function(r,m,n){var p=r.dataSM("scroll"),q=r.dataSM("scroll-arrows"),o=p.up?p.upEnd:p.downEnd,s;if(!m&&p.momentum){p.momentum*=0.92;s=p.momentum;if(s<0.5){this.menuScrollStop(r);return}}else{s=n||(m||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(p.step))}var l=r.dataSM("level");if(this.activatedItems[l-1]&&this.activatedItems[l-1].dataSM("sub")&&this.activatedItems[l-1].dataSM("sub").is(":visible")){this.menuHideSubMenus(l-1)}p.y=p.up&&o<=p.y||!p.up&&o>=p.y?p.y:(Math.abs(o-p.y)>s?p.y+(p.up?s:-s):o);r.add(r.dataSM("ie-shim")).css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+p.y+"px, 0)",transform:"translate3d(0, "+p.y+"px, 0)"}:{marginTop:p.y});if(f&&(p.up&&p.y>p.downEnd||!p.up&&p.y<p.upEnd)){q.eq(p.up?1:0).show()}if(p.y==o){if(f){q.eq(p.up?0:1).hide()}this.menuScrollStop(r)}else{if(!m){if(this.opts.scrollAccelerate&&p.step<this.opts.scrollStep){p.step+=0.2}var t=this;this.scrollTimeout=g(function(){t.menuScroll(r)})}}},menuScrollMousewheel:function(m,n){if(this.getClosestMenu(n.target)==m[0]){n=n.originalEvent;var l=(n.wheelDelta||-n.detail)>0;if(m.dataSM("scroll-arrows").eq(l?0:1).is(":visible")){m.dataSM("scroll").up=l;this.menuScroll(m,true)}}n.preventDefault()},menuScrollOut:function(l,m){if(f){if(!/^scroll-(up|down)/.test((m.relatedTarget||"").className)&&(l[0]!=m.relatedTarget&&!a.contains(l[0],m.relatedTarget)||this.getClosestMenu(m.relatedTarget)!=l[0])){l.dataSM("scroll-arrows").css("visibility","hidden")}}},menuScrollOver:function(n,o){if(f){if(!/^scroll-(up|down)/.test(o.target.className)&&this.getClosestMenu(o.target)==n[0]){this.menuScrollRefreshData(n);var m=n.dataSM("scroll"),l=a(window).scrollTop()-n.dataSM("parent-a").offset().top-m.itemH;n.dataSM("scroll-arrows").eq(0).css("margin-top",l).end().eq(1).css("margin-top",l+this.getViewportHeight()-m.arrowDownH).end().css("visibility","visible")}}},menuScrollRefreshData:function(n){var m=n.dataSM("scroll"),l=a(window).scrollTop()-n.dataSM("parent-a").offset().top-m.itemH;if(this.cssTransforms3d){l=-(parseFloat(n.css("margin-top"))-l)}a.extend(m,{upEnd:l,downEnd:l+this.getViewportHeight()-m.subH})},menuScrollStop:function(l){if(this.scrollTimeout){c(this.scrollTimeout);this.scrollTimeout=0;l.dataSM("scroll").step=1;return true}},menuScrollTouch:function(p,q){q=q.originalEvent;if(j(q)){var m=this.getTouchPoint(q);if(this.getClosestMenu(m.target)==p[0]){var o=p.dataSM("scroll");if(/(start|down)$/i.test(q.type)){if(this.menuScrollStop(p)){q.preventDefault();this.$touchScrollingSub=p}else{this.$touchScrollingSub=null}this.menuScrollRefreshData(p);a.extend(o,{touchStartY:m.pageY,touchStartTime:q.timeStamp})}else{if(/move$/i.test(q.type)){var n=o.touchY!==undefined?o.touchY:o.touchStartY;if(n!==undefined&&n!=m.pageY){this.$touchScrollingSub=p;var l=n<m.pageY;if(o.up!==undefined&&o.up!=l){a.extend(o,{touchStartY:m.pageY,touchStartTime:q.timeStamp})}a.extend(o,{up:l,touchY:m.pageY});this.menuScroll(p,true,Math.abs(m.pageY-n))}q.preventDefault()}else{if(o.touchY!==undefined){if(o.momentum=Math.pow(Math.abs(m.pageY-o.touchStartY)/(q.timeStamp-o.touchStartTime),2)*15){this.menuScrollStop(p);this.menuScroll(p);q.preventDefault()}delete o.touchY}}}}}},menuShow:function(n){if(!n.dataSM("beforefirstshowfired")){n.dataSM("beforefirstshowfired",true);if(this.$root.triggerHandler("beforefirstshow.smapi",n[0])===false){return}}if(this.$root.triggerHandler("beforeshow.smapi",n[0])===false){return}n.dataSM("shown-before",true).stop(true,true);if(!n.is(":visible")){var m=n.dataSM("parent-a");if(this.opts.keepHighlighted||this.isCollapsible()){m.addClass("highlighted")}if(this.isCollapsible()){n.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""})}else{n.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1);if(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth){n.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap");if(this.opts.subMenusMinWidth){n.css("min-width",this.opts.subMenusMinWidth)}if(this.opts.subMenusMaxWidth){var o=this.getWidth(n);n.css("max-width",this.opts.subMenusMaxWidth);if(o>this.getWidth(n)){n.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}}}this.menuPosition(n);if(n.dataSM("ie-shim")){n.dataSM("ie-shim").insertBefore(n)}}var l=function(){n.css("overflow","")};if(this.isCollapsible()){if(this.opts.collapsibleShowFunction){this.opts.collapsibleShowFunction.call(this,n,l)}else{n.show(this.opts.collapsibleShowDuration,l)}}else{if(this.opts.showFunction){this.opts.showFunction.call(this,n,l)}else{n.show(this.opts.showDuration,l)}}m.attr("aria-expanded","true");n.attr({"aria-expanded":"true","aria-hidden":"false"});this.visibleSubMenus.push(n);this.$root.triggerHandler("show.smapi",n[0])}},popupHide:function(l){if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}var m=this;this.hideTimeout=setTimeout(function(){m.menuHideAll()},l?1:this.opts.hideTimeout)},popupShow:function(o,n){if(!this.opts.isPopup){alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.');return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}this.$root.dataSM("shown-before",true).stop(true,true);if(!this.$root.is(":visible")){this.$root.css({left:o,top:n});this.menuIframeShim(this.$root);if(this.$root.dataSM("ie-shim")){this.$root.dataSM("ie-shim").css({zIndex:this.$root.css("z-index"),width:this.getWidth(this.$root),height:this.getHeight(this.$root),left:o,top:n}).insertBefore(this.$root)}var m=this,l=function(){m.$root.css("overflow","")};if(this.opts.showFunction){this.opts.showFunction.call(this,this.$root,l)}else{this.$root.show(this.opts.showDuration,l)}this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(true);this.init(true)},rootKeyDown:function(o){if(!this.handleEvents()){return}switch(o.keyCode){case 27:var m=this.activatedItems[0];if(m){this.menuHideAll();m[0].focus();var n=m.dataSM("sub");if(n){this.menuHide(n)}}break;case 32:var l=a(o.target);if(l.is("a")&&this.handleItemEvents(l)){var n=l.dataSM("sub");if(n&&!n.is(":visible")){this.itemClick({currentTarget:o.target});o.preventDefault()}}break}},rootOut:function(m){if(!this.handleEvents()||this.isTouchMode()||m.target==this.$root[0]){return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}if(!this.opts.showOnClick||!this.opts.hideOnClick){var l=this;this.hideTimeout=setTimeout(function(){l.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(l){if(!this.handleEvents()||this.isTouchMode()||l.target==this.$root[0]){return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}},winResize:function(m){if(!this.handleEvents()){if(this.$disableOverlay){var n=this.$root.offset();this.$disableOverlay.css({top:n.top,left:n.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}return}if(!("onorientationchange" in window)||m.type=="orientationchange"){var l=this.isCollapsible();if(!(this.wasCollapsible&&l)){if(this.activatedItems.length){this.activatedItems[this.activatedItems.length-1][0].blur()}this.menuHideAll()}this.wasCollapsible=l}}}});a.fn.dataSM=function(l,m){if(m){return this.data(l+"_smartmenus",m)}return this.data(l+"_smartmenus")};a.fn.removeDataSM=function(l){return this.removeData(l+"_smartmenus")};a.fn.smartmenus=function(m){if(typeof m=="string"){var l=arguments,o=m;Array.prototype.shift.call(l);return this.each(function(){var p=a(this).data("smartmenus");if(p&&p[o]){p[o].apply(p,l)}})}var n=a.extend({},a.fn.smartmenus.defaults,m);return this.each(function(){new a.SmartMenus(this,n)})};a.fn.smartmenus.defaults={isPopup:false,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:true,subIndicatorsPos:"prepend",subIndicatorsText:"+",scrollStep:30,scrollAccelerate:true,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(m,l){m.fadeOut(200,l)},collapsibleShowDuration:0,collapsibleShowFunction:function(m,l){m.slideDown(200,l)},collapsibleHideDuration:0,collapsibleHideFunction:function(m,l){m.slideUp(200,l)},showOnClick:false,hideOnClick:true,noMouseOver:false,keepInViewport:true,keepHighlighted:true,markCurrentItem:false,markCurrentTree:true,rightToLeftSubMenus:false,bottomToTopSubMenus:false,overlapControlsInIE:true};return a}));
diff --git a/doc/1.1.0/libguac/layer-types_8h.html b/doc/1.1.0/libguac/layer-types_8h.html
new file mode 100644
index 0000000..b18a536
--- /dev/null
+++ b/doc/1.1.0/libguac/layer-types_8h.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/layer-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">layer-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to Guacamole layers.  
+<a href="#details">More...</a></p>
+
+<p><a href="layer-types_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to Guacamole layers. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/layer-types_8h_source.html b/doc/1.1.0/libguac/layer-types_8h_source.html
new file mode 100644
index 0000000..3e99bfc
--- /dev/null
+++ b/doc/1.1.0/libguac/layer-types_8h_source.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/layer-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">layer-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="layer-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_LAYER_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_LAYER_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__layer.html">guac_layer</a> <a class="code" href="structguac__layer.html">guac_layer</a>;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="ttc" id="structguac__layer_html"><div class="ttname"><a href="structguac__layer.html">guac_layer</a></div><div class="ttdoc">Represents a single layer within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> layer.h:34</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/layer_8h.html b/doc/1.1.0/libguac/layer_8h.html
new file mode 100644
index 0000000..bada7f3
--- /dev/null
+++ b/doc/1.1.0/libguac/layer_8h.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/layer.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a>  </div>
+  <div class="headertitle">
+<div class="title">layer.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures required for allocating and using layers.  
+<a href="#details">More...</a></p>
+
+<p><a href="layer_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__layer.html">guac_layer</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents a single layer within the Guacamole protocol.  <a href="structguac__layer.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures required for allocating and using layers. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/layer_8h_source.html b/doc/1.1.0/libguac/layer_8h_source.html
new file mode 100644
index 0000000..f74b387
--- /dev/null
+++ b/doc/1.1.0/libguac/layer_8h_source.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/layer.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">layer.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="layer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_LAYER_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_LAYER_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="layer-types_8h.html">layer-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structguac__layer.html">   34</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__layer.html">guac_layer</a> {</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba">   39</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba">index</a>;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;};</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="ttc" id="structguac__layer_html_a686a85d9d758ba5f2f4426a4c4ae13ba"><div class="ttname"><a href="structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba">guac_layer::index</a></div><div class="ttdeci">int index</div><div class="ttdoc">The index of this layer. </div><div class="ttdef"><b>Definition:</b> layer.h:39</div></div>
+<div class="ttc" id="layer-types_8h_html"><div class="ttname"><a href="layer-types_8h.html">layer-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole layers. </div></div>
+<div class="ttc" id="structguac__layer_html"><div class="ttname"><a href="structguac__layer.html">guac_layer</a></div><div class="ttdoc">Represents a single layer within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> layer.h:34</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/menu.js b/doc/1.1.0/libguac/menu.js
new file mode 100644
index 0000000..89aaf57
--- /dev/null
+++ b/doc/1.1.0/libguac/menu.js
@@ -0,0 +1,50 @@
+/*
+ @licstart  The following is the entire license notice for the
+ JavaScript code in this file.
+
+ Copyright (C) 1997-2017 by Dimitri van Heesch
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ @licend  The above is the entire license notice
+ for the JavaScript code in this file
+ */
+function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
+  function makeTree(data,relPath) {
+    var result='';
+    if ('children' in data) {
+      result+='<ul>';
+      for (var i in data.children) {
+        result+='<li><a href="'+relPath+data.children[i].url+'">'+
+                                data.children[i].text+'</a>'+
+                                makeTree(data.children[i],relPath)+'</li>';
+      }
+      result+='</ul>';
+    }
+    return result;
+  }
+
+  $('#main-nav').append(makeTree(menudata,relPath));
+  $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
+  if (searchEnabled) {
+    if (serverSide) {
+      $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><div class="left"><form id="FSearchBox" action="'+searchPage+'" method="get"><img id="MSearchSelect" src="'+relPath+'search/mag.png" alt=""/><input type="text" id="MSearchField" name="query" value="'+search+'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"></form></div><div class="right"></div></div></li>');
+    } else {
+      $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><span class="left"><img id="MSearchSelect" src="'+relPath+'search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/><input type="text" id="MSearchField" value="'+search+'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/></span><span class="right"><a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="'+relPath+'search/close.png" alt=""/></a></span></div></li>');
+    }
+  }
+  $('#main-menu').smartmenus();
+}
+/* @license-end */
diff --git a/doc/1.1.0/libguac/menudata.js b/doc/1.1.0/libguac/menudata.js
new file mode 100644
index 0000000..a3c88ef
--- /dev/null
+++ b/doc/1.1.0/libguac/menudata.js
@@ -0,0 +1,107 @@
+/*
+@ @licstart  The following is the entire license notice for the
+JavaScript code in this file.
+
+Copyright (C) 1997-2017 by Dimitri van Heesch
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+@licend  The above is the entire license notice
+for the JavaScript code in this file
+*/
+var menudata={children:[
+{text:"Main Page",url:"index.html"},
+{text:"Related Pages",url:"pages.html"},
+{text:"Data Structures",url:"annotated.html",children:[
+{text:"Data Structures",url:"annotated.html"},
+{text:"Data Structure Index",url:"classes.html"},
+{text:"Data Fields",url:"functions.html",children:[
+{text:"All",url:"functions.html",children:[
+{text:"a",url:"functions.html#index_a"},
+{text:"b",url:"functions.html#index_b"},
+{text:"c",url:"functions.html#index_c"},
+{text:"d",url:"functions.html#index_d"},
+{text:"e",url:"functions.html#index_e"},
+{text:"f",url:"functions.html#index_f"},
+{text:"g",url:"functions.html#index_g"},
+{text:"i",url:"functions.html#index_i"},
+{text:"j",url:"functions.html#index_j"},
+{text:"k",url:"functions.html#index_k"},
+{text:"l",url:"functions.html#index_l"},
+{text:"m",url:"functions.html#index_m"},
+{text:"o",url:"functions.html#index_o"},
+{text:"p",url:"functions.html#index_p"},
+{text:"r",url:"functions.html#index_r"},
+{text:"s",url:"functions.html#index_s"},
+{text:"t",url:"functions.html#index_t"},
+{text:"u",url:"functions.html#index_u"},
+{text:"v",url:"functions.html#index_v"},
+{text:"w",url:"functions.html#index_w"}]},
+{text:"Variables",url:"functions_vars.html",children:[
+{text:"a",url:"functions_vars.html#index_a"},
+{text:"b",url:"functions_vars.html#index_b"},
+{text:"c",url:"functions_vars.html#index_c"},
+{text:"d",url:"functions_vars.html#index_d"},
+{text:"e",url:"functions_vars.html#index_e"},
+{text:"f",url:"functions_vars.html#index_f"},
+{text:"g",url:"functions_vars.html#index_g"},
+{text:"i",url:"functions_vars.html#index_i"},
+{text:"j",url:"functions_vars.html#index_j"},
+{text:"k",url:"functions_vars.html#index_k"},
+{text:"l",url:"functions_vars.html#index_l"},
+{text:"m",url:"functions_vars.html#index_m"},
+{text:"o",url:"functions_vars.html#index_o"},
+{text:"p",url:"functions_vars.html#index_p"},
+{text:"r",url:"functions_vars.html#index_r"},
+{text:"s",url:"functions_vars.html#index_s"},
+{text:"t",url:"functions_vars.html#index_t"},
+{text:"u",url:"functions_vars.html#index_u"},
+{text:"v",url:"functions_vars.html#index_v"},
+{text:"w",url:"functions_vars.html#index_w"}]}]}]},
+{text:"Files",url:"files.html",children:[
+{text:"File List",url:"files.html"},
+{text:"Globals",url:"globals.html",children:[
+{text:"All",url:"globals.html",children:[
+{text:"a",url:"globals.html#index_a"},
+{text:"c",url:"globals_c.html#index_c"},
+{text:"e",url:"globals_e.html#index_e"},
+{text:"g",url:"globals_g.html#index_g"},
+{text:"h",url:"globals_h.html#index_h"},
+{text:"l",url:"globals_l.html#index_l"},
+{text:"p",url:"globals_p.html#index_p"},
+{text:"s",url:"globals_s.html#index_s"},
+{text:"t",url:"globals_t.html#index_t"},
+{text:"u",url:"globals_u.html#index_u"}]},
+{text:"Functions",url:"globals_func.html",children:[
+{text:"a",url:"globals_func.html#index_a"},
+{text:"c",url:"globals_func.html#index_c"},
+{text:"h",url:"globals_func.html#index_h"},
+{text:"p",url:"globals_func.html#index_p"},
+{text:"s",url:"globals_func.html#index_s"},
+{text:"t",url:"globals_func.html#index_t"},
+{text:"u",url:"globals_func.html#index_u"}]},
+{text:"Variables",url:"globals_vars.html"},
+{text:"Typedefs",url:"globals_type.html",children:[
+{text:"a",url:"globals_type.html#index_a"},
+{text:"c",url:"globals_type.html#index_c"},
+{text:"s",url:"globals_type.html#index_s"},
+{text:"t",url:"globals_type.html#index_t"},
+{text:"u",url:"globals_type.html#index_u"}]},
+{text:"Enumerations",url:"globals_enum.html"},
+{text:"Enumerator",url:"globals_eval.html",children:[
+{text:"g",url:"globals_eval.html#index_g"}]},
+{text:"Macros",url:"globals_defs.html",children:[
+{text:"e",url:"globals_defs.html#index_e"},
+{text:"g",url:"globals_defs.html#index_g"}]}]}]}]}
diff --git a/doc/1.1.0/libguac/nav_f.png b/doc/1.1.0/libguac/nav_f.png
new file mode 100644
index 0000000..72a58a5
--- /dev/null
+++ b/doc/1.1.0/libguac/nav_f.png
Binary files differ
diff --git a/doc/1.1.0/libguac/nav_g.png b/doc/1.1.0/libguac/nav_g.png
new file mode 100644
index 0000000..2093a23
--- /dev/null
+++ b/doc/1.1.0/libguac/nav_g.png
Binary files differ
diff --git a/doc/1.1.0/libguac/nav_h.png b/doc/1.1.0/libguac/nav_h.png
new file mode 100644
index 0000000..33389b1
--- /dev/null
+++ b/doc/1.1.0/libguac/nav_h.png
Binary files differ
diff --git a/doc/1.1.0/libguac/object-types_8h.html b/doc/1.1.0/libguac/object-types_8h.html
new file mode 100644
index 0000000..60aa86b
--- /dev/null
+++ b/doc/1.1.0/libguac/object-types_8h.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/object-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">object-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to Guacamole protocol objects.  
+<a href="#details">More...</a></p>
+
+<p><a href="object-types_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to Guacamole protocol objects. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/object-types_8h_source.html b/doc/1.1.0/libguac/object-types_8h_source.html
new file mode 100644
index 0000000..6c60ec6
--- /dev/null
+++ b/doc/1.1.0/libguac/object-types_8h_source.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/object-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">object-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="object-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_OBJECT_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_OBJECT_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__object.html">guac_object</a> <a class="code" href="structguac__object.html">guac_object</a>;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="ttc" id="structguac__object_html"><div class="ttname"><a href="structguac__object.html">guac_object</a></div><div class="ttdoc">Represents a single object within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> object.h:32</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/object_8h.html b/doc/1.1.0/libguac/object_8h.html
new file mode 100644
index 0000000..1f66797
--- /dev/null
+++ b/doc/1.1.0/libguac/object_8h.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/object.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a>  </div>
+  <div class="headertitle">
+<div class="title">object.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures required for allocating and using objects.  
+<a href="#details">More...</a></p>
+
+<p><a href="object_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__object.html">guac_object</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents a single object within the Guacamole protocol.  <a href="structguac__object.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures required for allocating and using objects. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/object_8h_source.html b/doc/1.1.0/libguac/object_8h_source.html
new file mode 100644
index 0000000..cf036cb
--- /dev/null
+++ b/doc/1.1.0/libguac/object_8h_source.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/object.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">object.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="object_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_OBJECT_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_OBJECT_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="object-types_8h.html">object-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-fntypes_8h.html">user-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="structguac__object.html">   32</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__object.html">guac_object</a> {</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="structguac__object.html#a643f03695d246bbf73b5c4942755a4b4">   37</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__object.html#a643f03695d246bbf73b5c4942755a4b4">index</a>;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e">   42</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e">data</a>;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">   65</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>* <a class="code" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">get_handler</a>;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">   88</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>* <a class="code" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">put_handler</a>;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;};</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="ttc" id="user-fntypes_8h_html_ab8b7cadf31aeac0b2ac0ce4f46dafe81"><div class="ttname"><a href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a></div><div class="ttdeci">int guac_user_get_handler(guac_user *user, guac_object *object, char *name)</div><div class="ttdoc">Handler for Guacamole object get requests. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:427</div></div>
+<div class="ttc" id="object-types_8h_html"><div class="ttname"><a href="object-types_8h.html">object-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol objects. </div></div>
+<div class="ttc" id="structguac__object_html_a33771a9a72c560b8ea99f940c4c412a6"><div class="ttname"><a href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">guac_object::put_handler</a></div><div class="ttdeci">guac_user_put_handler * put_handler</div><div class="ttdoc">Handler for put events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> object.h:88</div></div>
+<div class="ttc" id="structguac__object_html_ac9ca62cec5ba1124f8272da3adf7c44e"><div class="ttname"><a href="structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e">guac_object::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Arbitrary data associated with this object. </div><div class="ttdef"><b>Definition:</b> object.h:42</div></div>
+<div class="ttc" id="structguac__object_html"><div class="ttname"><a href="structguac__object.html">guac_object</a></div><div class="ttdoc">Represents a single object within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> object.h:32</div></div>
+<div class="ttc" id="user-fntypes_8h_html"><div class="ttname"><a href="user-fntypes_8h.html">user-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the guac_user object. </div></div>
+<div class="ttc" id="structguac__object_html_a643f03695d246bbf73b5c4942755a4b4"><div class="ttname"><a href="structguac__object.html#a643f03695d246bbf73b5c4942755a4b4">guac_object::index</a></div><div class="ttdeci">int index</div><div class="ttdoc">The index of this object. </div><div class="ttdef"><b>Definition:</b> object.h:37</div></div>
+<div class="ttc" id="user-fntypes_8h_html_afd4c60871cc2dbbbdc82f58ae1c5baa0"><div class="ttname"><a href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a></div><div class="ttdeci">int guac_user_put_handler(guac_user *user, guac_object *object, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole object put requests. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:454</div></div>
+<div class="ttc" id="structguac__object_html_a0e86747e4f1265935310f0df3a7f4b21"><div class="ttname"><a href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">guac_object::get_handler</a></div><div class="ttdeci">guac_user_get_handler * get_handler</div><div class="ttdoc">Handler for get events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> object.h:65</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/open.png b/doc/1.1.0/libguac/open.png
new file mode 100644
index 0000000..30f75c7
--- /dev/null
+++ b/doc/1.1.0/libguac/open.png
Binary files differ
diff --git a/doc/1.1.0/libguac/pages.html b/doc/1.1.0/libguac/pages.html
new file mode 100644
index 0000000..ef96d6d
--- /dev/null
+++ b/doc/1.1.0/libguac/pages.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Related Pages</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Related Pages</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="deprecated.html" target="_self">Deprecated List</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/parser-constants_8h.html b/doc/1.1.0/libguac/parser-constants_8h.html
new file mode 100644
index 0000000..50fbcba
--- /dev/null
+++ b/doc/1.1.0/libguac/parser-constants_8h.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/parser-constants.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">parser-constants.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Constants related to the Guacamole protocol parser.  
+<a href="#details">More...</a></p>
+
+<p><a href="parser-constants_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a6cb4157503008653c5200ea640fe8744"><td class="memItemLeft" align="right" valign="top"><a id="a6cb4157503008653c5200ea640fe8744"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744">GUAC_INSTRUCTION_MAX_LENGTH</a>&#160;&#160;&#160;8192</td></tr>
+<tr class="memdesc:a6cb4157503008653c5200ea640fe8744"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of characters per instruction. <br /></td></tr>
+<tr class="separator:a6cb4157503008653c5200ea640fe8744"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a408e5069154be109ad3dcf45cbc0b00f"><td class="memItemLeft" align="right" valign="top"><a id="a408e5069154be109ad3dcf45cbc0b00f"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser-constants_8h.html#a408e5069154be109ad3dcf45cbc0b00f">GUAC_INSTRUCTION_MAX_DIGITS</a>&#160;&#160;&#160;5</td></tr>
+<tr class="memdesc:a408e5069154be109ad3dcf45cbc0b00f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of digits to allow per length prefix. <br /></td></tr>
+<tr class="separator:a408e5069154be109ad3dcf45cbc0b00f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6f314dc5700812ca93ff132a15b86a46"><td class="memItemLeft" align="right" valign="top"><a id="a6f314dc5700812ca93ff132a15b86a46"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46">GUAC_INSTRUCTION_MAX_ELEMENTS</a>&#160;&#160;&#160;128</td></tr>
+<tr class="memdesc:a6f314dc5700812ca93ff132a15b86a46"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of elements per instruction, including the opcode. <br /></td></tr>
+<tr class="separator:a6f314dc5700812ca93ff132a15b86a46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Constants related to the Guacamole protocol parser. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/parser-constants_8h_source.html b/doc/1.1.0/libguac/parser-constants_8h_source.html
new file mode 100644
index 0000000..2565b32
--- /dev/null
+++ b/doc/1.1.0/libguac/parser-constants_8h_source.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/parser-constants.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">parser-constants.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="parser-constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_PARSER_CONSTANTS_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_PARSER_CONSTANTS_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744">   32</a></span>&#160;<span class="preprocessor">#define GUAC_INSTRUCTION_MAX_LENGTH 8192</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="parser-constants_8h.html#a408e5069154be109ad3dcf45cbc0b00f">   37</a></span>&#160;<span class="preprocessor">#define GUAC_INSTRUCTION_MAX_DIGITS 5</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46">   42</a></span>&#160;<span class="preprocessor">#define GUAC_INSTRUCTION_MAX_ELEMENTS 128</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/parser-types_8h.html b/doc/1.1.0/libguac/parser-types_8h.html
new file mode 100644
index 0000000..1fa3fb9
--- /dev/null
+++ b/doc/1.1.0/libguac/parser-types_8h.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/parser-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<div class="title">parser-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to parsing the Guacamole protocol.  
+<a href="#details">More...</a></p>
+
+<p><a href="parser-types_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a842bb8c1d5569ebebae3fdadb2527f30"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a> { <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc">GUAC_PARSE_LENGTH</a>, 
+<a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e">GUAC_PARSE_CONTENT</a>, 
+<a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf">GUAC_PARSE_COMPLETE</a>, 
+<a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc">GUAC_PARSE_ERROR</a>
+ }</td></tr>
+<tr class="memdesc:a842bb8c1d5569ebebae3fdadb2527f30"><td class="mdescLeft">&#160;</td><td class="mdescRight">All possible states of the instruction parser.  <a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">More...</a><br /></td></tr>
+<tr class="separator:a842bb8c1d5569ebebae3fdadb2527f30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to parsing the Guacamole protocol. </p>
+</div><h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="a842bb8c1d5569ebebae3fdadb2527f30"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a842bb8c1d5569ebebae3fdadb2527f30">&#9670;&nbsp;</a></span>guac_parse_state</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>All possible states of the instruction parser. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc"></a>GUAC_PARSE_LENGTH&#160;</td><td class="fielddoc"><p>The parser is currently waiting for data to complete the length prefix of the current element of the instruction. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e"></a>GUAC_PARSE_CONTENT&#160;</td><td class="fielddoc"><p>The parser has finished reading the length prefix and is currently waiting for data to complete the content of the instruction. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf"></a>GUAC_PARSE_COMPLETE&#160;</td><td class="fielddoc"><p>The instruction has been fully parsed. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc"></a>GUAC_PARSE_ERROR&#160;</td><td class="fielddoc"><p>The instruction cannot be parsed because of a protocol error. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/parser-types_8h_source.html b/doc/1.1.0/libguac/parser-types_8h_source.html
new file mode 100644
index 0000000..56f6d48
--- /dev/null
+++ b/doc/1.1.0/libguac/parser-types_8h_source.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/parser-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">parser-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="parser-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef _GUAC_PARSER_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define _GUAC_PARSER_TYPES_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">   33</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a> {</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc">   39</a></span>&#160;    <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc">GUAC_PARSE_LENGTH</a>,</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e">   45</a></span>&#160;    <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e">GUAC_PARSE_CONTENT</a>,</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf">   50</a></span>&#160;    <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf">GUAC_PARSE_COMPLETE</a>,</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc">   55</a></span>&#160;    <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc">GUAC_PARSE_ERROR</a></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;} <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a>;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__parser.html">guac_parser</a> <a class="code" href="structguac__parser.html">guac_parser</a>;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="ttc" id="parser-types_8h_html_a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf"><div class="ttname"><a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf">GUAC_PARSE_COMPLETE</a></div><div class="ttdoc">The instruction has been fully parsed. </div><div class="ttdef"><b>Definition:</b> parser-types.h:50</div></div>
+<div class="ttc" id="parser-types_8h_html_a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc"><div class="ttname"><a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc">GUAC_PARSE_LENGTH</a></div><div class="ttdoc">The parser is currently waiting for data to complete the length prefix of the current element of the ...</div><div class="ttdef"><b>Definition:</b> parser-types.h:39</div></div>
+<div class="ttc" id="parser-types_8h_html_a842bb8c1d5569ebebae3fdadb2527f30"><div class="ttname"><a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a></div><div class="ttdeci">guac_parse_state</div><div class="ttdoc">All possible states of the instruction parser. </div><div class="ttdef"><b>Definition:</b> parser-types.h:33</div></div>
+<div class="ttc" id="parser-types_8h_html_a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc"><div class="ttname"><a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc">GUAC_PARSE_ERROR</a></div><div class="ttdoc">The instruction cannot be parsed because of a protocol error. </div><div class="ttdef"><b>Definition:</b> parser-types.h:55</div></div>
+<div class="ttc" id="parser-types_8h_html_a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e"><div class="ttname"><a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e">GUAC_PARSE_CONTENT</a></div><div class="ttdoc">The parser has finished reading the length prefix and is currently waiting for data to complete the c...</div><div class="ttdef"><b>Definition:</b> parser-types.h:45</div></div>
+<div class="ttc" id="structguac__parser_html"><div class="ttname"><a href="structguac__parser.html">guac_parser</a></div><div class="ttdoc">A Guacamole protocol parser, which reads individual instructions, filling its own internal structure ...</div><div class="ttdef"><b>Definition:</b> parser.h:34</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/parser_8h.html b/doc/1.1.0/libguac/parser_8h.html
new file mode 100644
index 0000000..b90da16
--- /dev/null
+++ b/doc/1.1.0/libguac/parser_8h.html
@@ -0,0 +1,389 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/parser.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">parser.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures for parsing the Guacamole protocol.  
+<a href="#details">More...</a></p>
+
+<p><a href="parser_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__parser.html">guac_parser</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A Guacamole protocol parser, which reads individual instructions, filling its own internal structure with the most recently read instruction data.  <a href="structguac__parser.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a69dc498eb4d71d353bff07b88ec21cad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad">guac_parser_alloc</a> ()</td></tr>
+<tr class="memdesc:a69dc498eb4d71d353bff07b88ec21cad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new parser.  <a href="#a69dc498eb4d71d353bff07b88ec21cad">More...</a><br /></td></tr>
+<tr class="separator:a69dc498eb4d71d353bff07b88ec21cad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab1ca22b7bf9c232cce0d122f03dc183d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d">guac_parser_append</a> (<a class="el" href="structguac__parser.html">guac_parser</a> *parser, void *buffer, int length)</td></tr>
+<tr class="memdesc:ab1ca22b7bf9c232cce0d122f03dc183d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends data from the given buffer to the given parser.  <a href="#ab1ca22b7bf9c232cce0d122f03dc183d">More...</a><br /></td></tr>
+<tr class="separator:ab1ca22b7bf9c232cce0d122f03dc183d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8899dd607997fcffd78517947b17760b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#a8899dd607997fcffd78517947b17760b">guac_parser_length</a> (<a class="el" href="structguac__parser.html">guac_parser</a> *parser)</td></tr>
+<tr class="memdesc:a8899dd607997fcffd78517947b17760b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of unparsed bytes stored in the given parser's internal buffers.  <a href="#a8899dd607997fcffd78517947b17760b">More...</a><br /></td></tr>
+<tr class="separator:a8899dd607997fcffd78517947b17760b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56e7b2a85abdb6cb4ec4bd6e47a92ed3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">guac_parser_shift</a> (<a class="el" href="structguac__parser.html">guac_parser</a> *parser, void *buffer, int length)</td></tr>
+<tr class="memdesc:a56e7b2a85abdb6cb4ec4bd6e47a92ed3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes up to length bytes from internal buffer of unparsed bytes, storing them in the given buffer.  <a href="#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">More...</a><br /></td></tr>
+<tr class="separator:a56e7b2a85abdb6cb4ec4bd6e47a92ed3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3b7d4df1ca25c5bced1c08b329f0a0f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f">guac_parser_free</a> (<a class="el" href="structguac__parser.html">guac_parser</a> *parser)</td></tr>
+<tr class="memdesc:ad3b7d4df1ca25c5bced1c08b329f0a0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees all memory allocated to the given parser.  <a href="#ad3b7d4df1ca25c5bced1c08b329f0a0f">More...</a><br /></td></tr>
+<tr class="separator:ad3b7d4df1ca25c5bced1c08b329f0a0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a1169f5040732e4f4b55ee6c1e1fe93"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93">guac_parser_read</a> (<a class="el" href="structguac__parser.html">guac_parser</a> *parser, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, int usec_timeout)</td></tr>
+<tr class="memdesc:a8a1169f5040732e4f4b55ee6c1e1fe93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a single instruction from the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a8a1169f5040732e4f4b55ee6c1e1fe93">More...</a><br /></td></tr>
+<tr class="separator:a8a1169f5040732e4f4b55ee6c1e1fe93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac54c94465aead463ce10e9a090b9b701"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#ac54c94465aead463ce10e9a090b9b701">guac_parser_expect</a> (<a class="el" href="structguac__parser.html">guac_parser</a> *parser, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, int usec_timeout, const char *opcode)</td></tr>
+<tr class="memdesc:ac54c94465aead463ce10e9a090b9b701"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a single instruction from the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>.  <a href="#ac54c94465aead463ce10e9a090b9b701">More...</a><br /></td></tr>
+<tr class="separator:ac54c94465aead463ce10e9a090b9b701"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures for parsing the Guacamole protocol. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a69dc498eb4d71d353bff07b88ec21cad"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a69dc498eb4d71d353bff07b88ec21cad">&#9670;&nbsp;</a></span>guac_parser_alloc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__parser.html">guac_parser</a>* guac_parser_alloc </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new parser. </p>
+<dl class="section return"><dt>Returns</dt><dd>The newly allocated parser, or NULL if an error occurs during allocation, in which case guac_error will be set appropriately. </dd></dl>
+
+</div>
+</div>
+<a id="ab1ca22b7bf9c232cce0d122f03dc183d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab1ca22b7bf9c232cce0d122f03dc183d">&#9670;&nbsp;</a></span>guac_parser_append()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_parser_append </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td>
+          <td class="paramname"><em>parser</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>buffer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>length</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Appends data from the given buffer to the given parser. </p>
+<p>The data will be appended, if possible, to the in-progress instruction as a reference and thus the buffer must remain valid throughout the life of the current instruction. This function may modify the contents of the buffer when those contents are part of an element within the instruction being read.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parser</td><td>The parser to append data to. </td></tr>
+    <tr><td class="paramname">buffer</td><td>A buffer containing data that should be appended to this parser. </td></tr>
+    <tr><td class="paramname">length</td><td>The number of bytes available for appending within the buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes appended to this parser, which may be zero if more data is needed. </dd></dl>
+
+</div>
+</div>
+<a id="ac54c94465aead463ce10e9a090b9b701"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac54c94465aead463ce10e9a090b9b701">&#9670;&nbsp;</a></span>guac_parser_expect()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_parser_expect </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td>
+          <td class="paramname"><em>parser</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>usec_timeout</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>opcode</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Reads a single instruction from the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>. </p>
+<p>This operates identically to <a class="el" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93" title="Reads a single instruction from the given guac_socket connection. ">guac_parser_read()</a>, except that an error is returned if the expected opcode is not received.</p>
+<p>If an error occurs reading the instruction, NULL is returned, and guac_error is set appropriately.</p>
+<p>If the instruction read is not the expected instruction, NULL is returned, and guac_error is set to GUAC_STATUS_BAD_STATE.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parser</td><td>The <a class="el" href="structguac__parser.html" title="A Guacamole protocol parser, which reads individual instructions, filling its own internal structure ...">guac_parser</a> to read instruction data from. </td></tr>
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">usec_timeout</td><td>The maximum number of microseconds to wait before giving up. </td></tr>
+    <tr><td class="paramname">opcode</td><td>The opcode of the instruction to read. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if an instruction with the given opcode was read, non-zero otherwise. If an instruction was read, but the instruction had a different opcode, non-zero is returned and guac_error is set to GUAC_STATUS_BAD_STATE. </dd></dl>
+
+</div>
+</div>
+<a id="ad3b7d4df1ca25c5bced1c08b329f0a0f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad3b7d4df1ca25c5bced1c08b329f0a0f">&#9670;&nbsp;</a></span>guac_parser_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_parser_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td>
+          <td class="paramname"><em>parser</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Frees all memory allocated to the given parser. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parser</td><td>The parser to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a8899dd607997fcffd78517947b17760b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8899dd607997fcffd78517947b17760b">&#9670;&nbsp;</a></span>guac_parser_length()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_parser_length </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td>
+          <td class="paramname"><em>parser</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the number of unparsed bytes stored in the given parser's internal buffers. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parser</td><td>The parser to return the length of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of unparsed bytes stored in the given parser. </dd></dl>
+
+</div>
+</div>
+<a id="a8a1169f5040732e4f4b55ee6c1e1fe93"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8a1169f5040732e4f4b55ee6c1e1fe93">&#9670;&nbsp;</a></span>guac_parser_read()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_parser_read </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td>
+          <td class="paramname"><em>parser</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>usec_timeout</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Reads a single instruction from the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>This may result in additional data being read from the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, stored internally within a buffer for future parsing. Future calls to <a class="el" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93" title="Reads a single instruction from the given guac_socket connection. ">guac_parser_read()</a> will read from the interal buffer before reading from the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>. Data from the internal buffer can be removed and used elsewhere through <a class="el" href="parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3" title="Removes up to length bytes from internal buffer of unparsed bytes, storing them in the given buffer...">guac_parser_shift()</a>.</p>
+<p>If an error occurs reading the instruction, non-zero is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parser</td><td>The <a class="el" href="structguac__parser.html" title="A Guacamole protocol parser, which reads individual instructions, filling its own internal structure ...">guac_parser</a> to read instruction data from. </td></tr>
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">usec_timeout</td><td>The maximum number of microseconds to wait before giving up. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if an instruction was read within the time allowed, or non-zero if no instruction could be read. If the instruction could not be read completely because the timeout elapsed, in which case guac_error will be set to GUAC_STATUS_INPUT_TIMEOUT and additional calls to <a class="el" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93" title="Reads a single instruction from the given guac_socket connection. ">guac_parser_read()</a> will be required. </dd></dl>
+
+</div>
+</div>
+<a id="a56e7b2a85abdb6cb4ec4bd6e47a92ed3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">&#9670;&nbsp;</a></span>guac_parser_shift()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_parser_shift </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td>
+          <td class="paramname"><em>parser</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>buffer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>length</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Removes up to length bytes from internal buffer of unparsed bytes, storing them in the given buffer. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parser</td><td>The parser to remove unparsed bytes from. </td></tr>
+    <tr><td class="paramname">buffer</td><td>The buffer to store the unparsed bytes within. </td></tr>
+    <tr><td class="paramname">length</td><td>The length of the given buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes stored in the given buffer. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/parser_8h_source.html b/doc/1.1.0/libguac/parser_8h_source.html
new file mode 100644
index 0000000..b5c1c0d
--- /dev/null
+++ b/doc/1.1.0/libguac/parser_8h_source.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/parser.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">parser.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="parser_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef _GUAC_PARSER_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define _GUAC_PARSER_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="parser-types_8h.html">parser-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="parser-constants_8h.html">parser-constants.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structguac__parser.html">   34</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__parser.html">guac_parser</a> {</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1">   39</a></span>&#160;    <span class="keywordtype">char</span>* <a class="code" href="structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1">opcode</a>;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe">   44</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe">argc</a>;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701">   49</a></span>&#160;    <span class="keywordtype">char</span>** <a class="code" href="structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701">argv</a>;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structguac__parser.html#a2773500f91b3cdb7de7bdea280228054">   54</a></span>&#160;    <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a> <a class="code" href="structguac__parser.html#a2773500f91b3cdb7de7bdea280228054">state</a>;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <span class="keywordtype">int</span> __element_length;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordtype">int</span> __elementc;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keywordtype">char</span>* __elementv[<a class="code" href="parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46">GUAC_INSTRUCTION_MAX_ELEMENTS</a>];</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <span class="keywordtype">char</span>* __instructionbuf_unparsed_start;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="keywordtype">char</span>* __instructionbuf_unparsed_end;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keywordtype">char</span> __instructionbuf[32768];</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;};</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<a class="code" href="structguac__parser.html">guac_parser</a>* <a class="code" href="parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad">guac_parser_alloc</a>();</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="keywordtype">int</span> <a class="code" href="parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d">guac_parser_append</a>(<a class="code" href="structguac__parser.html">guac_parser</a>* parser, <span class="keywordtype">void</span>* buffer, <span class="keywordtype">int</span> length);</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="keywordtype">int</span> <a class="code" href="parser_8h.html#a8899dd607997fcffd78517947b17760b">guac_parser_length</a>(<a class="code" href="structguac__parser.html">guac_parser</a>* parser);</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="keywordtype">int</span> <a class="code" href="parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">guac_parser_shift</a>(<a class="code" href="structguac__parser.html">guac_parser</a>* parser, <span class="keywordtype">void</span>* buffer, <span class="keywordtype">int</span> length);</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="keywordtype">void</span> <a class="code" href="parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f">guac_parser_free</a>(<a class="code" href="structguac__parser.html">guac_parser</a>* parser);</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="keywordtype">int</span> <a class="code" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93">guac_parser_read</a>(<a class="code" href="structguac__parser.html">guac_parser</a>* parser, <a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> usec_timeout);</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="keywordtype">int</span> <a class="code" href="parser_8h.html#ac54c94465aead463ce10e9a090b9b701">guac_parser_expect</a>(<a class="code" href="structguac__parser.html">guac_parser</a>* parser, <a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> usec_timeout, <span class="keyword">const</span> <span class="keywordtype">char</span>* opcode);</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;</div><div class="ttc" id="structguac__parser_html_a9bd5362b9de8cf2adfcdff2c86bb4701"><div class="ttname"><a href="structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701">guac_parser::argv</a></div><div class="ttdeci">char ** argv</div><div class="ttdoc">Array of all arguments passed to this instruction. </div><div class="ttdef"><b>Definition:</b> parser.h:49</div></div>
+<div class="ttc" id="parser_8h_html_a69dc498eb4d71d353bff07b88ec21cad"><div class="ttname"><a href="parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad">guac_parser_alloc</a></div><div class="ttdeci">guac_parser * guac_parser_alloc()</div><div class="ttdoc">Allocates a new parser. </div></div>
+<div class="ttc" id="parser_8h_html_a8a1169f5040732e4f4b55ee6c1e1fe93"><div class="ttname"><a href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93">guac_parser_read</a></div><div class="ttdeci">int guac_parser_read(guac_parser *parser, guac_socket *socket, int usec_timeout)</div><div class="ttdoc">Reads a single instruction from the given guac_socket connection. </div></div>
+<div class="ttc" id="parser_8h_html_ac54c94465aead463ce10e9a090b9b701"><div class="ttname"><a href="parser_8h.html#ac54c94465aead463ce10e9a090b9b701">guac_parser_expect</a></div><div class="ttdeci">int guac_parser_expect(guac_parser *parser, guac_socket *socket, int usec_timeout, const char *opcode)</div><div class="ttdoc">Reads a single instruction from the given guac_socket. </div></div>
+<div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object. </div></div>
+<div class="ttc" id="parser_8h_html_ab1ca22b7bf9c232cce0d122f03dc183d"><div class="ttname"><a href="parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d">guac_parser_append</a></div><div class="ttdeci">int guac_parser_append(guac_parser *parser, void *buffer, int length)</div><div class="ttdoc">Appends data from the given buffer to the given parser. </div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole. </div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="parser-types_8h_html"><div class="ttname"><a href="parser-types_8h.html">parser-types.h</a></div><div class="ttdoc">Type definitions related to parsing the Guacamole protocol. </div></div>
+<div class="ttc" id="parser_8h_html_a8899dd607997fcffd78517947b17760b"><div class="ttname"><a href="parser_8h.html#a8899dd607997fcffd78517947b17760b">guac_parser_length</a></div><div class="ttdeci">int guac_parser_length(guac_parser *parser)</div><div class="ttdoc">Returns the number of unparsed bytes stored in the given parser&amp;#39;s internal buffers. </div></div>
+<div class="ttc" id="parser_8h_html_ad3b7d4df1ca25c5bced1c08b329f0a0f"><div class="ttname"><a href="parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f">guac_parser_free</a></div><div class="ttdeci">void guac_parser_free(guac_parser *parser)</div><div class="ttdoc">Frees all memory allocated to the given parser. </div></div>
+<div class="ttc" id="structguac__parser_html_a725767c57dc6f157afe2d7dd6ce281e1"><div class="ttname"><a href="structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1">guac_parser::opcode</a></div><div class="ttdeci">char * opcode</div><div class="ttdoc">The opcode of the instruction. </div><div class="ttdef"><b>Definition:</b> parser.h:39</div></div>
+<div class="ttc" id="parser-types_8h_html_a842bb8c1d5569ebebae3fdadb2527f30"><div class="ttname"><a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a></div><div class="ttdeci">guac_parse_state</div><div class="ttdoc">All possible states of the instruction parser. </div><div class="ttdef"><b>Definition:</b> parser-types.h:33</div></div>
+<div class="ttc" id="structguac__parser_html_a2773500f91b3cdb7de7bdea280228054"><div class="ttname"><a href="structguac__parser.html#a2773500f91b3cdb7de7bdea280228054">guac_parser::state</a></div><div class="ttdeci">guac_parse_state state</div><div class="ttdoc">The parse state of the instruction. </div><div class="ttdef"><b>Definition:</b> parser.h:54</div></div>
+<div class="ttc" id="structguac__parser_html_a718ce9e60c8414c367ce393cc4e0cffe"><div class="ttname"><a href="structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe">guac_parser::argc</a></div><div class="ttdeci">int argc</div><div class="ttdoc">The number of arguments passed to this instruction. </div><div class="ttdef"><b>Definition:</b> parser.h:44</div></div>
+<div class="ttc" id="parser_8h_html_a56e7b2a85abdb6cb4ec4bd6e47a92ed3"><div class="ttname"><a href="parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">guac_parser_shift</a></div><div class="ttdeci">int guac_parser_shift(guac_parser *parser, void *buffer, int length)</div><div class="ttdoc">Removes up to length bytes from internal buffer of unparsed bytes, storing them in the given buffer...</div></div>
+<div class="ttc" id="parser-constants_8h_html_a6f314dc5700812ca93ff132a15b86a46"><div class="ttname"><a href="parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46">GUAC_INSTRUCTION_MAX_ELEMENTS</a></div><div class="ttdeci">#define GUAC_INSTRUCTION_MAX_ELEMENTS</div><div class="ttdoc">The maximum number of elements per instruction, including the opcode. </div><div class="ttdef"><b>Definition:</b> parser-constants.h:42</div></div>
+<div class="ttc" id="structguac__parser_html"><div class="ttname"><a href="structguac__parser.html">guac_parser</a></div><div class="ttdoc">A Guacamole protocol parser, which reads individual instructions, filling its own internal structure ...</div><div class="ttdef"><b>Definition:</b> parser.h:34</div></div>
+<div class="ttc" id="parser-constants_8h_html"><div class="ttname"><a href="parser-constants_8h.html">parser-constants.h</a></div><div class="ttdoc">Constants related to the Guacamole protocol parser. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/plugin-constants_8h.html b/doc/1.1.0/libguac/plugin-constants_8h.html
new file mode 100644
index 0000000..310bb43
--- /dev/null
+++ b/doc/1.1.0/libguac/plugin-constants_8h.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/plugin-constants.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">plugin-constants.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Constants related to client plugins.  
+<a href="#details">More...</a></p>
+
+<p><a href="plugin-constants_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ac328a06358d3e07e10999e556f77c05a"><td class="memItemLeft" align="right" valign="top"><a id="ac328a06358d3e07e10999e556f77c05a"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a">GUAC_PROTOCOL_LIBRARY_PREFIX</a>&#160;&#160;&#160;&quot;libguac-client-&quot;</td></tr>
+<tr class="memdesc:ac328a06358d3e07e10999e556f77c05a"><td class="mdescLeft">&#160;</td><td class="mdescRight">String prefix which begins the library filename of all client plugins. <br /></td></tr>
+<tr class="separator:ac328a06358d3e07e10999e556f77c05a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3601bb5aaa3ca309987f70bd48005fd"><td class="memItemLeft" align="right" valign="top"><a id="af3601bb5aaa3ca309987f70bd48005fd"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd">GUAC_PROTOCOL_LIBRARY_SUFFIX</a>&#160;&#160;&#160;&quot;.so&quot;</td></tr>
+<tr class="memdesc:af3601bb5aaa3ca309987f70bd48005fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">String suffix which ends the library filename of all client plugins. <br /></td></tr>
+<tr class="separator:af3601bb5aaa3ca309987f70bd48005fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ce2e3a2b6be66e9ab382fb8d2ab2621"><td class="memItemLeft" align="right" valign="top"><a id="a4ce2e3a2b6be66e9ab382fb8d2ab2621"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621">GUAC_PROTOCOL_NAME_LIMIT</a>&#160;&#160;&#160;256</td></tr>
+<tr class="memdesc:a4ce2e3a2b6be66e9ab382fb8d2ab2621"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of characters (COUNTING NULL TERMINATOR) to allow for protocol names within the library filename of client plugins. <br /></td></tr>
+<tr class="separator:a4ce2e3a2b6be66e9ab382fb8d2ab2621"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a03c00580f4455d35c1ed33ed4dcfe2fe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin-constants_8h.html#a03c00580f4455d35c1ed33ed4dcfe2fe">GUAC_PROTOCOL_LIBRARY_LIMIT</a></td></tr>
+<tr class="memdesc:a03c00580f4455d35c1ed33ed4dcfe2fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of characters (INCLUDING NULL TERMINATOR) that a character array containing the concatenation of the library prefix, protocol name, and suffix can contain, assuming the protocol name is limited to GUAC_PROTOCOL_NAME_LIMIT characters.  <a href="#a03c00580f4455d35c1ed33ed4dcfe2fe">More...</a><br /></td></tr>
+<tr class="separator:a03c00580f4455d35c1ed33ed4dcfe2fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Constants related to client plugins. </p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="a03c00580f4455d35c1ed33ed4dcfe2fe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a03c00580f4455d35c1ed33ed4dcfe2fe">&#9670;&nbsp;</a></span>GUAC_PROTOCOL_LIBRARY_LIMIT</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_PROTOCOL_LIBRARY_LIMIT</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line">(                                  \</div><div class="line">                                                                       \</div><div class="line">      sizeof(<a class="code" href="plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a">GUAC_PROTOCOL_LIBRARY_PREFIX</a>) - 1 <span class="comment">/* &quot;libguac-client-&quot; */</span> \</div><div class="line">    +        <a class="code" href="plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621">GUAC_PROTOCOL_NAME_LIMIT</a>      - 1 <span class="comment">/* [up to 256 chars] */</span> \</div><div class="line">    + <span class="keyword">sizeof</span>(<a class="code" href="plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd">GUAC_PROTOCOL_LIBRARY_SUFFIX</a>) - 1 <span class="comment">/* &quot;.so&quot;             */</span> \</div><div class="line">    + 1                                        <span class="comment">/* NULL terminator   */</span> \</div><div class="line">                                                                       \</div><div class="line">)</div><div class="ttc" id="plugin-constants_8h_html_af3601bb5aaa3ca309987f70bd48005fd"><div class="ttname"><a href="plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd">GUAC_PROTOCOL_LIBRARY_SUFFIX</a></div><div class="ttdeci">#define GUAC_PROTOCOL_LIBRARY_SUFFIX</div><div class="ttdoc">String suffix which ends the library filename of all client plugins. </div><div class="ttdef"><b>Definition:</b> plugin-constants.h:37</div></div>
+<div class="ttc" id="plugin-constants_8h_html_a4ce2e3a2b6be66e9ab382fb8d2ab2621"><div class="ttname"><a href="plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621">GUAC_PROTOCOL_NAME_LIMIT</a></div><div class="ttdeci">#define GUAC_PROTOCOL_NAME_LIMIT</div><div class="ttdoc">The maximum number of characters (COUNTING NULL TERMINATOR) to allow for protocol names within the li...</div><div class="ttdef"><b>Definition:</b> plugin-constants.h:43</div></div>
+<div class="ttc" id="plugin-constants_8h_html_ac328a06358d3e07e10999e556f77c05a"><div class="ttname"><a href="plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a">GUAC_PROTOCOL_LIBRARY_PREFIX</a></div><div class="ttdeci">#define GUAC_PROTOCOL_LIBRARY_PREFIX</div><div class="ttdoc">String prefix which begins the library filename of all client plugins. </div><div class="ttdef"><b>Definition:</b> plugin-constants.h:32</div></div>
+</div><!-- fragment -->
+<p>The maximum number of characters (INCLUDING NULL TERMINATOR) that a character array containing the concatenation of the library prefix, protocol name, and suffix can contain, assuming the protocol name is limited to GUAC_PROTOCOL_NAME_LIMIT characters. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/plugin-constants_8h_source.html b/doc/1.1.0/libguac/plugin-constants_8h_source.html
new file mode 100644
index 0000000..4b30c12
--- /dev/null
+++ b/doc/1.1.0/libguac/plugin-constants_8h_source.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/plugin-constants.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">plugin-constants.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="plugin-constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_PLUGIN_CONSTANTS_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_PLUGIN_CONSTANTS_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a">   32</a></span>&#160;<span class="preprocessor">#define GUAC_PROTOCOL_LIBRARY_PREFIX &quot;libguac-client-&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd">   37</a></span>&#160;<span class="preprocessor">#define GUAC_PROTOCOL_LIBRARY_SUFFIX &quot;.so&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621">   43</a></span>&#160;<span class="preprocessor">#define GUAC_PROTOCOL_NAME_LIMIT 256</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="plugin-constants_8h.html#a03c00580f4455d35c1ed33ed4dcfe2fe">   51</a></span>&#160;<span class="preprocessor">#define GUAC_PROTOCOL_LIBRARY_LIMIT (                                  \</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">                                                                       \</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">      sizeof(GUAC_PROTOCOL_LIBRARY_PREFIX) - 1 </span><span class="comment">/* &quot;libguac-client-&quot; */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">    +        GUAC_PROTOCOL_NAME_LIMIT      - 1 </span><span class="comment">/* [up to 256 chars] */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">    + sizeof(GUAC_PROTOCOL_LIBRARY_SUFFIX) - 1 </span><span class="comment">/* &quot;.so&quot;             */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">    + 1                                        </span><span class="comment">/* NULL terminator   */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">                                                                       \</span></div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">)</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/plugin_8h.html b/doc/1.1.0/libguac/plugin_8h.html
new file mode 100644
index 0000000..d97f06e
--- /dev/null
+++ b/doc/1.1.0/libguac/plugin_8h.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/plugin.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">plugin.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures required for handling a client plugin.  
+<a href="#details">More...</a></p>
+
+<p><a href="plugin_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures required for handling a client plugin. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/plugin_8h_source.html b/doc/1.1.0/libguac/plugin_8h_source.html
new file mode 100644
index 0000000..62e005b
--- /dev/null
+++ b/doc/1.1.0/libguac/plugin_8h_source.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/plugin.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">plugin.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="plugin_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_PLUGIN_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_PLUGIN_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="plugin-constants_8h.html">plugin-constants.h</a>&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="plugin-constants_8h_html"><div class="ttname"><a href="plugin-constants_8h.html">plugin-constants.h</a></div><div class="ttdoc">Constants related to client plugins. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/pool-types_8h.html b/doc/1.1.0/libguac/pool-types_8h.html
new file mode 100644
index 0000000..8364a40
--- /dev/null
+++ b/doc/1.1.0/libguac/pool-types_8h.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/pool-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">pool-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to the <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a> pool of unique integers.  
+<a href="#details">More...</a></p>
+
+<p><a href="pool-types_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to the <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a> pool of unique integers. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/pool-types_8h_source.html b/doc/1.1.0/libguac/pool-types_8h_source.html
new file mode 100644
index 0000000..917a708
--- /dev/null
+++ b/doc/1.1.0/libguac/pool-types_8h_source.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/pool-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">pool-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="pool-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_POOL_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_POOL_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__pool__int.html">guac_pool_int</a> <a class="code" href="structguac__pool__int.html">guac_pool_int</a>;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__pool.html">guac_pool</a> <a class="code" href="structguac__pool.html">guac_pool</a>;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="ttc" id="structguac__pool__int_html"><div class="ttname"><a href="structguac__pool__int.html">guac_pool_int</a></div><div class="ttdoc">Represents a single integer within a larger pool of integers. </div><div class="ttdef"><b>Definition:</b> pool.h:71</div></div>
+<div class="ttc" id="structguac__pool_html"><div class="ttname"><a href="structguac__pool.html">guac_pool</a></div><div class="ttdoc">A pool of integers. </div><div class="ttdef"><b>Definition:</b> pool.h:34</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/pool_8h.html b/doc/1.1.0/libguac/pool_8h.html
new file mode 100644
index 0000000..2d6fa7d
--- /dev/null
+++ b/doc/1.1.0/libguac/pool_8h.html
@@ -0,0 +1,236 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/pool.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">pool.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures for maintaining dynamically allocated and freed pools of integers.  
+<a href="#details">More...</a></p>
+
+<p><a href="pool_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__pool.html">guac_pool</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A pool of integers.  <a href="structguac__pool.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__pool__int.html">guac_pool_int</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents a single integer within a larger pool of integers.  <a href="structguac__pool__int.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a3e7589997fdd734a6d6155badebd042f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__pool.html">guac_pool</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pool_8h.html#a3e7589997fdd734a6d6155badebd042f">guac_pool_alloc</a> (int size)</td></tr>
+<tr class="memdesc:a3e7589997fdd734a6d6155badebd042f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a> having the given minimum size.  <a href="#a3e7589997fdd734a6d6155badebd042f">More...</a><br /></td></tr>
+<tr class="separator:a3e7589997fdd734a6d6155badebd042f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7015e5939617ab7e55477ba0a4f85bdb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb">guac_pool_free</a> (<a class="el" href="structguac__pool.html">guac_pool</a> *pool)</td></tr>
+<tr class="memdesc:a7015e5939617ab7e55477ba0a4f85bdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees the given <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a>.  <a href="#a7015e5939617ab7e55477ba0a4f85bdb">More...</a><br /></td></tr>
+<tr class="separator:a7015e5939617ab7e55477ba0a4f85bdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe3c79e0fec121e3d1b1d3ce37aa45f4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4">guac_pool_next_int</a> (<a class="el" href="structguac__pool.html">guac_pool</a> *pool)</td></tr>
+<tr class="memdesc:abe3c79e0fec121e3d1b1d3ce37aa45f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the next available integer from the given <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a>.  <a href="#abe3c79e0fec121e3d1b1d3ce37aa45f4">More...</a><br /></td></tr>
+<tr class="separator:abe3c79e0fec121e3d1b1d3ce37aa45f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad90069a41689cf319f46af44bb113579"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pool_8h.html#ad90069a41689cf319f46af44bb113579">guac_pool_free_int</a> (<a class="el" href="structguac__pool.html">guac_pool</a> *pool, int value)</td></tr>
+<tr class="memdesc:ad90069a41689cf319f46af44bb113579"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees the given integer back into the given <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a>.  <a href="#ad90069a41689cf319f46af44bb113579">More...</a><br /></td></tr>
+<tr class="separator:ad90069a41689cf319f46af44bb113579"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures for maintaining dynamically allocated and freed pools of integers. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a3e7589997fdd734a6d6155badebd042f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3e7589997fdd734a6d6155badebd042f">&#9670;&nbsp;</a></span>guac_pool_alloc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__pool.html">guac_pool</a>* guac_pool_alloc </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>size</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a> having the given minimum size. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">size</td><td>The minimum number of integers which must have been returned by guac_pool_next_int before freed integers (previously used integers) are allowed to be returned. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A new, empty <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a>, having the given minimum size. </dd></dl>
+
+</div>
+</div>
+<a id="a7015e5939617ab7e55477ba0a4f85bdb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7015e5939617ab7e55477ba0a4f85bdb">&#9670;&nbsp;</a></span>guac_pool_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_pool_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__pool.html">guac_pool</a> *&#160;</td>
+          <td class="paramname"><em>pool</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Frees the given <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pool</td><td>The <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a> to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ad90069a41689cf319f46af44bb113579"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad90069a41689cf319f46af44bb113579">&#9670;&nbsp;</a></span>guac_pool_free_int()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_pool_free_int </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__pool.html">guac_pool</a> *&#160;</td>
+          <td class="paramname"><em>pool</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Frees the given integer back into the given <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a>. </p>
+<p>The integer given will be available for future calls to guac_pool_next_int. This operation is threadsafe.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pool</td><td>The <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a> to free the given integer into.</td></tr>
+    <tr><td class="paramname">value</td><td>The integer which should be returned to the given pool, such that it can be received by a future call to guac_pool_next_int. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="abe3c79e0fec121e3d1b1d3ce37aa45f4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abe3c79e0fec121e3d1b1d3ce37aa45f4">&#9670;&nbsp;</a></span>guac_pool_next_int()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_pool_next_int </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__pool.html">guac_pool</a> *&#160;</td>
+          <td class="paramname"><em>pool</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the next available integer from the given <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a>. </p>
+<p>All integers returned are non-negative, and are returned in sequences, starting from 0. This operation is threadsafe.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pool</td><td>The <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a> to retrieve an integer from.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The next available integer, which may be either an integer not yet returned by a call to guac_pool_next_int, or an integer which was previously returned, but has since been freed. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/pool_8h_source.html b/doc/1.1.0/libguac/pool_8h_source.html
new file mode 100644
index 0000000..b6003c5
--- /dev/null
+++ b/doc/1.1.0/libguac/pool_8h_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/pool.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">pool.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="pool_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_POOL_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_POOL_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="pool-types_8h.html">pool-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structguac__pool.html">   34</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__pool.html">guac_pool</a> {</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e">   41</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e">min_size</a>;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3">   46</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3">active</a>;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="keywordtype">int</span> __next_value;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <a class="code" href="structguac__pool__int.html">guac_pool_int</a>* __head;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <a class="code" href="structguac__pool__int.html">guac_pool_int</a>* __tail;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    pthread_mutex_t __lock;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="structguac__pool__int.html">   71</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__pool__int.html">guac_pool_int</a> {</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4">   76</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4">value</a>;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <a class="code" href="structguac__pool__int.html">guac_pool_int</a>* __next;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;};</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<a class="code" href="structguac__pool.html">guac_pool</a>* <a class="code" href="pool_8h.html#a3e7589997fdd734a6d6155badebd042f">guac_pool_alloc</a>(<span class="keywordtype">int</span> size);</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="keywordtype">void</span> <a class="code" href="pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb">guac_pool_free</a>(<a class="code" href="structguac__pool.html">guac_pool</a>* pool);</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="keywordtype">int</span> <a class="code" href="pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4">guac_pool_next_int</a>(<a class="code" href="structguac__pool.html">guac_pool</a>* pool);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="keywordtype">void</span> <a class="code" href="pool_8h.html#ad90069a41689cf319f46af44bb113579">guac_pool_free_int</a>(<a class="code" href="structguac__pool.html">guac_pool</a>* pool, <span class="keywordtype">int</span> value);</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="ttc" id="pool_8h_html_abe3c79e0fec121e3d1b1d3ce37aa45f4"><div class="ttname"><a href="pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4">guac_pool_next_int</a></div><div class="ttdeci">int guac_pool_next_int(guac_pool *pool)</div><div class="ttdoc">Returns the next available integer from the given guac_pool. </div></div>
+<div class="ttc" id="pool_8h_html_a3e7589997fdd734a6d6155badebd042f"><div class="ttname"><a href="pool_8h.html#a3e7589997fdd734a6d6155badebd042f">guac_pool_alloc</a></div><div class="ttdeci">guac_pool * guac_pool_alloc(int size)</div><div class="ttdoc">Allocates a new guac_pool having the given minimum size. </div></div>
+<div class="ttc" id="structguac__pool_html_a71ed274c2481dbcd5e06bf7d8d74d71e"><div class="ttname"><a href="structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e">guac_pool::min_size</a></div><div class="ttdeci">int min_size</div><div class="ttdoc">The minimum number of integers which must have been returned by guac_pool_next_int before previously-...</div><div class="ttdef"><b>Definition:</b> pool.h:41</div></div>
+<div class="ttc" id="structguac__pool__int_html"><div class="ttname"><a href="structguac__pool__int.html">guac_pool_int</a></div><div class="ttdoc">Represents a single integer within a larger pool of integers. </div><div class="ttdef"><b>Definition:</b> pool.h:71</div></div>
+<div class="ttc" id="pool_8h_html_a7015e5939617ab7e55477ba0a4f85bdb"><div class="ttname"><a href="pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb">guac_pool_free</a></div><div class="ttdeci">void guac_pool_free(guac_pool *pool)</div><div class="ttdoc">Frees the given guac_pool. </div></div>
+<div class="ttc" id="structguac__pool_html_ac22871d5c476ca9a6dd25a2446fa0fd3"><div class="ttname"><a href="structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3">guac_pool::active</a></div><div class="ttdeci">int active</div><div class="ttdoc">The number of integers currently in use. </div><div class="ttdef"><b>Definition:</b> pool.h:46</div></div>
+<div class="ttc" id="pool-types_8h_html"><div class="ttname"><a href="pool-types_8h.html">pool-types.h</a></div><div class="ttdoc">Type definitions related to the guac_pool pool of unique integers. </div></div>
+<div class="ttc" id="structguac__pool_html"><div class="ttname"><a href="structguac__pool.html">guac_pool</a></div><div class="ttdoc">A pool of integers. </div><div class="ttdef"><b>Definition:</b> pool.h:34</div></div>
+<div class="ttc" id="pool_8h_html_ad90069a41689cf319f46af44bb113579"><div class="ttname"><a href="pool_8h.html#ad90069a41689cf319f46af44bb113579">guac_pool_free_int</a></div><div class="ttdeci">void guac_pool_free_int(guac_pool *pool, int value)</div><div class="ttdoc">Frees the given integer back into the given guac_pool. </div></div>
+<div class="ttc" id="structguac__pool__int_html_af76ff5f21c6e0f69d95cdd1385ea24a4"><div class="ttname"><a href="structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4">guac_pool_int::value</a></div><div class="ttdeci">int value</div><div class="ttdoc">The integer value of this pool entry. </div><div class="ttdef"><b>Definition:</b> pool.h:76</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/protocol-constants_8h.html b/doc/1.1.0/libguac/protocol-constants_8h.html
new file mode 100644
index 0000000..ca7abb3
--- /dev/null
+++ b/doc/1.1.0/libguac/protocol-constants_8h.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/protocol-constants.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">protocol-constants.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Constants related to the Guacamole protocol.  
+<a href="#details">More...</a></p>
+
+<p><a href="protocol-constants_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ab1706e67b56808564438ef853a8d2821"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-constants_8h.html#ab1706e67b56808564438ef853a8d2821">GUACAMOLE_PROTOCOL_VERSION</a>&#160;&#160;&#160;&quot;VERSION_1_1_0&quot;</td></tr>
+<tr class="memdesc:ab1706e67b56808564438ef853a8d2821"><td class="mdescLeft">&#160;</td><td class="mdescRight">This defines the overall protocol version that this build of libguac supports.  <a href="#ab1706e67b56808564438ef853a8d2821">More...</a><br /></td></tr>
+<tr class="separator:ab1706e67b56808564438ef853a8d2821"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5dd5c766aeebead268d0daa6c8c2166"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166">GUAC_PROTOCOL_BLOB_MAX_LENGTH</a>&#160;&#160;&#160;6048</td></tr>
+<tr class="memdesc:af5dd5c766aeebead268d0daa6c8c2166"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of bytes that should be sent in any one blob instruction to ensure the instruction does not exceed the maximum allowed instruction size.  <a href="#af5dd5c766aeebead268d0daa6c8c2166">More...</a><br /></td></tr>
+<tr class="separator:af5dd5c766aeebead268d0daa6c8c2166"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Constants related to the Guacamole protocol. </p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="af5dd5c766aeebead268d0daa6c8c2166"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af5dd5c766aeebead268d0daa6c8c2166">&#9670;&nbsp;</a></span>GUAC_PROTOCOL_BLOB_MAX_LENGTH</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_PROTOCOL_BLOB_MAX_LENGTH&#160;&#160;&#160;6048</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The maximum number of bytes that should be sent in any one blob instruction to ensure the instruction does not exceed the maximum allowed instruction size. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744" title="The maximum number of characters per instruction. ">GUAC_INSTRUCTION_MAX_LENGTH</a> </dd></dl>
+
+</div>
+</div>
+<a id="ab1706e67b56808564438ef853a8d2821"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab1706e67b56808564438ef853a8d2821">&#9670;&nbsp;</a></span>GUACAMOLE_PROTOCOL_VERSION</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUACAMOLE_PROTOCOL_VERSION&#160;&#160;&#160;&quot;VERSION_1_1_0&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>This defines the overall protocol version that this build of libguac supports. </p>
+<p>The protocol version is used to provide compatibility between potentially different versions of Guacamole server and clients. The version number is a MAJOR_MINOR_PATCH version that matches the versioning used throughout the components of the Guacamole project. This version will not necessarily increment with the other components, unless additional functionality is introduced that affects compatibility.</p>
+<p>This version is passed by the __guac_protocol_send_args() function from the server to the client during the client/server handshake. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/protocol-constants_8h_source.html b/doc/1.1.0/libguac/protocol-constants_8h_source.html
new file mode 100644
index 0000000..1d6d3b2
--- /dev/null
+++ b/doc/1.1.0/libguac/protocol-constants_8h_source.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/protocol-constants.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">protocol-constants.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="protocol-constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_PROTOCOL_CONSTANTS_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_PROTOCOL_CONSTANTS_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="protocol-constants_8h.html#ab1706e67b56808564438ef853a8d2821">   41</a></span>&#160;<span class="preprocessor">#define GUACAMOLE_PROTOCOL_VERSION &quot;VERSION_1_1_0&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166">   50</a></span>&#160;<span class="preprocessor">#define GUAC_PROTOCOL_BLOB_MAX_LENGTH 6048</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/protocol-types_8h.html b/doc/1.1.0/libguac/protocol-types_8h.html
new file mode 100644
index 0000000..b91f9cd
--- /dev/null
+++ b/doc/1.1.0/libguac/protocol-types_8h.html
@@ -0,0 +1,285 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/protocol-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<div class="title">protocol-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to the Guacamole protocol.  
+<a href="#details">More...</a></p>
+
+<p><a href="protocol-types_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:af946f7f843fa5935dbeeb08f85dec9e2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> { <br />
+&#160;&#160;<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac">GUAC_PROTOCOL_STATUS_SUCCESS</a> = 0x0000, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75">GUAC_PROTOCOL_STATUS_UNSUPPORTED</a> = 0x0100, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff">GUAC_PROTOCOL_STATUS_SERVER_ERROR</a> = 0x0200, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6">GUAC_PROTOCOL_STATUS_SERVER_BUSY</a> = 0x0201, 
+<br />
+&#160;&#160;<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f">GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT</a> = 0x0202, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78">GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR</a> = 0x0203, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22">GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND</a> = 0x0204, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9">GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT</a> = 0x0205, 
+<br />
+&#160;&#160;<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da">GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED</a> = 0x0206, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e">GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND</a> = 0x0207, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814">GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE</a> = 0x0208, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7">GUAC_PROTOCOL_STATUS_SESSION_CONFLICT</a> = 0x0209, 
+<br />
+&#160;&#160;<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23">GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT</a> = 0x020A, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab">GUAC_PROTOCOL_STATUS_SESSION_CLOSED</a> = 0x020B, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7">GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST</a> = 0x300, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca">GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED</a> = 0x0301, 
+<br />
+&#160;&#160;<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5">GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN</a> = 0x0303, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff">GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT</a> = 0x308, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13">GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN</a> = 0x30D, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a">GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE</a> = 0x30F, 
+<br />
+&#160;&#160;<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc">GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY</a> = 0x31D
+<br />
+ }</td></tr>
+<tr class="memdesc:af946f7f843fa5935dbeeb08f85dec9e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set of all possible status codes returned by protocol operations.  <a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">More...</a><br /></td></tr>
+<tr class="separator:af946f7f843fa5935dbeeb08f85dec9e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93612063886db58071d02b5393abf186"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> { <br />
+&#160;&#160;<b>GUAC_COMP_ROUT</b> = 0x2, 
+<b>GUAC_COMP_ATOP</b> = 0x6, 
+<b>GUAC_COMP_XOR</b> = 0xA, 
+<b>GUAC_COMP_ROVER</b> = 0xB, 
+<br />
+&#160;&#160;<b>GUAC_COMP_OVER</b> = 0xE, 
+<b>GUAC_COMP_PLUS</b> = 0xF, 
+<b>GUAC_COMP_RIN</b> = 0x1, 
+<b>GUAC_COMP_IN</b> = 0x4, 
+<br />
+&#160;&#160;<b>GUAC_COMP_OUT</b> = 0x8, 
+<b>GUAC_COMP_RATOP</b> = 0x9, 
+<b>GUAC_COMP_SRC</b> = 0xC
+<br />
+ }</td></tr>
+<tr class="memdesc:a93612063886db58071d02b5393abf186"><td class="mdescLeft">&#160;</td><td class="mdescRight">Composite modes used by Guacamole draw instructions.  <a href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">More...</a><br /></td></tr>
+<tr class="separator:a93612063886db58071d02b5393abf186"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c85e3f22f5dea8b2f38de6b4f75b1ff"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a> { <br />
+&#160;&#160;<b>GUAC_TRANSFER_BINARY_BLACK</b> = 0x0, 
+<b>GUAC_TRANSFER_BINARY_WHITE</b> = 0xF, 
+<b>GUAC_TRANSFER_BINARY_SRC</b> = 0x3, 
+<b>GUAC_TRANSFER_BINARY_DEST</b> = 0x5, 
+<br />
+&#160;&#160;<b>GUAC_TRANSFER_BINARY_NSRC</b> = 0xC, 
+<b>GUAC_TRANSFER_BINARY_NDEST</b> = 0xA, 
+<b>GUAC_TRANSFER_BINARY_AND</b> = 0x1, 
+<b>GUAC_TRANSFER_BINARY_NAND</b> = 0xE, 
+<br />
+&#160;&#160;<b>GUAC_TRANSFER_BINARY_OR</b> = 0x7, 
+<b>GUAC_TRANSFER_BINARY_NOR</b> = 0x8, 
+<b>GUAC_TRANSFER_BINARY_XOR</b> = 0x6, 
+<b>GUAC_TRANSFER_BINARY_XNOR</b> = 0x9, 
+<br />
+&#160;&#160;<b>GUAC_TRANSFER_BINARY_NSRC_AND</b> = 0x4, 
+<b>GUAC_TRANSFER_BINARY_NSRC_NAND</b> = 0xB, 
+<b>GUAC_TRANSFER_BINARY_NSRC_OR</b> = 0xD, 
+<b>GUAC_TRANSFER_BINARY_NSRC_NOR</b> = 0x2, 
+<br />
+&#160;&#160;<b>GUAC_TRANSFER_BINARY_NDEST_AND</b> = 0x2, 
+<b>GUAC_TRANSFER_BINARY_NDEST_NAND</b> = 0xD, 
+<b>GUAC_TRANSFER_BINARY_NDEST_OR</b> = 0xB, 
+<b>GUAC_TRANSFER_BINARY_NDEST_NOR</b> = 0x4
+<br />
+ }</td></tr>
+<tr class="memdesc:a9c85e3f22f5dea8b2f38de6b4f75b1ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default transfer functions.  <a href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">More...</a><br /></td></tr>
+<tr class="separator:a9c85e3f22f5dea8b2f38de6b4f75b1ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4a0205f8ee2e29e1a4d78da74ab58efc"><td class="memItemLeft" align="right" valign="top"><a id="a4a0205f8ee2e29e1a4d78da74ab58efc"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a> { <b>GUAC_LINE_CAP_BUTT</b> = 0x0, 
+<b>GUAC_LINE_CAP_ROUND</b> = 0x1, 
+<b>GUAC_LINE_CAP_SQUARE</b> = 0x2
+ }</td></tr>
+<tr class="memdesc:a4a0205f8ee2e29e1a4d78da74ab58efc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported line cap styles. <br /></td></tr>
+<tr class="separator:a4a0205f8ee2e29e1a4d78da74ab58efc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6333200b3ff1634e0cb1826b271438b1"><td class="memItemLeft" align="right" valign="top"><a id="a6333200b3ff1634e0cb1826b271438b1"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a> { <b>GUAC_LINE_JOIN_BEVEL</b> = 0x0, 
+<b>GUAC_LINE_JOIN_MITER</b> = 0x1, 
+<b>GUAC_LINE_JOIN_ROUND</b> = 0x2
+ }</td></tr>
+<tr class="memdesc:a6333200b3ff1634e0cb1826b271438b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported line join styles. <br /></td></tr>
+<tr class="separator:a6333200b3ff1634e0cb1826b271438b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to the Guacamole protocol. </p>
+</div><h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="a93612063886db58071d02b5393abf186"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a93612063886db58071d02b5393abf186">&#9670;&nbsp;</a></span>guac_composite_mode</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Composite modes used by Guacamole draw instructions. </p>
+<p>Each composite mode maps to a unique channel mask integer. </p>
+
+</div>
+</div>
+<a id="af946f7f843fa5935dbeeb08f85dec9e2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af946f7f843fa5935dbeeb08f85dec9e2">&#9670;&nbsp;</a></span>guac_protocol_status</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set of all possible status codes returned by protocol operations. </p>
+<p>These codes relate to Guacamole server/client communication, and not to internal communication of errors within libguac and linked software.</p>
+<p>In general: </p><pre class="fragment">0x0000 - 0x00FF: Successful operations.
+0x0100 - 0x01FF: Operations that failed due to implementation status.
+0x0200 - 0x02FF: Operations that failed due to remote state/environment.
+0x0300 - 0x03FF: Operations that failed due to user/client action.
+</pre><p>There is a general correspondence of these status codes with HTTP response codes. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac"></a>GUAC_PROTOCOL_STATUS_SUCCESS&#160;</td><td class="fielddoc"><p>The operation succeeded. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75"></a>GUAC_PROTOCOL_STATUS_UNSUPPORTED&#160;</td><td class="fielddoc"><p>The requested operation is unsupported. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff"></a>GUAC_PROTOCOL_STATUS_SERVER_ERROR&#160;</td><td class="fielddoc"><p>The operation could not be performed due to an internal failure. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6"></a>GUAC_PROTOCOL_STATUS_SERVER_BUSY&#160;</td><td class="fielddoc"><p>The operation could not be performed due as the server is busy. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f"></a>GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT&#160;</td><td class="fielddoc"><p>The operation could not be performed because the upstream server is not responding. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78"></a>GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR&#160;</td><td class="fielddoc"><p>The operation was unsuccessful due to an error or otherwise unexpected condition of the upstream server. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22"></a>GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND&#160;</td><td class="fielddoc"><p>The operation could not be performed as the requested resource does not exist. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9"></a>GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT&#160;</td><td class="fielddoc"><p>The operation could not be performed as the requested resource is already in use. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da"></a>GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED&#160;</td><td class="fielddoc"><p>The operation could not be performed as the requested resource is now closed. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e"></a>GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND&#160;</td><td class="fielddoc"><p>The operation could not be performed because the upstream server does not appear to exist. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814"></a>GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE&#160;</td><td class="fielddoc"><p>The operation could not be performed because the upstream server is not available to service the request. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7"></a>GUAC_PROTOCOL_STATUS_SESSION_CONFLICT&#160;</td><td class="fielddoc"><p>The session within the upstream server has ended because it conflicted with another session. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23"></a>GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT&#160;</td><td class="fielddoc"><p>The session within the upstream server has ended because it appeared to be inactive. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab"></a>GUAC_PROTOCOL_STATUS_SESSION_CLOSED&#160;</td><td class="fielddoc"><p>The session within the upstream server has been forcibly terminated. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7"></a>GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST&#160;</td><td class="fielddoc"><p>The operation could not be performed because bad parameters were given. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca"></a>GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED&#160;</td><td class="fielddoc"><p>Permission was denied to perform the operation, as the user is not yet authorized (not yet logged in, for example). </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5"></a>GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN&#160;</td><td class="fielddoc"><p>Permission was denied to perform the operation, and this permission will not be granted even if the user is authorized. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff"></a>GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT&#160;</td><td class="fielddoc"><p>The client took too long to respond. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13"></a>GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN&#160;</td><td class="fielddoc"><p>The client sent too much data. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a"></a>GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE&#160;</td><td class="fielddoc"><p>The client sent data of an unsupported or unexpected type. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc"></a>GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY&#160;</td><td class="fielddoc"><p>The operation failed because the current client is already using too many resources. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a id="a9c85e3f22f5dea8b2f38de6b4f75b1ff"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9c85e3f22f5dea8b2f38de6b4f75b1ff">&#9670;&nbsp;</a></span>guac_transfer_function</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Default transfer functions. </p>
+<p>There is no current facility in the Guacamole protocol to define custom transfer functions. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/protocol-types_8h_source.html b/doc/1.1.0/libguac/protocol-types_8h_source.html
new file mode 100644
index 0000000..cb58049
--- /dev/null
+++ b/doc/1.1.0/libguac/protocol-types_8h_source.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/protocol-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">protocol-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="protocol-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_PROTOCOL_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_PROTOCOL_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">   44</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> {</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac">   49</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac">GUAC_PROTOCOL_STATUS_SUCCESS</a> = 0x0000,</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75">   54</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75">GUAC_PROTOCOL_STATUS_UNSUPPORTED</a> = 0x0100,</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff">   59</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff">GUAC_PROTOCOL_STATUS_SERVER_ERROR</a> = 0x0200,</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6">   64</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6">GUAC_PROTOCOL_STATUS_SERVER_BUSY</a> = 0x0201,</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f">   70</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f">GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT</a> = 0x0202,</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78">   76</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78">GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR</a> = 0x0203,</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22">   82</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22">GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND</a> = 0x0204,</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9">   88</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9">GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT</a> = 0x0205,</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da">   94</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da">GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED</a> = 0x0206,</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e">  100</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e">GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND</a> = 0x0207,</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814">  106</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814">GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE</a> = 0x0208,</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7">  112</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7">GUAC_PROTOCOL_STATUS_SESSION_CONFLICT</a> = 0x0209,</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23">  118</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23">GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT</a> = 0x020A,</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab">  123</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab">GUAC_PROTOCOL_STATUS_SESSION_CLOSED</a> = 0x020B,</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7">  129</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7">GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST</a> = 0x300,</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca">  135</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca">GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED</a> = 0x0301,</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5">  141</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5">GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN</a> = 0x0303,</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff">  146</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff">GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT</a> = 0x308,</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13">  151</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13">GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN</a> = 0x30D,</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a">  156</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a">GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE</a> = 0x30F,</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc">  162</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc">GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY</a> = 0x31D</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;} <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">  170</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> {</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    <span class="comment">/*</span></div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="comment">     * A: Source where destination transparent = S n D&#39;</span></div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="comment">     * B: Source where destination opaque      = S n D</span></div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="comment">     * C: Destination where source transparent = D n S&#39;</span></div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="comment">     * D: Destination where source opaque      = D n S</span></div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="comment">     *</span></div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="comment">     * 0 = Active, 1 = Inactive</span></div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="comment">     */</span></div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                           <span class="comment">/* ABCD */</span></div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    GUAC_COMP_ROUT  = 0x2, <span class="comment">/* 0010 - Clears destination where source opaque  */</span></div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    GUAC_COMP_ATOP  = 0x6, <span class="comment">/* 0110 - Fill where destination opaque only      */</span></div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    GUAC_COMP_XOR   = 0xA, <span class="comment">/* 1010 - XOR                                     */</span></div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    GUAC_COMP_ROVER = 0xB, <span class="comment">/* 1011 - Fill where destination transparent only */</span></div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    GUAC_COMP_OVER  = 0xE, <span class="comment">/* 1110 - Draw normally                           */</span></div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    GUAC_COMP_PLUS  = 0xF, <span class="comment">/* 1111 - Add                                     */</span></div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    <span class="comment">/* Unimplemented in client: */</span></div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    <span class="comment">/* NOT IMPLEMENTED:       0000 - Clear          */</span></div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    <span class="comment">/* NOT IMPLEMENTED:       0011 - No operation   */</span></div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <span class="comment">/* NOT IMPLEMENTED:       0101 - Additive IN    */</span></div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <span class="comment">/* NOT IMPLEMENTED:       0111 - Additive ATOP  */</span></div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    <span class="comment">/* NOT IMPLEMENTED:       1101 - Additive RATOP */</span></div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="comment">/* Buggy in webkit browsers, as they keep channel C on in all cases: */</span></div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    GUAC_COMP_RIN   = 0x1, <span class="comment">/* 0001 */</span></div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    GUAC_COMP_IN    = 0x4, <span class="comment">/* 0100 */</span></div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    GUAC_COMP_OUT   = 0x8, <span class="comment">/* 1000 */</span></div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    GUAC_COMP_RATOP = 0x9, <span class="comment">/* 1001 */</span></div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    GUAC_COMP_SRC   = 0xC  <span class="comment">/* 1100 */</span></div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <span class="comment">/* Bitwise composite operations (binary) */</span></div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    <span class="comment">/*</span></div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="comment">     * A: S&#39; &amp; D&#39;</span></div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="comment">     * B: S&#39; &amp; D</span></div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="comment">     * C: S  &amp; D&#39;</span></div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<span class="comment">     * D: S  &amp; D</span></div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="comment">     *</span></div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="comment">     * 0 = Active, 1 = Inactive</span></div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="comment">     */</span></div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;} <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>;</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">  219</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a> {</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    <span class="comment">/* Constant functions */</span>               <span class="comment">/* ABCD */</span></div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    GUAC_TRANSFER_BINARY_BLACK      = 0x0, <span class="comment">/* 0000 */</span></div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    GUAC_TRANSFER_BINARY_WHITE      = 0xF, <span class="comment">/* 1111 */</span></div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    <span class="comment">/* Copy functions */</span></div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    GUAC_TRANSFER_BINARY_SRC        = 0x3, <span class="comment">/* 0011 */</span></div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    GUAC_TRANSFER_BINARY_DEST       = 0x5, <span class="comment">/* 0101 */</span></div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    GUAC_TRANSFER_BINARY_NSRC       = 0xC, <span class="comment">/* 1100 */</span></div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    GUAC_TRANSFER_BINARY_NDEST      = 0xA, <span class="comment">/* 1010 */</span></div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    <span class="comment">/* AND / NAND */</span></div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    GUAC_TRANSFER_BINARY_AND        = 0x1, <span class="comment">/* 0001 */</span></div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    GUAC_TRANSFER_BINARY_NAND       = 0xE, <span class="comment">/* 1110 */</span></div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    <span class="comment">/* OR / NOR */</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    GUAC_TRANSFER_BINARY_OR         = 0x7, <span class="comment">/* 0111 */</span></div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    GUAC_TRANSFER_BINARY_NOR        = 0x8, <span class="comment">/* 1000 */</span></div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    <span class="comment">/* XOR / XNOR */</span></div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    GUAC_TRANSFER_BINARY_XOR        = 0x6, <span class="comment">/* 0110 */</span></div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    GUAC_TRANSFER_BINARY_XNOR       = 0x9, <span class="comment">/* 1001 */</span></div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    <span class="comment">/* AND / NAND with inverted source */</span></div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    GUAC_TRANSFER_BINARY_NSRC_AND   = 0x4, <span class="comment">/* 0100 */</span></div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    GUAC_TRANSFER_BINARY_NSRC_NAND  = 0xB, <span class="comment">/* 1011 */</span></div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    <span class="comment">/* OR / NOR with inverted source */</span></div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    GUAC_TRANSFER_BINARY_NSRC_OR    = 0xD, <span class="comment">/* 1101 */</span></div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    GUAC_TRANSFER_BINARY_NSRC_NOR   = 0x2, <span class="comment">/* 0010 */</span></div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    <span class="comment">/* AND / NAND with inverted destination */</span></div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    GUAC_TRANSFER_BINARY_NDEST_AND  = 0x2, <span class="comment">/* 0010 */</span></div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    GUAC_TRANSFER_BINARY_NDEST_NAND = 0xD, <span class="comment">/* 1101 */</span></div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    <span class="comment">/* OR / NOR with inverted destination */</span></div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    GUAC_TRANSFER_BINARY_NDEST_OR   = 0xB, <span class="comment">/* 1011 */</span></div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    GUAC_TRANSFER_BINARY_NDEST_NOR  = 0x4  <span class="comment">/* 0100 */</span></div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;} <a class="code" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a>;</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">  264</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a> {</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    GUAC_LINE_CAP_BUTT   = 0x0,</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    GUAC_LINE_CAP_ROUND  = 0x1,</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    GUAC_LINE_CAP_SQUARE = 0x2</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;} <a class="code" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a>;</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">  273</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a> {</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    GUAC_LINE_JOIN_BEVEL = 0x0,</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    GUAC_LINE_JOIN_MITER = 0x1,</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    GUAC_LINE_JOIN_ROUND = 0x2</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;} <a class="code" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a>;</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;</div><div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6">GUAC_PROTOCOL_STATUS_SERVER_BUSY</a></div><div class="ttdoc">The operation could not be performed due as the server is busy. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:64</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5">GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN</a></div><div class="ttdoc">Permission was denied to perform the operation, and this permission will not be granted even if the u...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:141</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7">GUAC_PROTOCOL_STATUS_SESSION_CONFLICT</a></div><div class="ttdoc">The session within the upstream server has ended because it conflicted with another session...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:112</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca">GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED</a></div><div class="ttdoc">Permission was denied to perform the operation, as the user is not yet authorized (not yet logged in...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:135</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7">GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST</a></div><div class="ttdoc">The operation could not be performed because bad parameters were given. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:129</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc">GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY</a></div><div class="ttdoc">The operation failed because the current client is already using too many resources. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:162</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23">GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT</a></div><div class="ttdoc">The session within the upstream server has ended because it appeared to be inactive. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:118</div></div>
+<div class="ttc" id="protocol-types_8h_html_a6333200b3ff1634e0cb1826b271438b1"><div class="ttname"><a href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a></div><div class="ttdeci">guac_line_join_style</div><div class="ttdoc">Supported line join styles. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:273</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab">GUAC_PROTOCOL_STATUS_SESSION_CLOSED</a></div><div class="ttdoc">The session within the upstream server has been forcibly terminated. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:123</div></div>
+<div class="ttc" id="protocol-types_8h_html_a9c85e3f22f5dea8b2f38de6b4f75b1ff"><div class="ttname"><a href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a></div><div class="ttdeci">guac_transfer_function</div><div class="ttdoc">Default transfer functions. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:219</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75">GUAC_PROTOCOL_STATUS_UNSUPPORTED</a></div><div class="ttdoc">The requested operation is unsupported. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:54</div></div>
+<div class="ttc" id="protocol-types_8h_html_a4a0205f8ee2e29e1a4d78da74ab58efc"><div class="ttname"><a href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a></div><div class="ttdeci">guac_line_cap_style</div><div class="ttdoc">Supported line cap styles. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:264</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13">GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN</a></div><div class="ttdoc">The client sent too much data. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:151</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814">GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE</a></div><div class="ttdoc">The operation could not be performed because the upstream server is not available to service the requ...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:106</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff">GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT</a></div><div class="ttdoc">The client took too long to respond. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:146</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78">GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR</a></div><div class="ttdoc">The operation was unsuccessful due to an error or otherwise unexpected condition of the upstream serv...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:76</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a">GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE</a></div><div class="ttdoc">The client sent data of an unsupported or unexpected type. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:156</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22">GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND</a></div><div class="ttdoc">The operation could not be performed as the requested resource does not exist. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:82</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f">GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT</a></div><div class="ttdoc">The operation could not be performed because the upstream server is not responding. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:70</div></div>
+<div class="ttc" id="protocol-types_8h_html_a93612063886db58071d02b5393abf186"><div class="ttname"><a href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a></div><div class="ttdeci">guac_composite_mode</div><div class="ttdoc">Composite modes used by Guacamole draw instructions. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:170</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da">GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED</a></div><div class="ttdoc">The operation could not be performed as the requested resource is now closed. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:94</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a></div><div class="ttdeci">guac_protocol_status</div><div class="ttdoc">Set of all possible status codes returned by protocol operations. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:44</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e">GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND</a></div><div class="ttdoc">The operation could not be performed because the upstream server does not appear to exist...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:100</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff">GUAC_PROTOCOL_STATUS_SERVER_ERROR</a></div><div class="ttdoc">The operation could not be performed due to an internal failure. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:59</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9">GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT</a></div><div class="ttdoc">The operation could not be performed as the requested resource is already in use. ...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:88</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac">GUAC_PROTOCOL_STATUS_SUCCESS</a></div><div class="ttdoc">The operation succeeded. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:49</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/protocol_8h.html b/doc/1.1.0/libguac/protocol_8h.html
new file mode 100644
index 0000000..5f2261f
--- /dev/null
+++ b/doc/1.1.0/libguac/protocol_8h.html
@@ -0,0 +1,3168 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/protocol.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">protocol.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures required for communicating using the Guacamole protocol over a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection, such as that provided by <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> objects.  
+<a href="#details">More...</a></p>
+
+<p><a href="protocol_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ab02be6102d9f4aaa2bbb0b249f09d63e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e">guac_protocol_send_ack</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *error, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status)</td></tr>
+<tr class="memdesc:ab02be6102d9f4aaa2bbb0b249f09d63e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an ack instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#ab02be6102d9f4aaa2bbb0b249f09d63e">More...</a><br /></td></tr>
+<tr class="separator:ab02be6102d9f4aaa2bbb0b249f09d63e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6047d380b097ebc7d5f35b167e3419e6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6">guac_protocol_send_args</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char **args)</td></tr>
+<tr class="memdesc:a6047d380b097ebc7d5f35b167e3419e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an args instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a6047d380b097ebc7d5f35b167e3419e6">More...</a><br /></td></tr>
+<tr class="separator:a6047d380b097ebc7d5f35b167e3419e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac8dea4393e2ec69d5d27fd0759a70fcb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb">guac_protocol_send_connect</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char **args)</td></tr>
+<tr class="memdesc:ac8dea4393e2ec69d5d27fd0759a70fcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a connect instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#ac8dea4393e2ec69d5d27fd0759a70fcb">More...</a><br /></td></tr>
+<tr class="separator:ac8dea4393e2ec69d5d27fd0759a70fcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd463766036afda4798edbe788d29524"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#afd463766036afda4798edbe788d29524">guac_protocol_send_disconnect</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:afd463766036afda4798edbe788d29524"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a disconnect instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#afd463766036afda4798edbe788d29524">More...</a><br /></td></tr>
+<tr class="separator:afd463766036afda4798edbe788d29524"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe696ca7c9841883c5d5bea513d4ee9a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a">guac_protocol_send_error</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *error, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status)</td></tr>
+<tr class="memdesc:abe696ca7c9841883c5d5bea513d4ee9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an error instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#abe696ca7c9841883c5d5bea513d4ee9a">More...</a><br /></td></tr>
+<tr class="separator:abe696ca7c9841883c5d5bea513d4ee9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2d276595cea8a2d382240d868487f077"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a2d276595cea8a2d382240d868487f077">guac_protocol_send_key</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int keysym, int pressed, <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp)</td></tr>
+<tr class="memdesc:a2d276595cea8a2d382240d868487f077"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a key instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a2d276595cea8a2d382240d868487f077">More...</a><br /></td></tr>
+<tr class="separator:a2d276595cea8a2d382240d868487f077"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6f832f5b814129d2819f115d84da3cd0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0">guac_protocol_send_log</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *format,...)</td></tr>
+<tr class="memdesc:a6f832f5b814129d2819f115d84da3cd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a log instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a6f832f5b814129d2819f115d84da3cd0">More...</a><br /></td></tr>
+<tr class="separator:a6f832f5b814129d2819f115d84da3cd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3a783d771e1727ba2a82b2298acf4ee4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4">vguac_protocol_send_log</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *format, va_list args)</td></tr>
+<tr class="memdesc:a3a783d771e1727ba2a82b2298acf4ee4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a log instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a3a783d771e1727ba2a82b2298acf4ee4">More...</a><br /></td></tr>
+<tr class="separator:a3a783d771e1727ba2a82b2298acf4ee4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8947056262da2f3263b9851370597622"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a8947056262da2f3263b9851370597622">guac_protocol_send_mouse</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int x, int y, int button_mask, <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp)</td></tr>
+<tr class="memdesc:a8947056262da2f3263b9851370597622"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a mouse instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a8947056262da2f3263b9851370597622">More...</a><br /></td></tr>
+<tr class="separator:a8947056262da2f3263b9851370597622"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a94efa63c9895383e142a3f7ce559300b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a94efa63c9895383e142a3f7ce559300b">guac_protocol_send_nest</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int index, const char *data)</td></tr>
+<tr class="memdesc:a94efa63c9895383e142a3f7ce559300b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a nest instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a94efa63c9895383e142a3f7ce559300b">More...</a><br /></td></tr>
+<tr class="separator:a94efa63c9895383e142a3f7ce559300b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8fa17d3aa1270b806ac6a386798c6d41"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41">guac_protocol_send_nop</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a8fa17d3aa1270b806ac6a386798c6d41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a nop instruction (null-operation) over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a8fa17d3aa1270b806ac6a386798c6d41">More...</a><br /></td></tr>
+<tr class="separator:a8fa17d3aa1270b806ac6a386798c6d41"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a102b7719fbd9c8ea0eb2dc4f51e26359"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359">guac_protocol_send_ready</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *id)</td></tr>
+<tr class="memdesc:a102b7719fbd9c8ea0eb2dc4f51e26359"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a ready instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a102b7719fbd9c8ea0eb2dc4f51e26359">More...</a><br /></td></tr>
+<tr class="separator:a102b7719fbd9c8ea0eb2dc4f51e26359"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3750a6c0fbf190fb71a6ab0955cb31a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a">guac_protocol_send_set</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, const char *name, const char *value)</td></tr>
+<tr class="memdesc:aa3750a6c0fbf190fb71a6ab0955cb31a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a set instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#aa3750a6c0fbf190fb71a6ab0955cb31a">More...</a><br /></td></tr>
+<tr class="separator:aa3750a6c0fbf190fb71a6ab0955cb31a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8757c7870e648b220dbc76b8292fe5cf"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf">guac_protocol_send_select</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *protocol)</td></tr>
+<tr class="memdesc:a8757c7870e648b220dbc76b8292fe5cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a select instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a8757c7870e648b220dbc76b8292fe5cf">More...</a><br /></td></tr>
+<tr class="separator:a8757c7870e648b220dbc76b8292fe5cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa11f8798abca85fd2b47b5f9a027fa73"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73">guac_protocol_send_sync</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp)</td></tr>
+<tr class="memdesc:aa11f8798abca85fd2b47b5f9a027fa73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a sync instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#aa11f8798abca85fd2b47b5f9a027fa73">More...</a><br /></td></tr>
+<tr class="separator:aa11f8798abca85fd2b47b5f9a027fa73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca9fb516e730233c33da297819f7ae7e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aca9fb516e730233c33da297819f7ae7e">guac_protocol_send_body</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__object.html">guac_object</a> *object, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *mimetype, const char *name)</td></tr>
+<tr class="memdesc:aca9fb516e730233c33da297819f7ae7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a body instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#aca9fb516e730233c33da297819f7ae7e">More...</a><br /></td></tr>
+<tr class="separator:aca9fb516e730233c33da297819f7ae7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3779c2287625af70fb001afbcc739da5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a3779c2287625af70fb001afbcc739da5">guac_protocol_send_filesystem</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__object.html">guac_object</a> *object, const char *name)</td></tr>
+<tr class="memdesc:a3779c2287625af70fb001afbcc739da5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a filesystem instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a3779c2287625af70fb001afbcc739da5">More...</a><br /></td></tr>
+<tr class="separator:a3779c2287625af70fb001afbcc739da5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aefa251505e61332e8e1c27ade0478e64"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aefa251505e61332e8e1c27ade0478e64">guac_protocol_send_undefine</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__object.html">guac_object</a> *object)</td></tr>
+<tr class="memdesc:aefa251505e61332e8e1c27ade0478e64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an undefine instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#aefa251505e61332e8e1c27ade0478e64">More...</a><br /></td></tr>
+<tr class="separator:aefa251505e61332e8e1c27ade0478e64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab92edb38a4df2db402a013422cee6b42"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ab92edb38a4df2db402a013422cee6b42">guac_protocol_send_audio</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *mimetype)</td></tr>
+<tr class="memdesc:ab92edb38a4df2db402a013422cee6b42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an audio instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#ab92edb38a4df2db402a013422cee6b42">More...</a><br /></td></tr>
+<tr class="separator:ab92edb38a4df2db402a013422cee6b42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a453e1b22d63a9d07ba23b3a6726c2f06"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06">guac_protocol_send_file</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *mimetype, const char *name)</td></tr>
+<tr class="memdesc:a453e1b22d63a9d07ba23b3a6726c2f06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a file instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a453e1b22d63a9d07ba23b3a6726c2f06">More...</a><br /></td></tr>
+<tr class="separator:a453e1b22d63a9d07ba23b3a6726c2f06"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a18b2c462077b7c51d211f3db09c30292"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a18b2c462077b7c51d211f3db09c30292">guac_protocol_send_pipe</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *mimetype, const char *name)</td></tr>
+<tr class="memdesc:a18b2c462077b7c51d211f3db09c30292"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a pipe instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a18b2c462077b7c51d211f3db09c30292">More...</a><br /></td></tr>
+<tr class="separator:a18b2c462077b7c51d211f3db09c30292"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a798d57ec3f3cdfa0d9bb4906f02d5127"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127">guac_protocol_send_blob</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const void *data, int count)</td></tr>
+<tr class="memdesc:a798d57ec3f3cdfa0d9bb4906f02d5127"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a block of data to the currently in-progress blob which was already created.  <a href="#a798d57ec3f3cdfa0d9bb4906f02d5127">More...</a><br /></td></tr>
+<tr class="separator:a798d57ec3f3cdfa0d9bb4906f02d5127"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4b3d3b5741b377a197c02384e4b870e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e">guac_protocol_send_blobs</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const void *data, int count)</td></tr>
+<tr class="memdesc:ad4b3d3b5741b377a197c02384e4b870e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a series of blob instructions, splitting the given data across the number of instructions required to ensure the size of each blob does not exceed GUAC_PROTOCOL_BLOB_MAX_LENGTH.  <a href="#ad4b3d3b5741b377a197c02384e4b870e">More...</a><br /></td></tr>
+<tr class="separator:ad4b3d3b5741b377a197c02384e4b870e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae1bb569878a14efecccc0c05757d1cae"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae">guac_protocol_send_end</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream)</td></tr>
+<tr class="memdesc:ae1bb569878a14efecccc0c05757d1cae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an end instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#ae1bb569878a14efecccc0c05757d1cae">More...</a><br /></td></tr>
+<tr class="separator:ae1bb569878a14efecccc0c05757d1cae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a657216f2e63d2d42e8624f96def84bf8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8">guac_protocol_send_video</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, const char *mimetype)</td></tr>
+<tr class="memdesc:a657216f2e63d2d42e8624f96def84bf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a video instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a657216f2e63d2d42e8624f96def84bf8">More...</a><br /></td></tr>
+<tr class="separator:a657216f2e63d2d42e8624f96def84bf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad74bc43b5f03b79027bf02d873cd77b3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3">guac_protocol_send_arc</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, int radius, double startAngle, double endAngle, int negative)</td></tr>
+<tr class="memdesc:ad74bc43b5f03b79027bf02d873cd77b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an arc instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#ad74bc43b5f03b79027bf02d873cd77b3">More...</a><br /></td></tr>
+<tr class="separator:ad74bc43b5f03b79027bf02d873cd77b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afda3a1a8285e323fca6aef50cb2feb5e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e">guac_protocol_send_cfill</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int r, int g, int b, int a)</td></tr>
+<tr class="memdesc:afda3a1a8285e323fca6aef50cb2feb5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a cfill instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#afda3a1a8285e323fca6aef50cb2feb5e">More...</a><br /></td></tr>
+<tr class="separator:afda3a1a8285e323fca6aef50cb2feb5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acbd1869635b752bbf52998613804df00"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#acbd1869635b752bbf52998613804df00">guac_protocol_send_clip</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:acbd1869635b752bbf52998613804df00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a clip instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#acbd1869635b752bbf52998613804df00">More...</a><br /></td></tr>
+<tr class="separator:acbd1869635b752bbf52998613804df00"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45a3e4e32900594e17c49db6939fc10a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a">guac_protocol_send_close</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:a45a3e4e32900594e17c49db6939fc10a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a close instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a45a3e4e32900594e17c49db6939fc10a">More...</a><br /></td></tr>
+<tr class="separator:a45a3e4e32900594e17c49db6939fc10a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad035df3781dc19ba2330b02ef1dd6eda"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda">guac_protocol_send_copy</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *srcl, int srcx, int srcy, int w, int h, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *dstl, int dstx, int dsty)</td></tr>
+<tr class="memdesc:ad035df3781dc19ba2330b02ef1dd6eda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a copy instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#ad035df3781dc19ba2330b02ef1dd6eda">More...</a><br /></td></tr>
+<tr class="separator:ad035df3781dc19ba2330b02ef1dd6eda"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6f28f1beb2fa07e1b3f6fa774789fd9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9">guac_protocol_send_cstroke</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, <a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a> cap, <a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a> join, int thickness, int r, int g, int b, int a)</td></tr>
+<tr class="memdesc:ac6f28f1beb2fa07e1b3f6fa774789fd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a cstroke instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#ac6f28f1beb2fa07e1b3f6fa774789fd9">More...</a><br /></td></tr>
+<tr class="separator:ac6f28f1beb2fa07e1b3f6fa774789fd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17da53514189083fa84aa3cc0bf6883a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a">guac_protocol_send_cursor</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int x, int y, const <a class="el" href="structguac__layer.html">guac_layer</a> *srcl, int srcx, int srcy, int w, int h)</td></tr>
+<tr class="memdesc:a17da53514189083fa84aa3cc0bf6883a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a cursor instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a17da53514189083fa84aa3cc0bf6883a">More...</a><br /></td></tr>
+<tr class="separator:a17da53514189083fa84aa3cc0bf6883a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b9985b080a339dcd14b95f5e46e8ab5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5">guac_protocol_send_curve</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int cp1x, int cp1y, int cp2x, int cp2y, int x, int y)</td></tr>
+<tr class="memdesc:a1b9985b080a339dcd14b95f5e46e8ab5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a curve instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a1b9985b080a339dcd14b95f5e46e8ab5">More...</a><br /></td></tr>
+<tr class="separator:a1b9985b080a339dcd14b95f5e46e8ab5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac205e52801a875bfbef02ae237b6b15"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aac205e52801a875bfbef02ae237b6b15">guac_protocol_send_identity</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:aac205e52801a875bfbef02ae237b6b15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an identity instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#aac205e52801a875bfbef02ae237b6b15">More...</a><br /></td></tr>
+<tr class="separator:aac205e52801a875bfbef02ae237b6b15"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9271e3b6cc0030b833d18137969a4018"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a9271e3b6cc0030b833d18137969a4018">guac_protocol_send_lfill</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, const <a class="el" href="structguac__layer.html">guac_layer</a> *srcl)</td></tr>
+<tr class="memdesc:a9271e3b6cc0030b833d18137969a4018"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an lfill instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a9271e3b6cc0030b833d18137969a4018">More...</a><br /></td></tr>
+<tr class="separator:a9271e3b6cc0030b833d18137969a4018"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afac3f57649c20b5e39c484a52d264005"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#afac3f57649c20b5e39c484a52d264005">guac_protocol_send_line</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y)</td></tr>
+<tr class="memdesc:afac3f57649c20b5e39c484a52d264005"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a line instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#afac3f57649c20b5e39c484a52d264005">More...</a><br /></td></tr>
+<tr class="separator:afac3f57649c20b5e39c484a52d264005"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b7d621d534126e26178789800a1a5d5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a5b7d621d534126e26178789800a1a5d5">guac_protocol_send_lstroke</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, <a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a> cap, <a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a> join, int thickness, const <a class="el" href="structguac__layer.html">guac_layer</a> *srcl)</td></tr>
+<tr class="memdesc:a5b7d621d534126e26178789800a1a5d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an lstroke instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a5b7d621d534126e26178789800a1a5d5">More...</a><br /></td></tr>
+<tr class="separator:a5b7d621d534126e26178789800a1a5d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afda8074f65d35795203f392f6688163e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#afda8074f65d35795203f392f6688163e">guac_protocol_send_img</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, const char *mimetype, int x, int y)</td></tr>
+<tr class="memdesc:afda8074f65d35795203f392f6688163e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an img instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#afda8074f65d35795203f392f6688163e">More...</a><br /></td></tr>
+<tr class="separator:afda8074f65d35795203f392f6688163e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab29ab6edd91e954fd686742c92eab6d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4">guac_protocol_send_pop</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:ab29ab6edd91e954fd686742c92eab6d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a pop instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#ab29ab6edd91e954fd686742c92eab6d4">More...</a><br /></td></tr>
+<tr class="separator:ab29ab6edd91e954fd686742c92eab6d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9db04720cbb2bc972f48f2e9332f23a8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8">guac_protocol_send_push</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:a9db04720cbb2bc972f48f2e9332f23a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a push instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a9db04720cbb2bc972f48f2e9332f23a8">More...</a><br /></td></tr>
+<tr class="separator:a9db04720cbb2bc972f48f2e9332f23a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42dc3db797b83accd3418b76648adac5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a42dc3db797b83accd3418b76648adac5">guac_protocol_send_rect</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, int width, int height)</td></tr>
+<tr class="memdesc:a42dc3db797b83accd3418b76648adac5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a rect instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a42dc3db797b83accd3418b76648adac5">More...</a><br /></td></tr>
+<tr class="separator:a42dc3db797b83accd3418b76648adac5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f6433cc21bc043c57fb7c468428373a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a">guac_protocol_send_reset</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:a5f6433cc21bc043c57fb7c468428373a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a reset instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a5f6433cc21bc043c57fb7c468428373a">More...</a><br /></td></tr>
+<tr class="separator:a5f6433cc21bc043c57fb7c468428373a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a60d33439eb4b5a11535a9a77e57c4126"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126">guac_protocol_send_start</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y)</td></tr>
+<tr class="memdesc:a60d33439eb4b5a11535a9a77e57c4126"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a start instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a60d33439eb4b5a11535a9a77e57c4126">More...</a><br /></td></tr>
+<tr class="separator:a60d33439eb4b5a11535a9a77e57c4126"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aecdce272ed4c317c5b7291e42239a1f9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9">guac_protocol_send_transfer</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *srcl, int srcx, int srcy, int w, int h, <a class="el" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a> fn, const <a class="el" href="structguac__layer.html">guac_layer</a> *dstl, int dstx, int dsty)</td></tr>
+<tr class="memdesc:aecdce272ed4c317c5b7291e42239a1f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a transfer instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#aecdce272ed4c317c5b7291e42239a1f9">More...</a><br /></td></tr>
+<tr class="separator:aecdce272ed4c317c5b7291e42239a1f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17058795c93be51c82a9df95eca8e62b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a17058795c93be51c82a9df95eca8e62b">guac_protocol_send_transform</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, double a, double b, double c, double d, double e, double f)</td></tr>
+<tr class="memdesc:a17058795c93be51c82a9df95eca8e62b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a transform instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a17058795c93be51c82a9df95eca8e62b">More...</a><br /></td></tr>
+<tr class="separator:a17058795c93be51c82a9df95eca8e62b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b2456a017f772a39be6d33a5da9149d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d">guac_protocol_send_dispose</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:a7b2456a017f772a39be6d33a5da9149d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a dispose instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a7b2456a017f772a39be6d33a5da9149d">More...</a><br /></td></tr>
+<tr class="separator:a7b2456a017f772a39be6d33a5da9149d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b4cdd9133dbdca8cfc1e78a0d6bdf13"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">guac_protocol_send_distort</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, double a, double b, double c, double d, double e, double f)</td></tr>
+<tr class="memdesc:a6b4cdd9133dbdca8cfc1e78a0d6bdf13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a distort instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">More...</a><br /></td></tr>
+<tr class="separator:a6b4cdd9133dbdca8cfc1e78a0d6bdf13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7409451b0f2b18dc870d347545c9afd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd">guac_protocol_send_move</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, const <a class="el" href="structguac__layer.html">guac_layer</a> *parent, int x, int y, int z)</td></tr>
+<tr class="memdesc:ac7409451b0f2b18dc870d347545c9afd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a move instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#ac7409451b0f2b18dc870d347545c9afd">More...</a><br /></td></tr>
+<tr class="separator:ac7409451b0f2b18dc870d347545c9afd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e72a4122a3a7c45fa21e0d5607cc4d5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5">guac_protocol_send_shade</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int a)</td></tr>
+<tr class="memdesc:a0e72a4122a3a7c45fa21e0d5607cc4d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a shade instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a0e72a4122a3a7c45fa21e0d5607cc4d5">More...</a><br /></td></tr>
+<tr class="separator:a0e72a4122a3a7c45fa21e0d5607cc4d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:affc4cf09c3337bd860439da99bdfef98"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#affc4cf09c3337bd860439da99bdfef98">guac_protocol_send_size</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int w, int h)</td></tr>
+<tr class="memdesc:affc4cf09c3337bd860439da99bdfef98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a size instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#affc4cf09c3337bd860439da99bdfef98">More...</a><br /></td></tr>
+<tr class="separator:affc4cf09c3337bd860439da99bdfef98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaddd6d7c6ab1289efb3dd38c39bde531"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531">guac_protocol_send_argv</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *mimetype, const char *name)</td></tr>
+<tr class="memdesc:aaddd6d7c6ab1289efb3dd38c39bde531"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an argv instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#aaddd6d7c6ab1289efb3dd38c39bde531">More...</a><br /></td></tr>
+<tr class="separator:aaddd6d7c6ab1289efb3dd38c39bde531"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e8a055e57afbcd9c9b520767d9a1c64"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64">guac_protocol_send_clipboard</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *mimetype)</td></tr>
+<tr class="memdesc:a7e8a055e57afbcd9c9b520767d9a1c64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a clipboard instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a7e8a055e57afbcd9c9b520767d9a1c64">More...</a><br /></td></tr>
+<tr class="separator:a7e8a055e57afbcd9c9b520767d9a1c64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a481fbaab3b8e72505df752ac2f6cc59e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e">guac_protocol_send_name</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *name)</td></tr>
+<tr class="memdesc:a481fbaab3b8e72505df752ac2f6cc59e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a name instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a481fbaab3b8e72505df752ac2f6cc59e">More...</a><br /></td></tr>
+<tr class="separator:a481fbaab3b8e72505df752ac2f6cc59e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ad7d9b8b205d6fc368eff2d9e8e40ec"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec">guac_protocol_decode_base64</a> (char *base64)</td></tr>
+<tr class="memdesc:a0ad7d9b8b205d6fc368eff2d9e8e40ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decodes the given base64-encoded string in-place.  <a href="#a0ad7d9b8b205d6fc368eff2d9e8e40ec">More...</a><br /></td></tr>
+<tr class="separator:a0ad7d9b8b205d6fc368eff2d9e8e40ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures required for communicating using the Guacamole protocol over a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection, such as that provided by <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> objects. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a0ad7d9b8b205d6fc368eff2d9e8e40ec"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0ad7d9b8b205d6fc368eff2d9e8e40ec">&#9670;&nbsp;</a></span>guac_protocol_decode_base64()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_decode_base64 </td>
+          <td>(</td>
+          <td class="paramtype">char *&#160;</td>
+          <td class="paramname"><em>base64</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Decodes the given base64-encoded string in-place. </p>
+<p>The base64 string must be NULL-terminated.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">base64</td><td>The base64-encoded string to decode. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes resulting from the decode operation. </dd></dl>
+
+</div>
+</div>
+<a id="ab02be6102d9f4aaa2bbb0b249f09d63e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab02be6102d9f4aaa2bbb0b249f09d63e">&#9670;&nbsp;</a></span>guac_protocol_send_ack()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_ack </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>error</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>&#160;</td>
+          <td class="paramname"><em>status</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an ack instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">stream</td><td>The <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> associated with the operation this ack is acknowledging. </td></tr>
+    <tr><td class="paramname">error</td><td>The human-readable description associated with the error or status update. </td></tr>
+    <tr><td class="paramname">status</td><td>The status code related to the error or status. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ad74bc43b5f03b79027bf02d873cd77b3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad74bc43b5f03b79027bf02d873cd77b3">&#9670;&nbsp;</a></span>guac_protocol_send_arc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_arc </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>radius</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>startAngle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>endAngle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>negative</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an arc instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the center of the circle containing the arc. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the center of the circle containing the arc. </td></tr>
+    <tr><td class="paramname">radius</td><td>The radius of the circle containing the arc. </td></tr>
+    <tr><td class="paramname">startAngle</td><td>The starting angle, in radians. </td></tr>
+    <tr><td class="paramname">endAngle</td><td>The ending angle, in radians. </td></tr>
+    <tr><td class="paramname">negative</td><td>Zero if the arc should be drawn in order of increasing angle, non-zero otherwise. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a6047d380b097ebc7d5f35b167e3419e6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6047d380b097ebc7d5f35b167e3419e6">&#9670;&nbsp;</a></span>guac_protocol_send_args()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_args </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>args</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an args instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">args</td><td>The NULL-terminated array of argument names (strings). </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aaddd6d7c6ab1289efb3dd38c39bde531"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aaddd6d7c6ab1289efb3dd38c39bde531">&#9670;&nbsp;</a></span>guac_protocol_send_argv()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_argv </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an argv instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use to send the connection parameter value.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use to send the connection parameter value.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the connection parameter value being sent.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the connection parameter whose current value is being sent.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ab92edb38a4df2db402a013422cee6b42"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab92edb38a4df2db402a013422cee6b42">&#9670;&nbsp;</a></span>guac_protocol_send_audio()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_audio </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an audio instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use when sending the audio instruction.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use for future audio data.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the audio data which will be sent over the given stream.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a798d57ec3f3cdfa0d9bb4906f02d5127"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a798d57ec3f3cdfa0d9bb4906f02d5127">&#9670;&nbsp;</a></span>guac_protocol_send_blob()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_blob </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const void *&#160;</td>
+          <td class="paramname"><em>data</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>count</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes a block of data to the currently in-progress blob which was already created. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use. </td></tr>
+    <tr><td class="paramname">data</td><td>The file data to write. </td></tr>
+    <tr><td class="paramname">count</td><td>The number of bytes within the given buffer of file data that must be written. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ad4b3d3b5741b377a197c02384e4b870e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad4b3d3b5741b377a197c02384e4b870e">&#9670;&nbsp;</a></span>guac_protocol_send_blobs()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_blobs </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const void *&#160;</td>
+          <td class="paramname"><em>data</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>count</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a series of blob instructions, splitting the given data across the number of instructions required to ensure the size of each blob does not exceed GUAC_PROTOCOL_BLOB_MAX_LENGTH. </p>
+<p>If the size of data provided is zero, no blob instructions are sent.</p>
+<p>If an error occurs sending any blob instruction, a non-zero value is returned, guac_error is set appropriately, and no further blobs are sent.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166" title="The maximum number of bytes that should be sent in any one blob instruction to ensure the instruction...">GUAC_PROTOCOL_BLOB_MAX_LENGTH</a></dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use to send the blob instructions.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to associate with each blob sent.</td></tr>
+    <tr><td class="paramname">data</td><td>The data which should be sent using the required number of blob instructions.</td></tr>
+    <tr><td class="paramname">count</td><td>The number of bytes within the given buffer of data that must be written.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aca9fb516e730233c33da297819f7ae7e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aca9fb516e730233c33da297819f7ae7e">&#9670;&nbsp;</a></span>guac_protocol_send_body()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_body </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__object.html">guac_object</a> *&#160;</td>
+          <td class="paramname"><em>object</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a body instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use.</td></tr>
+    <tr><td class="paramname">object</td><td>The object to associated with the stream being used.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data being sent.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the stream whose body is being sent, as requested by a "get" instruction.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="afda3a1a8285e323fca6aef50cb2feb5e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afda3a1a8285e323fca6aef50cb2feb5e">&#9670;&nbsp;</a></span>guac_protocol_send_cfill()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_cfill </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>r</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>g</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>b</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>a</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a cfill instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">r</td><td>The red component of the color of the rectangle. </td></tr>
+    <tr><td class="paramname">g</td><td>The green component of the color of the rectangle. </td></tr>
+    <tr><td class="paramname">b</td><td>The blue component of the color of the rectangle. </td></tr>
+    <tr><td class="paramname">a</td><td>The alpha (transparency) component of the color of the rectangle. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="acbd1869635b752bbf52998613804df00"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acbd1869635b752bbf52998613804df00">&#9670;&nbsp;</a></span>guac_protocol_send_clip()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_clip </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a clip instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to set the clipping region of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a7e8a055e57afbcd9c9b520767d9a1c64"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7e8a055e57afbcd9c9b520767d9a1c64">&#9670;&nbsp;</a></span>guac_protocol_send_clipboard()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_clipboard </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a clipboard instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use. </td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the clipboard data being sent. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a45a3e4e32900594e17c49db6939fc10a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a45a3e4e32900594e17c49db6939fc10a">&#9670;&nbsp;</a></span>guac_protocol_send_close()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_close </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a close instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ac8dea4393e2ec69d5d27fd0759a70fcb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac8dea4393e2ec69d5d27fd0759a70fcb">&#9670;&nbsp;</a></span>guac_protocol_send_connect()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_connect </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>args</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a connect instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">args</td><td>The NULL-terminated array of argument values (strings). </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ad035df3781dc19ba2330b02ef1dd6eda"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad035df3781dc19ba2330b02ef1dd6eda">&#9670;&nbsp;</a></span>guac_protocol_send_copy()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_copy </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>srcl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>srcx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>srcy</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>h</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>dstl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>dstx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>dsty</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a copy instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">srcl</td><td>The source layer. </td></tr>
+    <tr><td class="paramname">srcx</td><td>The X coordinate of the source rectangle. </td></tr>
+    <tr><td class="paramname">srcy</td><td>The Y coordinate of the source rectangle. </td></tr>
+    <tr><td class="paramname">w</td><td>The width of the source rectangle. </td></tr>
+    <tr><td class="paramname">h</td><td>The height of the source rectangle. </td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use. </td></tr>
+    <tr><td class="paramname">dstl</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">dstx</td><td>The X coordinate of the destination, where the source rectangle should be copied. </td></tr>
+    <tr><td class="paramname">dsty</td><td>The Y coordinate of the destination, where the source rectangle should be copied. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ac6f28f1beb2fa07e1b3f6fa774789fd9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac6f28f1beb2fa07e1b3f6fa774789fd9">&#9670;&nbsp;</a></span>guac_protocol_send_cstroke()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_cstroke </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a>&#160;</td>
+          <td class="paramname"><em>cap</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a>&#160;</td>
+          <td class="paramname"><em>join</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>thickness</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>r</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>g</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>b</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>a</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a cstroke instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">cap</td><td>The style of line cap to use when drawing the stroke. </td></tr>
+    <tr><td class="paramname">join</td><td>The style of line join to use when drawing the stroke. </td></tr>
+    <tr><td class="paramname">thickness</td><td>The thickness of the stroke in pixels. </td></tr>
+    <tr><td class="paramname">r</td><td>The red component of the color of the rectangle. </td></tr>
+    <tr><td class="paramname">g</td><td>The green component of the color of the rectangle. </td></tr>
+    <tr><td class="paramname">b</td><td>The blue component of the color of the rectangle. </td></tr>
+    <tr><td class="paramname">a</td><td>The alpha (transparency) component of the color of the rectangle. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a17da53514189083fa84aa3cc0bf6883a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a17da53514189083fa84aa3cc0bf6883a">&#9670;&nbsp;</a></span>guac_protocol_send_cursor()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_cursor </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>srcl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>srcx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>srcy</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>h</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a cursor instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the cursor hotspot. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the cursor hotspot. </td></tr>
+    <tr><td class="paramname">srcl</td><td>The source layer. </td></tr>
+    <tr><td class="paramname">srcx</td><td>The X coordinate of the source rectangle. </td></tr>
+    <tr><td class="paramname">srcy</td><td>The Y coordinate of the source rectangle. </td></tr>
+    <tr><td class="paramname">w</td><td>The width of the source rectangle. </td></tr>
+    <tr><td class="paramname">h</td><td>The height of the source rectangle. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a1b9985b080a339dcd14b95f5e46e8ab5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1b9985b080a339dcd14b95f5e46e8ab5">&#9670;&nbsp;</a></span>guac_protocol_send_curve()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_curve </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>cp1x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>cp1y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>cp2x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>cp2y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a curve instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">cp1x</td><td>The X coordinate of the first control point. </td></tr>
+    <tr><td class="paramname">cp1y</td><td>The Y coordinate of the first control point. </td></tr>
+    <tr><td class="paramname">cp2x</td><td>The X coordinate of the second control point. </td></tr>
+    <tr><td class="paramname">cp2y</td><td>The Y coordinate of the second control point. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the endpoint of the curve. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the endpoint of the curve. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="afd463766036afda4798edbe788d29524"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afd463766036afda4798edbe788d29524">&#9670;&nbsp;</a></span>guac_protocol_send_disconnect()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_disconnect </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a disconnect instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a7b2456a017f772a39be6d33a5da9149d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7b2456a017f772a39be6d33a5da9149d">&#9670;&nbsp;</a></span>guac_protocol_send_dispose()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_dispose </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a dispose instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to dispose. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a6b4cdd9133dbdca8cfc1e78a0d6bdf13"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">&#9670;&nbsp;</a></span>guac_protocol_send_distort()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_distort </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>b</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>c</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>d</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>e</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>f</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a distort instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to distort with the given transform matrix. </td></tr>
+    <tr><td class="paramname">a</td><td>The first value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">b</td><td>The second value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">c</td><td>The third value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">d</td><td>The fourth value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">e</td><td>The fifth value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">f</td><td>The sixth value of the affine transform matrix. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ae1bb569878a14efecccc0c05757d1cae"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae1bb569878a14efecccc0c05757d1cae">&#9670;&nbsp;</a></span>guac_protocol_send_end()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_end </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an end instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="abe696ca7c9841883c5d5bea513d4ee9a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abe696ca7c9841883c5d5bea513d4ee9a">&#9670;&nbsp;</a></span>guac_protocol_send_error()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_error </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>error</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>&#160;</td>
+          <td class="paramname"><em>status</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an error instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">error</td><td>The human-readable description associated with the error. </td></tr>
+    <tr><td class="paramname">status</td><td>The status code related to the error. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a453e1b22d63a9d07ba23b3a6726c2f06"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a453e1b22d63a9d07ba23b3a6726c2f06">&#9670;&nbsp;</a></span>guac_protocol_send_file()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_file </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a file instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use. </td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data being sent. </td></tr>
+    <tr><td class="paramname">name</td><td>A name describing the file being sent. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a3779c2287625af70fb001afbcc739da5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3779c2287625af70fb001afbcc739da5">&#9670;&nbsp;</a></span>guac_protocol_send_filesystem()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_filesystem </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__object.html">guac_object</a> *&#160;</td>
+          <td class="paramname"><em>object</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a filesystem instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use.</td></tr>
+    <tr><td class="paramname">object</td><td>The object representing the filesystem being exposed.</td></tr>
+    <tr><td class="paramname">name</td><td>A name describing the filesystem being exposed.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aac205e52801a875bfbef02ae237b6b15"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aac205e52801a875bfbef02ae237b6b15">&#9670;&nbsp;</a></span>guac_protocol_send_identity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_identity </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an identity instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="afda8074f65d35795203f392f6688163e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afda8074f65d35795203f392f6688163e">&#9670;&nbsp;</a></span>guac_protocol_send_img()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_img </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an img instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use when sending the img instruction.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream over which the image data will be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when drawing the image over the destination layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the image data being sent.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the destination layer, in pixels.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the destination layer, in pixels.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the instruction was successfully sent, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a2d276595cea8a2d382240d868487f077"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2d276595cea8a2d382240d868487f077">&#9670;&nbsp;</a></span>guac_protocol_send_key()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_key </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>keysym</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>pressed</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td>
+          <td class="paramname"><em>timestamp</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a key instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use.</td></tr>
+    <tr><td class="paramname">keysym</td><td>The X11 keysym of the key that was pressed or released.</td></tr>
+    <tr><td class="paramname">pressed</td><td>Non-zero if the key represented by the given keysym is currently pressed, zero if it is released.</td></tr>
+    <tr><td class="paramname">timestamp</td><td>The server timestamp (in milliseconds) at the point in time this key event was acknowledged.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a9271e3b6cc0030b833d18137969a4018"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9271e3b6cc0030b833d18137969a4018">&#9670;&nbsp;</a></span>guac_protocol_send_lfill()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_lfill </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>srcl</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an lfill instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">srcl</td><td>The source layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="afac3f57649c20b5e39c484a52d264005"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afac3f57649c20b5e39c484a52d264005">&#9670;&nbsp;</a></span>guac_protocol_send_line()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_line </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a line instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the endpoint of the line. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the endpoint of the line. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a6f832f5b814129d2819f115d84da3cd0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6f832f5b814129d2819f115d84da3cd0">&#9670;&nbsp;</a></span>guac_protocol_send_log()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_log </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a log instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>This is mainly useful in debugging.</p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">...</td><td>Arguments to use when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a5b7d621d534126e26178789800a1a5d5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5b7d621d534126e26178789800a1a5d5">&#9670;&nbsp;</a></span>guac_protocol_send_lstroke()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_lstroke </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a>&#160;</td>
+          <td class="paramname"><em>cap</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a>&#160;</td>
+          <td class="paramname"><em>join</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>thickness</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>srcl</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an lstroke instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">cap</td><td>The style of line cap to use when drawing the stroke. </td></tr>
+    <tr><td class="paramname">join</td><td>The style of line join to use when drawing the stroke. </td></tr>
+    <tr><td class="paramname">thickness</td><td>The thickness of the stroke in pixels. </td></tr>
+    <tr><td class="paramname">srcl</td><td>The source layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a8947056262da2f3263b9851370597622"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8947056262da2f3263b9851370597622">&#9670;&nbsp;</a></span>guac_protocol_send_mouse()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_mouse </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>button_mask</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td>
+          <td class="paramname"><em>timestamp</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a mouse instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the current mouse position.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the current mouse position.</td></tr>
+    <tr><td class="paramname">button_mask</td><td>An integer value representing the current state of each button, where the Nth bit within the integer is set to 1 if and only if the Nth mouse button is currently pressed. The lowest-order bit is the left mouse button, followed by the middle button, right button, and finally the up and down buttons of the scroll wheel.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2" title="The flag set in the mouse button mask when the left mouse button is down. ">GUAC_CLIENT_MOUSE_LEFT</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124" title="The flag set in the mouse button mask when the middle mouse button is down. ">GUAC_CLIENT_MOUSE_MIDDLE</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f" title="The flag set in the mouse button mask when the right mouse button is down. ">GUAC_CLIENT_MOUSE_RIGHT</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d" title="The flag set in the mouse button mask when the mouse scrollwheel is scrolled up. ">GUAC_CLIENT_MOUSE_SCROLL_UP</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0" title="The flag set in the mouse button mask when the mouse scrollwheel is scrolled down. ">GUAC_CLIENT_MOUSE_SCROLL_DOWN</a></dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">timestamp</td><td>The server timestamp (in milliseconds) at the point in time this mouse position was acknowledged.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ac7409451b0f2b18dc870d347545c9afd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac7409451b0f2b18dc870d347545c9afd">&#9670;&nbsp;</a></span>guac_protocol_send_move()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_move </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>parent</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>z</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a move instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to move. </td></tr>
+    <tr><td class="paramname">parent</td><td>The parent layer the specified layer will be positioned relative to. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the layer. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the layer. </td></tr>
+    <tr><td class="paramname">z</td><td>The Z index of the layer, relative to other layers in its parent. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a481fbaab3b8e72505df752ac2f6cc59e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a481fbaab3b8e72505df752ac2f6cc59e">&#9670;&nbsp;</a></span>guac_protocol_send_name()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_name </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a name instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">name</td><td>The name to send within the name instruction. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a94efa63c9895383e142a3f7ce559300b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a94efa63c9895383e142a3f7ce559300b">&#9670;&nbsp;</a></span>guac_protocol_send_nest()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_nest </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>data</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a nest instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>The "nest" instruction and the corresponding <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> implementation are no longer necessary, having been replaced by the streaming instructions ("blob", "ack", "end"). Code using nested sockets or the "nest" instruction should instead write to a normal socket directly.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">index</td><td>The integer index of the stram to send the protocol data over. </td></tr>
+    <tr><td class="paramname">data</td><td>A string containing protocol data, which must be UTF-8 encoded and null-terminated. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a8fa17d3aa1270b806ac6a386798c6d41"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8fa17d3aa1270b806ac6a386798c6d41">&#9670;&nbsp;</a></span>guac_protocol_send_nop()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_nop </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a nop instruction (null-operation) over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a18b2c462077b7c51d211f3db09c30292"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a18b2c462077b7c51d211f3db09c30292">&#9670;&nbsp;</a></span>guac_protocol_send_pipe()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_pipe </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a pipe instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use. </td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data being sent. </td></tr>
+    <tr><td class="paramname">name</td><td>An arbitrary name uniquely identifying this pipe. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ab29ab6edd91e954fd686742c92eab6d4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab29ab6edd91e954fd686742c92eab6d4">&#9670;&nbsp;</a></span>guac_protocol_send_pop()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_pop </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a pop instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to set the clipping region of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a9db04720cbb2bc972f48f2e9332f23a8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9db04720cbb2bc972f48f2e9332f23a8">&#9670;&nbsp;</a></span>guac_protocol_send_push()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_push </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a push instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to set the clipping region of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a102b7719fbd9c8ea0eb2dc4f51e26359"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a102b7719fbd9c8ea0eb2dc4f51e26359">&#9670;&nbsp;</a></span>guac_protocol_send_ready()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_ready </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>id</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a ready instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">id</td><td>The connection ID of the connection that is ready. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a42dc3db797b83accd3418b76648adac5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a42dc3db797b83accd3418b76648adac5">&#9670;&nbsp;</a></span>guac_protocol_send_rect()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_rect </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>width</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>height</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a rect instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the rectangle. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the rectangle. </td></tr>
+    <tr><td class="paramname">width</td><td>The width of the rectangle. </td></tr>
+    <tr><td class="paramname">height</td><td>The height of the rectangle. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a5f6433cc21bc043c57fb7c468428373a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5f6433cc21bc043c57fb7c468428373a">&#9670;&nbsp;</a></span>guac_protocol_send_reset()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_reset </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a reset instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to set the clipping region of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a8757c7870e648b220dbc76b8292fe5cf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8757c7870e648b220dbc76b8292fe5cf">&#9670;&nbsp;</a></span>guac_protocol_send_select()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_select </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>protocol</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a select instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">protocol</td><td>The protocol to request. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aa3750a6c0fbf190fb71a6ab0955cb31a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa3750a6c0fbf190fb71a6ab0955cb31a">&#9670;&nbsp;</a></span>guac_protocol_send_set()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_set </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a set instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to set the parameter of. </td></tr>
+    <tr><td class="paramname">name</td><td>The name of the parameter to set. </td></tr>
+    <tr><td class="paramname">value</td><td>The value to set the parameter to. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a0e72a4122a3a7c45fa21e0d5607cc4d5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0e72a4122a3a7c45fa21e0d5607cc4d5">&#9670;&nbsp;</a></span>guac_protocol_send_shade()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_shade </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>a</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a shade instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to shade. </td></tr>
+    <tr><td class="paramname">a</td><td>The alpha value of the layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="affc4cf09c3337bd860439da99bdfef98"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#affc4cf09c3337bd860439da99bdfef98">&#9670;&nbsp;</a></span>guac_protocol_send_size()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_size </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>h</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a size instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to resize. </td></tr>
+    <tr><td class="paramname">w</td><td>The new width of the layer. </td></tr>
+    <tr><td class="paramname">h</td><td>The new height of the layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a60d33439eb4b5a11535a9a77e57c4126"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a60d33439eb4b5a11535a9a77e57c4126">&#9670;&nbsp;</a></span>guac_protocol_send_start()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_start </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a start instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the first point of the subpath. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the first point of the subpath. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aa11f8798abca85fd2b47b5f9a027fa73"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa11f8798abca85fd2b47b5f9a027fa73">&#9670;&nbsp;</a></span>guac_protocol_send_sync()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_sync </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td>
+          <td class="paramname"><em>timestamp</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a sync instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>The current time in milliseconds should be passed in as the timestamp.</p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">timestamp</td><td>The current timestamp (in milliseconds). </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aecdce272ed4c317c5b7291e42239a1f9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aecdce272ed4c317c5b7291e42239a1f9">&#9670;&nbsp;</a></span>guac_protocol_send_transfer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_transfer </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>srcl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>srcx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>srcy</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>h</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a>&#160;</td>
+          <td class="paramname"><em>fn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>dstl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>dstx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>dsty</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a transfer instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">srcl</td><td>The source layer. </td></tr>
+    <tr><td class="paramname">srcx</td><td>The X coordinate of the source rectangle. </td></tr>
+    <tr><td class="paramname">srcy</td><td>The Y coordinate of the source rectangle. </td></tr>
+    <tr><td class="paramname">w</td><td>The width of the source rectangle. </td></tr>
+    <tr><td class="paramname">h</td><td>The height of the source rectangle. </td></tr>
+    <tr><td class="paramname">fn</td><td>The transfer function to use. </td></tr>
+    <tr><td class="paramname">dstl</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">dstx</td><td>The X coordinate of the destination, where the source rectangle should be copied. </td></tr>
+    <tr><td class="paramname">dsty</td><td>The Y coordinate of the destination, where the source rectangle should be copied. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a17058795c93be51c82a9df95eca8e62b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a17058795c93be51c82a9df95eca8e62b">&#9670;&nbsp;</a></span>guac_protocol_send_transform()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_transform </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>b</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>c</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>d</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>e</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>f</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a transform instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to apply the given transform matrix to. </td></tr>
+    <tr><td class="paramname">a</td><td>The first value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">b</td><td>The second value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">c</td><td>The third value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">d</td><td>The fourth value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">e</td><td>The fifth value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">f</td><td>The sixth value of the affine transform matrix. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aefa251505e61332e8e1c27ade0478e64"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aefa251505e61332e8e1c27ade0478e64">&#9670;&nbsp;</a></span>guac_protocol_send_undefine()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_undefine </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__object.html">guac_object</a> *&#160;</td>
+          <td class="paramname"><em>object</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an undefine instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use.</td></tr>
+    <tr><td class="paramname">object</td><td>The object being undefined.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a657216f2e63d2d42e8624f96def84bf8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a657216f2e63d2d42e8624f96def84bf8">&#9670;&nbsp;</a></span>guac_protocol_send_video()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_video </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a video instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use when sending the video instruction.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use for future video data.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer on which the streamed video should be played.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the video data which will be sent over the given stream.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a3a783d771e1727ba2a82b2298acf4ee4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3a783d771e1727ba2a82b2298acf4ee4">&#9670;&nbsp;</a></span>vguac_protocol_send_log()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int vguac_protocol_send_log </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">va_list&#160;</td>
+          <td class="paramname"><em>args</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a log instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>This is mainly useful in debugging.</p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use.</td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log.</td></tr>
+    <tr><td class="paramname">args</td><td>The va_list containing the arguments to be used when filling the format string for printing.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the instruction was sent successfully, non-zero if an error occurs. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/protocol_8h_source.html b/doc/1.1.0/libguac/protocol_8h_source.html
new file mode 100644
index 0000000..e47fde0
--- /dev/null
+++ b/doc/1.1.0/libguac/protocol_8h_source.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/protocol.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">protocol.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="protocol_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_PROTOCOL_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_PROTOCOL_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="layer-types_8h.html">layer-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="object-types_8h.html">object-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="protocol-constants_8h.html">protocol-constants.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="protocol-types_8h.html">protocol-types.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timestamp-types_8h.html">timestamp-types.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo.h&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment">/* CONTROL INSTRUCTIONS */</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e">guac_protocol_send_ack</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* error, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status);</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6">guac_protocol_send_args</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>** args);</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb">guac_protocol_send_connect</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>** args);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#afd463766036afda4798edbe788d29524">guac_protocol_send_disconnect</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a">guac_protocol_send_error</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* error,</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status);</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a2d276595cea8a2d382240d868487f077">guac_protocol_send_key</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> keysym, <span class="keywordtype">int</span> pressed,</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp);</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0">guac_protocol_send_log</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4">vguac_protocol_send_log</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* format,</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        va_list args);</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a8947056262da2f3263b9851370597622">guac_protocol_send_mouse</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        <span class="keywordtype">int</span> button_mask, <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp);</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a94efa63c9895383e142a3f7ce559300b">guac_protocol_send_nest</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> index,</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* data);</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41">guac_protocol_send_nop</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359">guac_protocol_send_ready</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keywordtype">id</span>);</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a">guac_protocol_send_set</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value);</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf">guac_protocol_send_select</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* protocol);</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73">guac_protocol_send_sync</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp);</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;<span class="comment">/* OBJECT INSTRUCTIONS */</span></div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aca9fb516e730233c33da297819f7ae7e">guac_protocol_send_body</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream, <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a3779c2287625af70fb001afbcc739da5">guac_protocol_send_filesystem</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aefa251505e61332e8e1c27ade0478e64">guac_protocol_send_undefine</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>);</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;<span class="comment">/* MEDIA INSTRUCTIONS */</span></div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ab92edb38a4df2db402a013422cee6b42">guac_protocol_send_audio</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype);</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06">guac_protocol_send_file</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a18b2c462077b7c51d211f3db09c30292">guac_protocol_send_pipe</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127">guac_protocol_send_blob</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">void</span>* data, <span class="keywordtype">int</span> count);</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e">guac_protocol_send_blobs</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">void</span>* data, <span class="keywordtype">int</span> count);</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae">guac_protocol_send_end</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream);</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8">guac_protocol_send_video</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype);</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;<span class="comment">/* DRAWING INSTRUCTIONS */</span></div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3">guac_protocol_send_arc</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;        <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> radius, <span class="keywordtype">double</span> startAngle, <span class="keywordtype">double</span> endAngle,</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;        <span class="keywordtype">int</span> negative);</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;</div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e">guac_protocol_send_cfill</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;        <span class="keywordtype">int</span> r, <span class="keywordtype">int</span> g, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> a);</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#acbd1869635b752bbf52998613804df00">guac_protocol_send_clip</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;</div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a">guac_protocol_send_close</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda">guac_protocol_send_copy</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, </div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* srcl, <span class="keywordtype">int</span> srcx, <span class="keywordtype">int</span> srcy, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h,</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* dstl, <span class="keywordtype">int</span> dstx, <span class="keywordtype">int</span> dsty);</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9">guac_protocol_send_cstroke</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;        <a class="code" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a> cap, <a class="code" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a> join, <span class="keywordtype">int</span> thickness,</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;        <span class="keywordtype">int</span> r, <span class="keywordtype">int</span> g, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> a);</div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;</div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a">guac_protocol_send_cursor</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* srcl, <span class="keywordtype">int</span> srcx, <span class="keywordtype">int</span> srcy, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h);</div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5">guac_protocol_send_curve</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;        <span class="keywordtype">int</span> cp1x, <span class="keywordtype">int</span> cp1y, <span class="keywordtype">int</span> cp2x, <span class="keywordtype">int</span> cp2y, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;</div><div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aac205e52801a875bfbef02ae237b6b15">guac_protocol_send_identity</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a9271e3b6cc0030b833d18137969a4018">guac_protocol_send_lfill</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* srcl);</div><div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;</div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#afac3f57649c20b5e39c484a52d264005">guac_protocol_send_line</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;        <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;</div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a5b7d621d534126e26178789800a1a5d5">guac_protocol_send_lstroke</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;        <a class="code" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a> cap, <a class="code" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a> join, <span class="keywordtype">int</span> thickness,</div><div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* srcl);</div><div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#afda8074f65d35795203f392f6688163e">guac_protocol_send_img</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;</div><div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4">guac_protocol_send_pop</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;</div><div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8">guac_protocol_send_push</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;</div><div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a42dc3db797b83accd3418b76648adac5">guac_protocol_send_rect</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;        <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);</div><div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;</div><div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a">guac_protocol_send_reset</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;</div><div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126">guac_protocol_send_start</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;        <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div><div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;</div><div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9">guac_protocol_send_transfer</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, </div><div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* srcl, <span class="keywordtype">int</span> srcx, <span class="keywordtype">int</span> srcy, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h,</div><div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;        <a class="code" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a> fn, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* dstl, <span class="keywordtype">int</span> dstx, <span class="keywordtype">int</span> dsty);</div><div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;</div><div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a17058795c93be51c82a9df95eca8e62b">guac_protocol_send_transform</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, </div><div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;        <span class="keywordtype">double</span> a, <span class="keywordtype">double</span> b, <span class="keywordtype">double</span> c,</div><div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;        <span class="keywordtype">double</span> d, <span class="keywordtype">double</span> e, <span class="keywordtype">double</span> f);</div><div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;</div><div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;<span class="comment">/* LAYER INSTRUCTIONS */</span></div><div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;</div><div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d">guac_protocol_send_dispose</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;</div><div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">guac_protocol_send_distort</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, </div><div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;        <span class="keywordtype">double</span> a, <span class="keywordtype">double</span> b, <span class="keywordtype">double</span> c,</div><div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;        <span class="keywordtype">double</span> d, <span class="keywordtype">double</span> e, <span class="keywordtype">double</span> f);</div><div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;</div><div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd">guac_protocol_send_move</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* parent, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> z);</div><div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;</div><div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5">guac_protocol_send_shade</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;        <span class="keywordtype">int</span> a);</div><div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;</div><div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#affc4cf09c3337bd860439da99bdfef98">guac_protocol_send_size</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;        <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h);</div><div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;</div><div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;<span class="comment">/* TEXT INSTRUCTIONS */</span></div><div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;</div><div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531">guac_protocol_send_argv</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;</div><div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64">guac_protocol_send_clipboard</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype);</div><div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;</div><div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e">guac_protocol_send_name</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec">guac_protocol_decode_base64</a>(<span class="keywordtype">char</span>* base64);</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;</div><div class="ttc" id="protocol_8h_html_aa3750a6c0fbf190fb71a6ab0955cb31a"><div class="ttname"><a href="protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a">guac_protocol_send_set</a></div><div class="ttdeci">int guac_protocol_send_set(guac_socket *socket, const guac_layer *layer, const char *name, const char *value)</div><div class="ttdoc">Sends a set instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a6047d380b097ebc7d5f35b167e3419e6"><div class="ttname"><a href="protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6">guac_protocol_send_args</a></div><div class="ttdeci">int guac_protocol_send_args(guac_socket *socket, const char **args)</div><div class="ttdoc">Sends an args instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_ae1bb569878a14efecccc0c05757d1cae"><div class="ttname"><a href="protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae">guac_protocol_send_end</a></div><div class="ttdeci">int guac_protocol_send_end(guac_socket *socket, const guac_stream *stream)</div><div class="ttdoc">Sends an end instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_ad4b3d3b5741b377a197c02384e4b870e"><div class="ttname"><a href="protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e">guac_protocol_send_blobs</a></div><div class="ttdeci">int guac_protocol_send_blobs(guac_socket *socket, const guac_stream *stream, const void *data, int count)</div><div class="ttdoc">Sends a series of blob instructions, splitting the given data across the number of instructions requi...</div></div>
+<div class="ttc" id="protocol_8h_html_a6b4cdd9133dbdca8cfc1e78a0d6bdf13"><div class="ttname"><a href="protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">guac_protocol_send_distort</a></div><div class="ttdeci">int guac_protocol_send_distort(guac_socket *socket, const guac_layer *layer, double a, double b, double c, double d, double e, double f)</div><div class="ttdoc">Sends a distort instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a8757c7870e648b220dbc76b8292fe5cf"><div class="ttname"><a href="protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf">guac_protocol_send_select</a></div><div class="ttdeci">int guac_protocol_send_select(guac_socket *socket, const char *protocol)</div><div class="ttdoc">Sends a select instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a3779c2287625af70fb001afbcc739da5"><div class="ttname"><a href="protocol_8h.html#a3779c2287625af70fb001afbcc739da5">guac_protocol_send_filesystem</a></div><div class="ttdeci">int guac_protocol_send_filesystem(guac_socket *socket, const guac_object *object, const char *name)</div><div class="ttdoc">Sends a filesystem instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a5b7d621d534126e26178789800a1a5d5"><div class="ttname"><a href="protocol_8h.html#a5b7d621d534126e26178789800a1a5d5">guac_protocol_send_lstroke</a></div><div class="ttdeci">int guac_protocol_send_lstroke(guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, guac_line_cap_style cap, guac_line_join_style join, int thickness, const guac_layer *srcl)</div><div class="ttdoc">Sends an lstroke instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a7e8a055e57afbcd9c9b520767d9a1c64"><div class="ttname"><a href="protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64">guac_protocol_send_clipboard</a></div><div class="ttdeci">int guac_protocol_send_clipboard(guac_socket *socket, const guac_stream *stream, const char *mimetype)</div><div class="ttdoc">Sends a clipboard instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a102b7719fbd9c8ea0eb2dc4f51e26359"><div class="ttname"><a href="protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359">guac_protocol_send_ready</a></div><div class="ttdeci">int guac_protocol_send_ready(guac_socket *socket, const char *id)</div><div class="ttdoc">Sends a ready instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object. </div></div>
+<div class="ttc" id="protocol_8h_html_ac6f28f1beb2fa07e1b3f6fa774789fd9"><div class="ttname"><a href="protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9">guac_protocol_send_cstroke</a></div><div class="ttdeci">int guac_protocol_send_cstroke(guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, guac_line_cap_style cap, guac_line_join_style join, int thickness, int r, int g, int b, int a)</div><div class="ttdoc">Sends a cstroke instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a657216f2e63d2d42e8624f96def84bf8"><div class="ttname"><a href="protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8">guac_protocol_send_video</a></div><div class="ttdeci">int guac_protocol_send_video(guac_socket *socket, const guac_stream *stream, const guac_layer *layer, const char *mimetype)</div><div class="ttdoc">Sends a video instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a5f6433cc21bc043c57fb7c468428373a"><div class="ttname"><a href="protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a">guac_protocol_send_reset</a></div><div class="ttdeci">int guac_protocol_send_reset(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends a reset instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a0ad7d9b8b205d6fc368eff2d9e8e40ec"><div class="ttname"><a href="protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec">guac_protocol_decode_base64</a></div><div class="ttdeci">int guac_protocol_decode_base64(char *base64)</div><div class="ttdoc">Decodes the given base64-encoded string in-place. </div></div>
+<div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams. </div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole. </div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="protocol_8h_html_afda8074f65d35795203f392f6688163e"><div class="ttname"><a href="protocol_8h.html#afda8074f65d35795203f392f6688163e">guac_protocol_send_img</a></div><div class="ttdeci">int guac_protocol_send_img(guac_socket *socket, const guac_stream *stream, guac_composite_mode mode, const guac_layer *layer, const char *mimetype, int x, int y)</div><div class="ttdoc">Sends an img instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="object-types_8h_html"><div class="ttname"><a href="object-types_8h.html">object-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol objects. </div></div>
+<div class="ttc" id="protocol_8h_html_a8fa17d3aa1270b806ac6a386798c6d41"><div class="ttname"><a href="protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41">guac_protocol_send_nop</a></div><div class="ttdeci">int guac_protocol_send_nop(guac_socket *socket)</div><div class="ttdoc">Sends a nop instruction (null-operation) over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a481fbaab3b8e72505df752ac2f6cc59e"><div class="ttname"><a href="protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e">guac_protocol_send_name</a></div><div class="ttdeci">int guac_protocol_send_name(guac_socket *socket, const char *name)</div><div class="ttdoc">Sends a name instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_aecdce272ed4c317c5b7291e42239a1f9"><div class="ttname"><a href="protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9">guac_protocol_send_transfer</a></div><div class="ttdeci">int guac_protocol_send_transfer(guac_socket *socket, const guac_layer *srcl, int srcx, int srcy, int w, int h, guac_transfer_function fn, const guac_layer *dstl, int dstx, int dsty)</div><div class="ttdoc">Sends a transfer instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_ab92edb38a4df2db402a013422cee6b42"><div class="ttname"><a href="protocol_8h.html#ab92edb38a4df2db402a013422cee6b42">guac_protocol_send_audio</a></div><div class="ttdeci">int guac_protocol_send_audio(guac_socket *socket, const guac_stream *stream, const char *mimetype)</div><div class="ttdoc">Sends an audio instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol-types_8h_html_a6333200b3ff1634e0cb1826b271438b1"><div class="ttname"><a href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a></div><div class="ttdeci">guac_line_join_style</div><div class="ttdoc">Supported line join styles. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:273</div></div>
+<div class="ttc" id="protocol_8h_html_afd463766036afda4798edbe788d29524"><div class="ttname"><a href="protocol_8h.html#afd463766036afda4798edbe788d29524">guac_protocol_send_disconnect</a></div><div class="ttdeci">int guac_protocol_send_disconnect(guac_socket *socket)</div><div class="ttdoc">Sends a disconnect instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol-constants_8h_html"><div class="ttname"><a href="protocol-constants_8h.html">protocol-constants.h</a></div><div class="ttdoc">Constants related to the Guacamole protocol. </div></div>
+<div class="ttc" id="protocol_8h_html_ad74bc43b5f03b79027bf02d873cd77b3"><div class="ttname"><a href="protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3">guac_protocol_send_arc</a></div><div class="ttdeci">int guac_protocol_send_arc(guac_socket *socket, const guac_layer *layer, int x, int y, int radius, double startAngle, double endAngle, int negative)</div><div class="ttdoc">Sends an arc instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a3a783d771e1727ba2a82b2298acf4ee4"><div class="ttname"><a href="protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4">vguac_protocol_send_log</a></div><div class="ttdeci">int vguac_protocol_send_log(guac_socket *socket, const char *format, va_list args)</div><div class="ttdoc">Sends a log instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_ac7409451b0f2b18dc870d347545c9afd"><div class="ttname"><a href="protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd">guac_protocol_send_move</a></div><div class="ttdeci">int guac_protocol_send_move(guac_socket *socket, const guac_layer *layer, const guac_layer *parent, int x, int y, int z)</div><div class="ttdoc">Sends a move instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="structguac__object_html"><div class="ttname"><a href="structguac__object.html">guac_object</a></div><div class="ttdoc">Represents a single object within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> object.h:32</div></div>
+<div class="ttc" id="protocol_8h_html_a798d57ec3f3cdfa0d9bb4906f02d5127"><div class="ttname"><a href="protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127">guac_protocol_send_blob</a></div><div class="ttdeci">int guac_protocol_send_blob(guac_socket *socket, const guac_stream *stream, const void *data, int count)</div><div class="ttdoc">Writes a block of data to the currently in-progress blob which was already created. </div></div>
+<div class="ttc" id="protocol_8h_html_a42dc3db797b83accd3418b76648adac5"><div class="ttname"><a href="protocol_8h.html#a42dc3db797b83accd3418b76648adac5">guac_protocol_send_rect</a></div><div class="ttdeci">int guac_protocol_send_rect(guac_socket *socket, const guac_layer *layer, int x, int y, int width, int height)</div><div class="ttdoc">Sends a rect instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a17da53514189083fa84aa3cc0bf6883a"><div class="ttname"><a href="protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a">guac_protocol_send_cursor</a></div><div class="ttdeci">int guac_protocol_send_cursor(guac_socket *socket, int x, int y, const guac_layer *srcl, int srcx, int srcy, int w, int h)</div><div class="ttdoc">Sends a cursor instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a6f832f5b814129d2819f115d84da3cd0"><div class="ttname"><a href="protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0">guac_protocol_send_log</a></div><div class="ttdeci">int guac_protocol_send_log(guac_socket *socket, const char *format,...)</div><div class="ttdoc">Sends a log instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_aac205e52801a875bfbef02ae237b6b15"><div class="ttname"><a href="protocol_8h.html#aac205e52801a875bfbef02ae237b6b15">guac_protocol_send_identity</a></div><div class="ttdeci">int guac_protocol_send_identity(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends an identity instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a1b9985b080a339dcd14b95f5e46e8ab5"><div class="ttname"><a href="protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5">guac_protocol_send_curve</a></div><div class="ttdeci">int guac_protocol_send_curve(guac_socket *socket, const guac_layer *layer, int cp1x, int cp1y, int cp2x, int cp2y, int x, int y)</div><div class="ttdoc">Sends a curve instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a45a3e4e32900594e17c49db6939fc10a"><div class="ttname"><a href="protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a">guac_protocol_send_close</a></div><div class="ttdeci">int guac_protocol_send_close(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends a close instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol-types_8h_html_a9c85e3f22f5dea8b2f38de6b4f75b1ff"><div class="ttname"><a href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a></div><div class="ttdeci">guac_transfer_function</div><div class="ttdoc">Default transfer functions. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:219</div></div>
+<div class="ttc" id="protocol_8h_html_a7b2456a017f772a39be6d33a5da9149d"><div class="ttname"><a href="protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d">guac_protocol_send_dispose</a></div><div class="ttdeci">int guac_protocol_send_dispose(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends a dispose instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a60d33439eb4b5a11535a9a77e57c4126"><div class="ttname"><a href="protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126">guac_protocol_send_start</a></div><div class="ttdeci">int guac_protocol_send_start(guac_socket *socket, const guac_layer *layer, int x, int y)</div><div class="ttdoc">Sends a start instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_aa11f8798abca85fd2b47b5f9a027fa73"><div class="ttname"><a href="protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73">guac_protocol_send_sync</a></div><div class="ttdeci">int guac_protocol_send_sync(guac_socket *socket, guac_timestamp timestamp)</div><div class="ttdoc">Sends a sync instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a9271e3b6cc0030b833d18137969a4018"><div class="ttname"><a href="protocol_8h.html#a9271e3b6cc0030b833d18137969a4018">guac_protocol_send_lfill</a></div><div class="ttdeci">int guac_protocol_send_lfill(guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, const guac_layer *srcl)</div><div class="ttdoc">Sends an lfill instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol-types_8h_html_a4a0205f8ee2e29e1a4d78da74ab58efc"><div class="ttname"><a href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a></div><div class="ttdeci">guac_line_cap_style</div><div class="ttdoc">Supported line cap styles. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:264</div></div>
+<div class="ttc" id="protocol_8h_html_a94efa63c9895383e142a3f7ce559300b"><div class="ttname"><a href="protocol_8h.html#a94efa63c9895383e142a3f7ce559300b">guac_protocol_send_nest</a></div><div class="ttdeci">int guac_protocol_send_nest(guac_socket *socket, int index, const char *data)</div><div class="ttdoc">Sends a nest instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_aca9fb516e730233c33da297819f7ae7e"><div class="ttname"><a href="protocol_8h.html#aca9fb516e730233c33da297819f7ae7e">guac_protocol_send_body</a></div><div class="ttdeci">int guac_protocol_send_body(guac_socket *socket, const guac_object *object, const guac_stream *stream, const char *mimetype, const char *name)</div><div class="ttdoc">Sends a body instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_afac3f57649c20b5e39c484a52d264005"><div class="ttname"><a href="protocol_8h.html#afac3f57649c20b5e39c484a52d264005">guac_protocol_send_line</a></div><div class="ttdeci">int guac_protocol_send_line(guac_socket *socket, const guac_layer *layer, int x, int y)</div><div class="ttdoc">Sends a line instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol-types_8h_html"><div class="ttname"><a href="protocol-types_8h.html">protocol-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole protocol. </div></div>
+<div class="ttc" id="protocol_8h_html_ad035df3781dc19ba2330b02ef1dd6eda"><div class="ttname"><a href="protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda">guac_protocol_send_copy</a></div><div class="ttdeci">int guac_protocol_send_copy(guac_socket *socket, const guac_layer *srcl, int srcx, int srcy, int w, int h, guac_composite_mode mode, const guac_layer *dstl, int dstx, int dsty)</div><div class="ttdoc">Sends a copy instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a9db04720cbb2bc972f48f2e9332f23a8"><div class="ttname"><a href="protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8">guac_protocol_send_push</a></div><div class="ttdeci">int guac_protocol_send_push(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends a push instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a8947056262da2f3263b9851370597622"><div class="ttname"><a href="protocol_8h.html#a8947056262da2f3263b9851370597622">guac_protocol_send_mouse</a></div><div class="ttdeci">int guac_protocol_send_mouse(guac_socket *socket, int x, int y, int button_mask, guac_timestamp timestamp)</div><div class="ttdoc">Sends a mouse instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds. </div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+<div class="ttc" id="protocol_8h_html_a0e72a4122a3a7c45fa21e0d5607cc4d5"><div class="ttname"><a href="protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5">guac_protocol_send_shade</a></div><div class="ttdeci">int guac_protocol_send_shade(guac_socket *socket, const guac_layer *layer, int a)</div><div class="ttdoc">Sends a shade instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_aaddd6d7c6ab1289efb3dd38c39bde531"><div class="ttname"><a href="protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531">guac_protocol_send_argv</a></div><div class="ttdeci">int guac_protocol_send_argv(guac_socket *socket, guac_stream *stream, const char *mimetype, const char *name)</div><div class="ttdoc">Sends an argv instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_acbd1869635b752bbf52998613804df00"><div class="ttname"><a href="protocol_8h.html#acbd1869635b752bbf52998613804df00">guac_protocol_send_clip</a></div><div class="ttdeci">int guac_protocol_send_clip(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends a clip instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a453e1b22d63a9d07ba23b3a6726c2f06"><div class="ttname"><a href="protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06">guac_protocol_send_file</a></div><div class="ttdeci">int guac_protocol_send_file(guac_socket *socket, const guac_stream *stream, const char *mimetype, const char *name)</div><div class="ttdoc">Sends a file instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_aefa251505e61332e8e1c27ade0478e64"><div class="ttname"><a href="protocol_8h.html#aefa251505e61332e8e1c27ade0478e64">guac_protocol_send_undefine</a></div><div class="ttdeci">int guac_protocol_send_undefine(guac_socket *socket, const guac_object *object)</div><div class="ttdoc">Sends an undefine instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_ab29ab6edd91e954fd686742c92eab6d4"><div class="ttname"><a href="protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4">guac_protocol_send_pop</a></div><div class="ttdeci">int guac_protocol_send_pop(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends a pop instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a17058795c93be51c82a9df95eca8e62b"><div class="ttname"><a href="protocol_8h.html#a17058795c93be51c82a9df95eca8e62b">guac_protocol_send_transform</a></div><div class="ttdeci">int guac_protocol_send_transform(guac_socket *socket, const guac_layer *layer, double a, double b, double c, double d, double e, double f)</div><div class="ttdoc">Sends a transform instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_affc4cf09c3337bd860439da99bdfef98"><div class="ttname"><a href="protocol_8h.html#affc4cf09c3337bd860439da99bdfef98">guac_protocol_send_size</a></div><div class="ttdeci">int guac_protocol_send_size(guac_socket *socket, const guac_layer *layer, int w, int h)</div><div class="ttdoc">Sends a size instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="layer-types_8h_html"><div class="ttname"><a href="layer-types_8h.html">layer-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole layers. </div></div>
+<div class="ttc" id="protocol-types_8h_html_a93612063886db58071d02b5393abf186"><div class="ttname"><a href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a></div><div class="ttdeci">guac_composite_mode</div><div class="ttdoc">Composite modes used by Guacamole draw instructions. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:170</div></div>
+<div class="ttc" id="protocol_8h_html_a18b2c462077b7c51d211f3db09c30292"><div class="ttname"><a href="protocol_8h.html#a18b2c462077b7c51d211f3db09c30292">guac_protocol_send_pipe</a></div><div class="ttdeci">int guac_protocol_send_pipe(guac_socket *socket, const guac_stream *stream, const char *mimetype, const char *name)</div><div class="ttdoc">Sends a pipe instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a></div><div class="ttdeci">guac_protocol_status</div><div class="ttdoc">Set of all possible status codes returned by protocol operations. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:44</div></div>
+<div class="ttc" id="structguac__layer_html"><div class="ttname"><a href="structguac__layer.html">guac_layer</a></div><div class="ttdoc">Represents a single layer within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> layer.h:34</div></div>
+<div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+<div class="ttc" id="protocol_8h_html_a2d276595cea8a2d382240d868487f077"><div class="ttname"><a href="protocol_8h.html#a2d276595cea8a2d382240d868487f077">guac_protocol_send_key</a></div><div class="ttdeci">int guac_protocol_send_key(guac_socket *socket, int keysym, int pressed, guac_timestamp timestamp)</div><div class="ttdoc">Sends a key instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_ac8dea4393e2ec69d5d27fd0759a70fcb"><div class="ttname"><a href="protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb">guac_protocol_send_connect</a></div><div class="ttdeci">int guac_protocol_send_connect(guac_socket *socket, const char **args)</div><div class="ttdoc">Sends a connect instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_abe696ca7c9841883c5d5bea513d4ee9a"><div class="ttname"><a href="protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a">guac_protocol_send_error</a></div><div class="ttdeci">int guac_protocol_send_error(guac_socket *socket, const char *error, guac_protocol_status status)</div><div class="ttdoc">Sends an error instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_ab02be6102d9f4aaa2bbb0b249f09d63e"><div class="ttname"><a href="protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e">guac_protocol_send_ack</a></div><div class="ttdeci">int guac_protocol_send_ack(guac_socket *socket, guac_stream *stream, const char *error, guac_protocol_status status)</div><div class="ttdoc">Sends an ack instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_afda3a1a8285e323fca6aef50cb2feb5e"><div class="ttname"><a href="protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e">guac_protocol_send_cfill</a></div><div class="ttdeci">int guac_protocol_send_cfill(guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int r, int g, int b, int a)</div><div class="ttdoc">Sends a cfill instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="timestamp-types_8h_html"><div class="ttname"><a href="timestamp-types_8h.html">timestamp-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol timestamps. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_0.html b/doc/1.1.0/libguac/search/all_0.html
new file mode 100644
index 0000000..5125b94
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_0.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_0.js b/doc/1.1.0/libguac/search/all_0.js
new file mode 100644
index 0000000..4b3049b
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_0.js
@@ -0,0 +1,14 @@
+var searchData=
+[
+  ['ack_5fhandler',['ack_handler',['../structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff',1,'guac_stream::ack_handler()'],['../structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be',1,'guac_user::ack_handler()']]],
+  ['active',['active',['../structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3',1,'guac_pool::active()'],['../structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd',1,'guac_user::active()']]],
+  ['argc',['argc',['../structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe',1,'guac_parser']]],
+  ['args',['args',['../structguac__client.html#a0e07a8086579ede2c692460998a87cac',1,'guac_client']]],
+  ['argv',['argv',['../structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701',1,'guac_parser']]],
+  ['argv_5fhandler',['argv_handler',['../structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a',1,'guac_user']]],
+  ['audio_2dfntypes_2eh',['audio-fntypes.h',['../audio-fntypes_8h.html',1,'']]],
+  ['audio_2dtypes_2eh',['audio-types.h',['../audio-types_8h.html',1,'']]],
+  ['audio_2eh',['audio.h',['../audio_8h.html',1,'']]],
+  ['audio_5fhandler',['audio_handler',['../structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69',1,'guac_user']]],
+  ['audio_5fmimetypes',['audio_mimetypes',['../structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27',1,'guac_user_info']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_1.html b/doc/1.1.0/libguac/search/all_1.html
new file mode 100644
index 0000000..b8ff871
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_1.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_1.js b/doc/1.1.0/libguac/search/all_1.js
new file mode 100644
index 0000000..86c920a
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_1.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['begin_5fhandler',['begin_handler',['../structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6',1,'guac_audio_encoder']]],
+  ['blob_5fhandler',['blob_handler',['../structguac__stream.html#a51122ba04f416d8ce047542c603632f8',1,'guac_stream::blob_handler()'],['../structguac__user.html#a88a14fda25c9929269d198d4d602f7fb',1,'guac_user::blob_handler()']]],
+  ['bps',['bps',['../structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866',1,'guac_audio_stream']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_10.html b/doc/1.1.0/libguac/search/all_10.html
new file mode 100644
index 0000000..50bc449
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_10.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_10.js b/doc/1.1.0/libguac/search/all_10.js
new file mode 100644
index 0000000..eb7b310
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_10.js
@@ -0,0 +1,19 @@
+var searchData=
+[
+  ['select_5fhandler',['select_handler',['../structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f',1,'guac_socket']]],
+  ['size_5fhandler',['size_handler',['../structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a',1,'guac_user']]],
+  ['socket',['socket',['../structguac__client.html#aa634856fd3c522377ba7345f3308000e',1,'guac_client::socket()'],['../structguac__user.html#a8496638b8c4c52f5f15d483b92becf27',1,'guac_user::socket()']]],
+  ['socket_2dconstants_2eh',['socket-constants.h',['../socket-constants_8h.html',1,'']]],
+  ['socket_2dfntypes_2eh',['socket-fntypes.h',['../socket-fntypes_8h.html',1,'']]],
+  ['socket_2dssl_2eh',['socket-ssl.h',['../socket-ssl_8h.html',1,'']]],
+  ['socket_2dtypes_2eh',['socket-types.h',['../socket-types_8h.html',1,'']]],
+  ['socket_2dwsa_2eh',['socket-wsa.h',['../socket-wsa_8h.html',1,'']]],
+  ['socket_2eh',['socket.h',['../socket_8h.html',1,'']]],
+  ['ssl',['ssl',['../structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac',1,'guac_socket_ssl_data']]],
+  ['state',['state',['../structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53',1,'guac_client::state()'],['../structguac__parser.html#a2773500f91b3cdb7de7bdea280228054',1,'guac_parser::state()'],['../structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b',1,'guac_socket::state()']]],
+  ['stream',['stream',['../structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894',1,'guac_audio_stream']]],
+  ['stream_2dtypes_2eh',['stream-types.h',['../stream-types_8h.html',1,'']]],
+  ['stream_2eh',['stream.h',['../stream_8h.html',1,'']]],
+  ['string_2eh',['string.h',['../string_8h.html',1,'']]],
+  ['sync_5fhandler',['sync_handler',['../structguac__user.html#a209e83f080baf2e84d04cf08395374d2',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_11.html b/doc/1.1.0/libguac/search/all_11.html
new file mode 100644
index 0000000..b35c8bf
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_11.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_11.js b/doc/1.1.0/libguac/search/all_11.js
new file mode 100644
index 0000000..6862d7d
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_11.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['timestamp_2dtypes_2eh',['timestamp-types.h',['../timestamp-types_8h.html',1,'']]],
+  ['timestamp_2eh',['timestamp.h',['../timestamp_8h.html',1,'']]],
+  ['timezone',['timezone',['../structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078',1,'guac_user_info']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_12.html b/doc/1.1.0/libguac/search/all_12.html
new file mode 100644
index 0000000..fd26524
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_12.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_12.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_12.js b/doc/1.1.0/libguac/search/all_12.js
new file mode 100644
index 0000000..9ff96b3
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_12.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['unicode_2eh',['unicode.h',['../unicode_8h.html',1,'']]],
+  ['unlock_5fhandler',['unlock_handler',['../structguac__socket.html#a67be8367b5e1b330ee151b22c692500b',1,'guac_socket']]],
+  ['user_2dconstants_2eh',['user-constants.h',['../user-constants_8h.html',1,'']]],
+  ['user_2dfntypes_2eh',['user-fntypes.h',['../user-fntypes_8h.html',1,'']]],
+  ['user_2dtypes_2eh',['user-types.h',['../user-types_8h.html',1,'']]],
+  ['user_2eh',['user.h',['../user_8h.html',1,'']]],
+  ['user_5fid',['user_id',['../structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_13.html b/doc/1.1.0/libguac/search/all_13.html
new file mode 100644
index 0000000..04f66e2
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_13.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_13.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_13.js b/doc/1.1.0/libguac/search/all_13.js
new file mode 100644
index 0000000..097c5bd
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_13.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['value',['value',['../structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4',1,'guac_pool_int']]],
+  ['vguac_5fclient_5fabort',['vguac_client_abort',['../client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224',1,'client.h']]],
+  ['vguac_5fclient_5flog',['vguac_client_log',['../client_8h.html#a37a0fa9cfc4c02236085e3852972f494',1,'client.h']]],
+  ['vguac_5fprotocol_5fsend_5flog',['vguac_protocol_send_log',['../protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4',1,'protocol.h']]],
+  ['vguac_5fuser_5fabort',['vguac_user_abort',['../user_8h.html#ad8529247b551cb93509236a7f9138dd2',1,'user.h']]],
+  ['vguac_5fuser_5flog',['vguac_user_log',['../user_8h.html#af15509bcb891932a3fa93a142018b95c',1,'user.h']]],
+  ['video_5fmimetypes',['video_mimetypes',['../structguac__user__info.html#ace535bea6879596b6473657f3fc83b57',1,'guac_user_info']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_14.html b/doc/1.1.0/libguac/search/all_14.html
new file mode 100644
index 0000000..285f34b
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_14.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_14.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_14.js b/doc/1.1.0/libguac/search/all_14.js
new file mode 100644
index 0000000..50a5677
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_14.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['write_5fhandler',['write_handler',['../structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74',1,'guac_audio_encoder::write_handler()'],['../structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d',1,'guac_socket::write_handler()']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_2.html b/doc/1.1.0/libguac/search/all_2.html
new file mode 100644
index 0000000..2f17735
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_2.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_2.js b/doc/1.1.0/libguac/search/all_2.js
new file mode 100644
index 0000000..5f7cbea
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_2.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+  ['channels',['channels',['../structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6',1,'guac_audio_stream']]],
+  ['client',['client',['../structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba',1,'guac_audio_stream::client()'],['../structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf',1,'guac_user::client()']]],
+  ['client_2dconstants_2eh',['client-constants.h',['../client-constants_8h.html',1,'']]],
+  ['client_2dfntypes_2eh',['client-fntypes.h',['../client-fntypes_8h.html',1,'']]],
+  ['client_2dtypes_2eh',['client-types.h',['../client-types_8h.html',1,'']]],
+  ['client_2eh',['client.h',['../client_8h.html',1,'']]],
+  ['clipboard_5fhandler',['clipboard_handler',['../structguac__user.html#a77f042802092c8bbf4407836f3185343',1,'guac_user']]],
+  ['connected_5fusers',['connected_users',['../structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2',1,'guac_client']]],
+  ['connection_5fid',['connection_id',['../structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094',1,'guac_client']]],
+  ['context',['context',['../structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f',1,'guac_socket_ssl_data']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_3.html b/doc/1.1.0/libguac/search/all_3.html
new file mode 100644
index 0000000..a3e6f7d
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_3.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_3.js b/doc/1.1.0/libguac/search/all_3.js
new file mode 100644
index 0000000..7f4ab56
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_3.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['data',['data',['../structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7',1,'guac_audio_stream::data()'],['../structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3',1,'guac_client::data()'],['../structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e',1,'guac_object::data()'],['../structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d',1,'guac_socket::data()'],['../structguac__stream.html#acdf20063ca408431862d901c9445b429',1,'guac_stream::data()'],['../structguac__user.html#ad424a52c5d996e4a33de5dad61555883',1,'guac_user::data()']]],
+  ['deprecated_20list',['Deprecated List',['../deprecated.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_4.html b/doc/1.1.0/libguac/search/all_4.html
new file mode 100644
index 0000000..6452295
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_4.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_4.js b/doc/1.1.0/libguac/search/all_4.js
new file mode 100644
index 0000000..a275903
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_4.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['encoder',['encoder',['../structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d',1,'guac_audio_stream']]],
+  ['end_5fhandler',['end_handler',['../structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92',1,'guac_audio_encoder::end_handler()'],['../structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db',1,'guac_stream::end_handler()'],['../structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed',1,'guac_user::end_handler()']]],
+  ['error_2dtypes_2eh',['error-types.h',['../error-types_8h.html',1,'']]],
+  ['error_2eh',['error.h',['../error_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_5.html b/doc/1.1.0/libguac/search/all_5.html
new file mode 100644
index 0000000..e59e1d5
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_5.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_5.js b/doc/1.1.0/libguac/search/all_5.js
new file mode 100644
index 0000000..dc114ca
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_5.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['fd',['fd',['../structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a',1,'guac_socket_ssl_data']]],
+  ['file_5fhandler',['file_handler',['../structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474',1,'guac_user']]],
+  ['flush_5fhandler',['flush_handler',['../structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0',1,'guac_audio_encoder::flush_handler()'],['../structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b',1,'guac_socket::flush_handler()']]],
+  ['free_5fhandler',['free_handler',['../structguac__client.html#a79e29c931fd448cf51f7153fea064169',1,'guac_client::free_handler()'],['../structguac__socket.html#a1044cde496cfe11c914c623dc1e29678',1,'guac_socket::free_handler()']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_6.html b/doc/1.1.0/libguac/search/all_6.html
new file mode 100644
index 0000000..f75a754
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_6.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_6.js b/doc/1.1.0/libguac/search/all_6.js
new file mode 100644
index 0000000..1b1e589
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_6.js
@@ -0,0 +1,291 @@
+var searchData=
+[
+  ['get_5fhandler',['get_handler',['../structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21',1,'guac_object::get_handler()'],['../structguac__user.html#ada73c04bbf06de4280f2d7679190a19b',1,'guac_user::get_handler()']]],
+  ['guac_5faudio_5fencoder',['guac_audio_encoder',['../structguac__audio__encoder.html',1,'']]],
+  ['guac_5faudio_5fencoder_5fbegin_5fhandler',['guac_audio_encoder_begin_handler',['../audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fend_5fhandler',['guac_audio_encoder_end_handler',['../audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fflush_5fhandler',['guac_audio_encoder_flush_handler',['../audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fjoin_5fhandler',['guac_audio_encoder_join_handler',['../audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fwrite_5fhandler',['guac_audio_encoder_write_handler',['../audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fstream',['guac_audio_stream',['../structguac__audio__stream.html',1,'']]],
+  ['guac_5faudio_5fstream_5fadd_5fuser',['guac_audio_stream_add_user',['../audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5falloc',['guac_audio_stream_alloc',['../audio_8h.html#afc1fc0133504e718edf4756fac5e9c30',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5fflush',['guac_audio_stream_flush',['../audio_8h.html#af75feccacea2b14ee946064cf623f143',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5ffree',['guac_audio_stream_free',['../audio_8h.html#adcc872292b5ba6c39905610b2bccbf31',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5freset',['guac_audio_stream_reset',['../audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5fwrite_5fpcm',['guac_audio_stream_write_pcm',['../audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2',1,'audio.h']]],
+  ['guac_5fbuffer_5fpool_5finitial_5fsize',['GUAC_BUFFER_POOL_INITIAL_SIZE',['../client-constants_8h.html#aa8a296e1032ff408ab141b0765fb9bfb',1,'client-constants.h']]],
+  ['guac_5fclient',['guac_client',['../structguac__client.html',1,'']]],
+  ['guac_5fclient_5fabort',['guac_client_abort',['../client_8h.html#a62a29f7820deaff00a10ec79aa81aed4',1,'client.h']]],
+  ['guac_5fclient_5fadd_5fuser',['guac_client_add_user',['../client_8h.html#af66d105dfd1453ec46b423e6b25fa371',1,'client.h']]],
+  ['guac_5fclient_5falloc',['guac_client_alloc',['../client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a',1,'client.h']]],
+  ['guac_5fclient_5falloc_5fbuffer',['guac_client_alloc_buffer',['../client_8h.html#af661d3fedd9683631bdc7d1e3205e379',1,'client.h']]],
+  ['guac_5fclient_5falloc_5flayer',['guac_client_alloc_layer',['../client_8h.html#a2085758db585bb9d09d3860ec0fc9587',1,'client.h']]],
+  ['guac_5fclient_5falloc_5fstream',['guac_client_alloc_stream',['../client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9',1,'client.h']]],
+  ['guac_5fclient_5fclosed_5fstream_5findex',['GUAC_CLIENT_CLOSED_STREAM_INDEX',['../client-constants_8h.html#a6fda25106c4c454c22db2c7e042ee142',1,'client-constants.h']]],
+  ['guac_5fclient_5fend_5fframe',['guac_client_end_frame',['../client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc',1,'client.h']]],
+  ['guac_5fclient_5ffor_5fowner',['guac_client_for_owner',['../client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a',1,'client.h']]],
+  ['guac_5fclient_5ffor_5fuser',['guac_client_for_user',['../client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03',1,'client.h']]],
+  ['guac_5fclient_5fforeach_5fuser',['guac_client_foreach_user',['../client_8h.html#af652f3db0f89d488cef6d90f612a2077',1,'client.h']]],
+  ['guac_5fclient_5ffree',['guac_client_free',['../client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427',1,'client.h']]],
+  ['guac_5fclient_5ffree_5fbuffer',['guac_client_free_buffer',['../client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b',1,'client.h']]],
+  ['guac_5fclient_5ffree_5fhandler',['guac_client_free_handler',['../client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577',1,'client-fntypes.h']]],
+  ['guac_5fclient_5ffree_5flayer',['guac_client_free_layer',['../client_8h.html#a4e5b374211012d1897792335112dcb89',1,'client.h']]],
+  ['guac_5fclient_5ffree_5fstream',['guac_client_free_stream',['../client_8h.html#af0103a5aae8ba76badd2e68e827f6782',1,'client.h']]],
+  ['guac_5fclient_5fget_5fprocessing_5flag',['guac_client_get_processing_lag',['../client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c',1,'client.h']]],
+  ['guac_5fclient_5fid_5fprefix',['GUAC_CLIENT_ID_PREFIX',['../client-constants_8h.html#a8e2b48136e5c358e012a1558d5e5f0c2',1,'client-constants.h']]],
+  ['guac_5fclient_5finit_5fhandler',['guac_client_init_handler',['../client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c',1,'client-fntypes.h']]],
+  ['guac_5fclient_5fload_5fplugin',['guac_client_load_plugin',['../client_8h.html#afa2b90d686c56cf753c36718ec085f35',1,'client.h']]],
+  ['guac_5fclient_5flog',['guac_client_log',['../client_8h.html#ad53666bbe29346497cabb04fc9628208',1,'client.h']]],
+  ['guac_5fclient_5flog_5fhandler',['guac_client_log_handler',['../client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c',1,'client-fntypes.h']]],
+  ['guac_5fclient_5flog_5flevel',['guac_client_log_level',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727',1,'client-types.h']]],
+  ['guac_5fclient_5fmax_5fstreams',['GUAC_CLIENT_MAX_STREAMS',['../client-constants_8h.html#ad9f977643c5ffee5c1eeb426664796a1',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fleft',['GUAC_CLIENT_MOUSE_LEFT',['../client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fmiddle',['GUAC_CLIENT_MOUSE_MIDDLE',['../client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fright',['GUAC_CLIENT_MOUSE_RIGHT',['../client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fscroll_5fdown',['GUAC_CLIENT_MOUSE_SCROLL_DOWN',['../client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fscroll_5fup',['GUAC_CLIENT_MOUSE_SCROLL_UP',['../client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d',1,'client-constants.h']]],
+  ['guac_5fclient_5fremove_5fuser',['guac_client_remove_user',['../client_8h.html#a02832d5be5330dc3de524b497b7c6dfa',1,'client.h']]],
+  ['guac_5fclient_5frunning',['GUAC_CLIENT_RUNNING',['../client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0',1,'client-types.h']]],
+  ['guac_5fclient_5fstate',['guac_client_state',['../client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b',1,'client-types.h']]],
+  ['guac_5fclient_5fstop',['guac_client_stop',['../client_8h.html#a022d4b5587c84f2963b176ab7999aa1b',1,'client.h']]],
+  ['guac_5fclient_5fstopping',['GUAC_CLIENT_STOPPING',['../client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd',1,'client-types.h']]],
+  ['guac_5fclient_5fstream_5fargv',['guac_client_stream_argv',['../client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fjpeg',['guac_client_stream_jpeg',['../client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fpng',['guac_client_stream_png',['../client_8h.html#a317b9d79afd0b0b473d7d359e0c33750',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fwebp',['guac_client_stream_webp',['../client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e',1,'client.h']]],
+  ['guac_5fclient_5fsupports_5fwebp',['guac_client_supports_webp',['../client_8h.html#a79cc74558e8f64807ea2847fbacd20e3',1,'client.h']]],
+  ['guac_5fcomposite_5fmode',['guac_composite_mode',['../protocol-types_8h.html#a93612063886db58071d02b5393abf186',1,'protocol-types.h']]],
+  ['guac_5fdefault_5flayer',['GUAC_DEFAULT_LAYER',['../client_8h.html#a336a485c006394d5eea88bf6d8d422d8',1,'client.h']]],
+  ['guac_5ferror',['guac_error',['../error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07',1,'guac_error():&#160;error.h'],['../error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07',1,'guac_error():&#160;error.h']]],
+  ['guac_5ferror_5fmessage',['guac_error_message',['../error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd',1,'guac_error_message():&#160;error.h'],['../error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd',1,'guac_error_message():&#160;error.h']]],
+  ['guac_5fhash_5fsurface',['guac_hash_surface',['../hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c',1,'hash.h']]],
+  ['guac_5finstruction_5fmax_5fdigits',['GUAC_INSTRUCTION_MAX_DIGITS',['../parser-constants_8h.html#a408e5069154be109ad3dcf45cbc0b00f',1,'parser-constants.h']]],
+  ['guac_5finstruction_5fmax_5felements',['GUAC_INSTRUCTION_MAX_ELEMENTS',['../parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46',1,'parser-constants.h']]],
+  ['guac_5finstruction_5fmax_5flength',['GUAC_INSTRUCTION_MAX_LENGTH',['../parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744',1,'parser-constants.h']]],
+  ['guac_5flayer',['guac_layer',['../structguac__layer.html',1,'']]],
+  ['guac_5fline_5fcap_5fstyle',['guac_line_cap_style',['../protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc',1,'protocol-types.h']]],
+  ['guac_5fline_5fjoin_5fstyle',['guac_line_join_style',['../protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1',1,'protocol-types.h']]],
+  ['guac_5flog_5fdebug',['GUAC_LOG_DEBUG',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b',1,'client-types.h']]],
+  ['guac_5flog_5ferror',['GUAC_LOG_ERROR',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c',1,'client-types.h']]],
+  ['guac_5flog_5finfo',['GUAC_LOG_INFO',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29',1,'client-types.h']]],
+  ['guac_5flog_5ftrace',['GUAC_LOG_TRACE',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb',1,'client-types.h']]],
+  ['guac_5flog_5fwarning',['GUAC_LOG_WARNING',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be',1,'client-types.h']]],
+  ['guac_5fobject',['guac_object',['../structguac__object.html',1,'']]],
+  ['guac_5fparse_5fcomplete',['GUAC_PARSE_COMPLETE',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf',1,'parser-types.h']]],
+  ['guac_5fparse_5fcontent',['GUAC_PARSE_CONTENT',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e',1,'parser-types.h']]],
+  ['guac_5fparse_5ferror',['GUAC_PARSE_ERROR',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc',1,'parser-types.h']]],
+  ['guac_5fparse_5flength',['GUAC_PARSE_LENGTH',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc',1,'parser-types.h']]],
+  ['guac_5fparse_5fstate',['guac_parse_state',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30',1,'parser-types.h']]],
+  ['guac_5fparser',['guac_parser',['../structguac__parser.html',1,'']]],
+  ['guac_5fparser_5falloc',['guac_parser_alloc',['../parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad',1,'parser.h']]],
+  ['guac_5fparser_5fappend',['guac_parser_append',['../parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d',1,'parser.h']]],
+  ['guac_5fparser_5fexpect',['guac_parser_expect',['../parser_8h.html#ac54c94465aead463ce10e9a090b9b701',1,'parser.h']]],
+  ['guac_5fparser_5ffree',['guac_parser_free',['../parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f',1,'parser.h']]],
+  ['guac_5fparser_5flength',['guac_parser_length',['../parser_8h.html#a8899dd607997fcffd78517947b17760b',1,'parser.h']]],
+  ['guac_5fparser_5fread',['guac_parser_read',['../parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93',1,'parser.h']]],
+  ['guac_5fparser_5fshift',['guac_parser_shift',['../parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3',1,'parser.h']]],
+  ['guac_5fpool',['guac_pool',['../structguac__pool.html',1,'']]],
+  ['guac_5fpool_5falloc',['guac_pool_alloc',['../pool_8h.html#a3e7589997fdd734a6d6155badebd042f',1,'pool.h']]],
+  ['guac_5fpool_5ffree',['guac_pool_free',['../pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb',1,'pool.h']]],
+  ['guac_5fpool_5ffree_5fint',['guac_pool_free_int',['../pool_8h.html#ad90069a41689cf319f46af44bb113579',1,'pool.h']]],
+  ['guac_5fpool_5fint',['guac_pool_int',['../structguac__pool__int.html',1,'']]],
+  ['guac_5fpool_5fnext_5fint',['guac_pool_next_int',['../pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4',1,'pool.h']]],
+  ['guac_5fprotocol_5fblob_5fmax_5flength',['GUAC_PROTOCOL_BLOB_MAX_LENGTH',['../protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166',1,'protocol-constants.h']]],
+  ['guac_5fprotocol_5fdecode_5fbase64',['guac_protocol_decode_base64',['../protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec',1,'protocol.h']]],
+  ['guac_5fprotocol_5flibrary_5flimit',['GUAC_PROTOCOL_LIBRARY_LIMIT',['../plugin-constants_8h.html#a03c00580f4455d35c1ed33ed4dcfe2fe',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5flibrary_5fprefix',['GUAC_PROTOCOL_LIBRARY_PREFIX',['../plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5flibrary_5fsuffix',['GUAC_PROTOCOL_LIBRARY_SUFFIX',['../plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5fname_5flimit',['GUAC_PROTOCOL_NAME_LIMIT',['../plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5fsend_5fack',['guac_protocol_send_ack',['../protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5farc',['guac_protocol_send_arc',['../protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fargs',['guac_protocol_send_args',['../protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fargv',['guac_protocol_send_argv',['../protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5faudio',['guac_protocol_send_audio',['../protocol_8h.html#ab92edb38a4df2db402a013422cee6b42',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fblob',['guac_protocol_send_blob',['../protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fblobs',['guac_protocol_send_blobs',['../protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fbody',['guac_protocol_send_body',['../protocol_8h.html#aca9fb516e730233c33da297819f7ae7e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcfill',['guac_protocol_send_cfill',['../protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fclip',['guac_protocol_send_clip',['../protocol_8h.html#acbd1869635b752bbf52998613804df00',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fclipboard',['guac_protocol_send_clipboard',['../protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fclose',['guac_protocol_send_close',['../protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fconnect',['guac_protocol_send_connect',['../protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcopy',['guac_protocol_send_copy',['../protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcstroke',['guac_protocol_send_cstroke',['../protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcursor',['guac_protocol_send_cursor',['../protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcurve',['guac_protocol_send_curve',['../protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fdisconnect',['guac_protocol_send_disconnect',['../protocol_8h.html#afd463766036afda4798edbe788d29524',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fdispose',['guac_protocol_send_dispose',['../protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fdistort',['guac_protocol_send_distort',['../protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fend',['guac_protocol_send_end',['../protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ferror',['guac_protocol_send_error',['../protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ffile',['guac_protocol_send_file',['../protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ffilesystem',['guac_protocol_send_filesystem',['../protocol_8h.html#a3779c2287625af70fb001afbcc739da5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fidentity',['guac_protocol_send_identity',['../protocol_8h.html#aac205e52801a875bfbef02ae237b6b15',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fimg',['guac_protocol_send_img',['../protocol_8h.html#afda8074f65d35795203f392f6688163e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fkey',['guac_protocol_send_key',['../protocol_8h.html#a2d276595cea8a2d382240d868487f077',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5flfill',['guac_protocol_send_lfill',['../protocol_8h.html#a9271e3b6cc0030b833d18137969a4018',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fline',['guac_protocol_send_line',['../protocol_8h.html#afac3f57649c20b5e39c484a52d264005',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5flog',['guac_protocol_send_log',['../protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5flstroke',['guac_protocol_send_lstroke',['../protocol_8h.html#a5b7d621d534126e26178789800a1a5d5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fmouse',['guac_protocol_send_mouse',['../protocol_8h.html#a8947056262da2f3263b9851370597622',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fmove',['guac_protocol_send_move',['../protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fname',['guac_protocol_send_name',['../protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fnest',['guac_protocol_send_nest',['../protocol_8h.html#a94efa63c9895383e142a3f7ce559300b',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fnop',['guac_protocol_send_nop',['../protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fpipe',['guac_protocol_send_pipe',['../protocol_8h.html#a18b2c462077b7c51d211f3db09c30292',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fpop',['guac_protocol_send_pop',['../protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fpush',['guac_protocol_send_push',['../protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fready',['guac_protocol_send_ready',['../protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5frect',['guac_protocol_send_rect',['../protocol_8h.html#a42dc3db797b83accd3418b76648adac5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5freset',['guac_protocol_send_reset',['../protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fselect',['guac_protocol_send_select',['../protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fset',['guac_protocol_send_set',['../protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fshade',['guac_protocol_send_shade',['../protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fsize',['guac_protocol_send_size',['../protocol_8h.html#affc4cf09c3337bd860439da99bdfef98',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fstart',['guac_protocol_send_start',['../protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fsync',['guac_protocol_send_sync',['../protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ftransfer',['guac_protocol_send_transfer',['../protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ftransform',['guac_protocol_send_transform',['../protocol_8h.html#a17058795c93be51c82a9df95eca8e62b',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fundefine',['guac_protocol_send_undefine',['../protocol_8h.html#aefa251505e61332e8e1c27ade0478e64',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fvideo',['guac_protocol_send_video',['../protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8',1,'protocol.h']]],
+  ['guac_5fprotocol_5fstatus',['guac_protocol_status',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5fbad_5frequest',['GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5fbad_5ftype',['GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5fforbidden',['GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5foverrun',['GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5ftimeout',['GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5ftoo_5fmany',['GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5funauthorized',['GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fresource_5fclosed',['GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fresource_5fconflict',['GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fresource_5fnot_5ffound',['GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fserver_5fbusy',['GUAC_PROTOCOL_STATUS_SERVER_BUSY',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fserver_5ferror',['GUAC_PROTOCOL_STATUS_SERVER_ERROR',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsession_5fclosed',['GUAC_PROTOCOL_STATUS_SESSION_CLOSED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsession_5fconflict',['GUAC_PROTOCOL_STATUS_SESSION_CONFLICT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsession_5ftimeout',['GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsuccess',['GUAC_PROTOCOL_STATUS_SUCCESS',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5funsupported',['GUAC_PROTOCOL_STATUS_UNSUPPORTED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5ferror',['GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5fnot_5ffound',['GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5ftimeout',['GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5funavailable',['GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814',1,'protocol-types.h']]],
+  ['guac_5fsocket',['guac_socket',['../structguac__socket.html',1,'']]],
+  ['guac_5fsocket_5falloc',['guac_socket_alloc',['../socket_8h.html#a7e5859b812923b894779f59353fdadb4',1,'socket.h']]],
+  ['guac_5fsocket_5fbroadcast',['guac_socket_broadcast',['../socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6',1,'socket.h']]],
+  ['guac_5fsocket_5fclosed',['GUAC_SOCKET_CLOSED',['../socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e',1,'socket-types.h']]],
+  ['guac_5fsocket_5fflush',['guac_socket_flush',['../socket_8h.html#ababc834d5812e006b55a79da417bfe12',1,'socket.h']]],
+  ['guac_5fsocket_5fflush_5fbase64',['guac_socket_flush_base64',['../socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab',1,'socket.h']]],
+  ['guac_5fsocket_5fflush_5fhandler',['guac_socket_flush_handler',['../socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5ffree',['guac_socket_free',['../socket_8h.html#a376df8efcc02a7104504f104433884ed',1,'socket.h']]],
+  ['guac_5fsocket_5ffree_5fhandler',['guac_socket_free_handler',['../socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5finstruction_5fbegin',['guac_socket_instruction_begin',['../socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1',1,'socket.h']]],
+  ['guac_5fsocket_5finstruction_5fend',['guac_socket_instruction_end',['../socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94',1,'socket.h']]],
+  ['guac_5fsocket_5fkeep_5falive_5finterval',['GUAC_SOCKET_KEEP_ALIVE_INTERVAL',['../socket-constants_8h.html#aa8820e76e3d3471bdc8771591ebf29f7',1,'socket-constants.h']]],
+  ['guac_5fsocket_5flock_5fhandler',['guac_socket_lock_handler',['../socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fnest',['guac_socket_nest',['../socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda',1,'socket.h']]],
+  ['guac_5fsocket_5fopen',['GUAC_SOCKET_OPEN',['../socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5',1,'GUAC_SOCKET_OPEN():&#160;socket-types.h'],['../socket_8h.html#a076f62b9b6082260462e18ca77c64e7a',1,'guac_socket_open(int fd):&#160;socket.h']]],
+  ['guac_5fsocket_5fopen_5fsecure',['guac_socket_open_secure',['../socket-ssl_8h.html#afa6689181258a29460b978f1e496f790',1,'socket-ssl.h']]],
+  ['guac_5fsocket_5fopen_5fwsa',['guac_socket_open_wsa',['../socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be',1,'socket-wsa.h']]],
+  ['guac_5fsocket_5foutput_5fbuffer_5fsize',['GUAC_SOCKET_OUTPUT_BUFFER_SIZE',['../socket-constants_8h.html#af93053e27466c566624301d7b32a68c3',1,'socket-constants.h']]],
+  ['guac_5fsocket_5fread',['guac_socket_read',['../socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31',1,'socket.h']]],
+  ['guac_5fsocket_5fread_5fhandler',['guac_socket_read_handler',['../socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5frequire_5fkeep_5falive',['guac_socket_require_keep_alive',['../socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03',1,'socket.h']]],
+  ['guac_5fsocket_5fselect',['guac_socket_select',['../socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7',1,'socket.h']]],
+  ['guac_5fsocket_5fselect_5fhandler',['guac_socket_select_handler',['../socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fssl_5fdata',['guac_socket_ssl_data',['../structguac__socket__ssl__data.html',1,'']]],
+  ['guac_5fsocket_5fstate',['guac_socket_state',['../socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939',1,'socket-types.h']]],
+  ['guac_5fsocket_5ftee',['guac_socket_tee',['../socket_8h.html#add9c80240912b0c8d309cf7de94f5305',1,'socket.h']]],
+  ['guac_5fsocket_5funlock_5fhandler',['guac_socket_unlock_handler',['../socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fwrite',['guac_socket_write',['../socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite_5fbase64',['guac_socket_write_base64',['../socket_8h.html#ac7ec68bc42436ba316805718c292c510',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite_5fhandler',['guac_socket_write_handler',['../socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fwrite_5fint',['guac_socket_write_int',['../socket_8h.html#a57a963e37377de2104c2d785980ff400',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite_5fstring',['guac_socket_write_string',['../socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc',1,'socket.h']]],
+  ['guac_5fstatus',['guac_status',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86',1,'error-types.h']]],
+  ['guac_5fstatus_5fbusy',['GUAC_STATUS_BUSY',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55',1,'error-types.h']]],
+  ['guac_5fstatus_5fcanceled',['GUAC_STATUS_CANCELED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c',1,'error-types.h']]],
+  ['guac_5fstatus_5fclosed',['GUAC_STATUS_CLOSED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff',1,'error-types.h']]],
+  ['guac_5fstatus_5finput_5ftoo_5flarge',['GUAC_STATUS_INPUT_TOO_LARGE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a',1,'error-types.h']]],
+  ['guac_5fstatus_5finternal_5ferror',['GUAC_STATUS_INTERNAL_ERROR',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab',1,'error-types.h']]],
+  ['guac_5fstatus_5finvalid_5fargument',['GUAC_STATUS_INVALID_ARGUMENT',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4',1,'error-types.h']]],
+  ['guac_5fstatus_5fio_5ferror',['GUAC_STATUS_IO_ERROR',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a',1,'error-types.h']]],
+  ['guac_5fstatus_5fno_5fmemory',['GUAC_STATUS_NO_MEMORY',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a',1,'error-types.h']]],
+  ['guac_5fstatus_5fno_5fspace',['GUAC_STATUS_NO_SPACE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5favailable',['GUAC_STATUS_NOT_AVAILABLE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5ffound',['GUAC_STATUS_NOT_FOUND',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5finplemented',['GUAC_STATUS_NOT_INPLEMENTED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5fsupported',['GUAC_STATUS_NOT_SUPPORTED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e',1,'error-types.h']]],
+  ['guac_5fstatus_5fout_5fof_5frange',['GUAC_STATUS_OUT_OF_RANGE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4',1,'error-types.h']]],
+  ['guac_5fstatus_5fpermission_5fdenied',['GUAC_STATUS_PERMISSION_DENIED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740',1,'error-types.h']]],
+  ['guac_5fstatus_5fprotocol_5ferror',['GUAC_STATUS_PROTOCOL_ERROR',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787',1,'error-types.h']]],
+  ['guac_5fstatus_5frefused',['GUAC_STATUS_REFUSED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7',1,'error-types.h']]],
+  ['guac_5fstatus_5fresult_5ftoo_5flarge',['GUAC_STATUS_RESULT_TOO_LARGE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d',1,'error-types.h']]],
+  ['guac_5fstatus_5fsee_5ferrno',['GUAC_STATUS_SEE_ERRNO',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7',1,'error-types.h']]],
+  ['guac_5fstatus_5fstring',['guac_status_string',['../error_8h.html#a39a2290527ea7c3f0acb07f002c397b1',1,'error.h']]],
+  ['guac_5fstatus_5fsuccess',['GUAC_STATUS_SUCCESS',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3',1,'error-types.h']]],
+  ['guac_5fstatus_5ftimeout',['GUAC_STATUS_TIMEOUT',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3',1,'error-types.h']]],
+  ['guac_5fstatus_5ftoo_5fmany',['GUAC_STATUS_TOO_MANY',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546',1,'error-types.h']]],
+  ['guac_5fstatus_5ftry_5fagain',['GUAC_STATUS_TRY_AGAIN',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a',1,'error-types.h']]],
+  ['guac_5fstatus_5fwould_5fblock',['GUAC_STATUS_WOULD_BLOCK',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f',1,'error-types.h']]],
+  ['guac_5fstream',['guac_stream',['../structguac__stream.html',1,'']]],
+  ['guac_5fstrlcat',['guac_strlcat',['../string_8h.html#a0dccfb28be71414fb2a4b1b641799f57',1,'string.h']]],
+  ['guac_5fstrlcpy',['guac_strlcpy',['../string_8h.html#add551909cdd14d762106832a800a5e16',1,'string.h']]],
+  ['guac_5fstrljoin',['guac_strljoin',['../string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f',1,'string.h']]],
+  ['guac_5fsurface_5fcmp',['guac_surface_cmp',['../hash_8h.html#a377c701a920281a98cbcf0842124aaac',1,'hash.h']]],
+  ['guac_5ftimestamp',['guac_timestamp',['../timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea',1,'timestamp-types.h']]],
+  ['guac_5ftimestamp_5fcurrent',['guac_timestamp_current',['../timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719',1,'timestamp.h']]],
+  ['guac_5ftimestamp_5fmsleep',['guac_timestamp_msleep',['../timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868',1,'timestamp.h']]],
+  ['guac_5ftransfer_5ffunction',['guac_transfer_function',['../protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff',1,'protocol-types.h']]],
+  ['guac_5fuser',['guac_user',['../structguac__user.html',1,'']]],
+  ['guac_5fuser_5fabort',['guac_user_abort',['../user_8h.html#a0eff54a869374e37237b2006ad77b958',1,'user.h']]],
+  ['guac_5fuser_5fack_5fhandler',['guac_user_ack_handler',['../user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09',1,'user-fntypes.h']]],
+  ['guac_5fuser_5falloc',['guac_user_alloc',['../user_8h.html#a586cd1d712dce0db02d57684ddcb02ef',1,'user.h']]],
+  ['guac_5fuser_5falloc_5fobject',['guac_user_alloc_object',['../user_8h.html#a6fa98ba49213d610491248cf085aaf56',1,'user.h']]],
+  ['guac_5fuser_5falloc_5fstream',['guac_user_alloc_stream',['../user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c',1,'user.h']]],
+  ['guac_5fuser_5fargv_5fhandler',['guac_user_argv_handler',['../user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a',1,'user-fntypes.h']]],
+  ['guac_5fuser_5faudio_5fhandler',['guac_user_audio_handler',['../user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fblob_5fhandler',['guac_user_blob_handler',['../user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fcallback',['guac_user_callback',['../user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fclipboard_5fhandler',['guac_user_clipboard_handler',['../user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fclosed_5fstream_5findex',['GUAC_USER_CLOSED_STREAM_INDEX',['../user-constants_8h.html#a8749ef8d1917591b82b7747edc85d275',1,'user-constants.h']]],
+  ['guac_5fuser_5fend_5fhandler',['guac_user_end_handler',['../user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca',1,'user-fntypes.h']]],
+  ['guac_5fuser_5ffile_5fhandler',['guac_user_file_handler',['../user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e',1,'user-fntypes.h']]],
+  ['guac_5fuser_5ffree',['guac_user_free',['../user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8',1,'user.h']]],
+  ['guac_5fuser_5ffree_5fobject',['guac_user_free_object',['../user_8h.html#acf92065fb6bbc92f9794ea50255acdb9',1,'user.h']]],
+  ['guac_5fuser_5ffree_5fstream',['guac_user_free_stream',['../user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4',1,'user.h']]],
+  ['guac_5fuser_5fget_5fhandler',['guac_user_get_handler',['../user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fhandle_5fconnection',['guac_user_handle_connection',['../user_8h.html#a28f08ab54f138796dea4655ef54526fe',1,'user.h']]],
+  ['guac_5fuser_5fhandle_5finstruction',['guac_user_handle_instruction',['../user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78',1,'user.h']]],
+  ['guac_5fuser_5fid_5fprefix',['GUAC_USER_ID_PREFIX',['../user-constants_8h.html#aa6442383e07f6aa68fbe504037101a87',1,'user-constants.h']]],
+  ['guac_5fuser_5finfo',['guac_user_info',['../structguac__user__info.html',1,'']]],
+  ['guac_5fuser_5fjoin_5fhandler',['guac_user_join_handler',['../user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fkey_5fhandler',['guac_user_key_handler',['../user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fleave_5fhandler',['guac_user_leave_handler',['../user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8',1,'user-fntypes.h']]],
+  ['guac_5fuser_5flog',['guac_user_log',['../user_8h.html#ab19481d0800901190d3d734eae466151',1,'user.h']]],
+  ['guac_5fuser_5fmax_5fobjects',['GUAC_USER_MAX_OBJECTS',['../user-constants_8h.html#afbdfab527f553d531ce690cabd4ae1e7',1,'user-constants.h']]],
+  ['guac_5fuser_5fmax_5fstreams',['GUAC_USER_MAX_STREAMS',['../user-constants_8h.html#a9e0884fe25345c84beac1c5a13b1c5ce',1,'user-constants.h']]],
+  ['guac_5fuser_5fmouse_5fhandler',['guac_user_mouse_handler',['../user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fobject_5froot_5fname',['GUAC_USER_OBJECT_ROOT_NAME',['../user-constants_8h.html#acb353db4f79b67678376bb521db182e5',1,'user-constants.h']]],
+  ['guac_5fuser_5fparse_5fargs_5fboolean',['guac_user_parse_args_boolean',['../user_8h.html#a5f0bae838d82357e95e98769f7b98cd2',1,'user.h']]],
+  ['guac_5fuser_5fparse_5fargs_5fint',['guac_user_parse_args_int',['../user_8h.html#a08f6fd4d84de665487a45fb324dc8844',1,'user.h']]],
+  ['guac_5fuser_5fparse_5fargs_5fstring',['guac_user_parse_args_string',['../user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f',1,'user.h']]],
+  ['guac_5fuser_5fpipe_5fhandler',['guac_user_pipe_handler',['../user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fput_5fhandler',['guac_user_put_handler',['../user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fsize_5fhandler',['guac_user_size_handler',['../user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fstop',['guac_user_stop',['../user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fargv',['guac_user_stream_argv',['../user_8h.html#aa3f85461f15abfb46fd7c732538b33ea',1,'user.h']]],
+  ['guac_5fuser_5fstream_5findex_5fmimetype',['GUAC_USER_STREAM_INDEX_MIMETYPE',['../user-constants_8h.html#af3135ba0f5c4cf3099374f612446b490',1,'user-constants.h']]],
+  ['guac_5fuser_5fstream_5fjpeg',['guac_user_stream_jpeg',['../user_8h.html#a6e947ee6996d5711f18d5b785757ccb3',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fpng',['guac_user_stream_png',['../user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fwebp',['guac_user_stream_webp',['../user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8',1,'user.h']]],
+  ['guac_5fuser_5fsupports_5fwebp',['guac_user_supports_webp',['../user_8h.html#a26d186ee6b669c78278124ece46cc8f7',1,'user.h']]],
+  ['guac_5fuser_5fsync_5fhandler',['guac_user_sync_handler',['../user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fundefined_5fobject_5findex',['GUAC_USER_UNDEFINED_OBJECT_INDEX',['../user-constants_8h.html#ae0609bd43bffdfa9ebb8da62f8118c9f',1,'user-constants.h']]],
+  ['guac_5futf8_5fcharsize',['guac_utf8_charsize',['../unicode_8h.html#a423523f1531719c6ab4fafdb02008623',1,'unicode.h']]],
+  ['guac_5futf8_5fread',['guac_utf8_read',['../unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af',1,'unicode.h']]],
+  ['guac_5futf8_5fstrlen',['guac_utf8_strlen',['../unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b',1,'unicode.h']]],
+  ['guac_5futf8_5fwrite',['guac_utf8_write',['../unicode_8h.html#aa49339a4af9952b0b56402825059a2ce',1,'unicode.h']]],
+  ['guacamole_5fprotocol_5fversion',['GUACAMOLE_PROTOCOL_VERSION',['../protocol-constants_8h.html#ab1706e67b56808564438ef853a8d2821',1,'protocol-constants.h']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_7.html b/doc/1.1.0/libguac/search/all_7.html
new file mode 100644
index 0000000..88acd94
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_7.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_7.js b/doc/1.1.0/libguac/search/all_7.js
new file mode 100644
index 0000000..8166d05
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_7.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['hash_2eh',['hash.h',['../hash_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_8.html b/doc/1.1.0/libguac/search/all_8.html
new file mode 100644
index 0000000..b74d5fd
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_8.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_8.js b/doc/1.1.0/libguac/search/all_8.js
new file mode 100644
index 0000000..d615f47
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_8.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['image_5fmimetypes',['image_mimetypes',['../structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345',1,'guac_user_info']]],
+  ['index',['index',['../structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba',1,'guac_layer::index()'],['../structguac__object.html#a643f03695d246bbf73b5c4942755a4b4',1,'guac_object::index()'],['../structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60',1,'guac_stream::index()']]],
+  ['info',['info',['../structguac__user.html#a0120f63e0eb933761666047ed80e483f',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_9.html b/doc/1.1.0/libguac/search/all_9.html
new file mode 100644
index 0000000..95e88dd
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_9.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_9.js b/doc/1.1.0/libguac/search/all_9.js
new file mode 100644
index 0000000..9565ecb
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_9.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['join_5fhandler',['join_handler',['../structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b',1,'guac_audio_encoder::join_handler()'],['../structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3',1,'guac_client::join_handler()']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_a.html b/doc/1.1.0/libguac/search/all_a.html
new file mode 100644
index 0000000..3148a8e
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_a.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_a.js b/doc/1.1.0/libguac/search/all_a.js
new file mode 100644
index 0000000..deb3a4b
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_a.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['key_5fhandler',['key_handler',['../structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_b.html b/doc/1.1.0/libguac/search/all_b.html
new file mode 100644
index 0000000..f2a3c8d
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_b.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_b.js b/doc/1.1.0/libguac/search/all_b.js
new file mode 100644
index 0000000..6c4054d
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_b.js
@@ -0,0 +1,12 @@
+var searchData=
+[
+  ['last_5fframe_5fduration',['last_frame_duration',['../structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060',1,'guac_user']]],
+  ['last_5freceived_5ftimestamp',['last_received_timestamp',['../structguac__user.html#aebdee192ef52dfe8956c776adc65fb16',1,'guac_user']]],
+  ['last_5fsent_5ftimestamp',['last_sent_timestamp',['../structguac__client.html#a0f3069566c7a5ca76ce4369715589dad',1,'guac_client']]],
+  ['last_5fwrite_5ftimestamp',['last_write_timestamp',['../structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51',1,'guac_socket']]],
+  ['layer_2dtypes_2eh',['layer-types.h',['../layer-types_8h.html',1,'']]],
+  ['layer_2eh',['layer.h',['../layer_8h.html',1,'']]],
+  ['leave_5fhandler',['leave_handler',['../structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6',1,'guac_client::leave_handler()'],['../structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f',1,'guac_user::leave_handler()']]],
+  ['lock_5fhandler',['lock_handler',['../structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471',1,'guac_socket']]],
+  ['log_5fhandler',['log_handler',['../structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43',1,'guac_client']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_c.html b/doc/1.1.0/libguac/search/all_c.html
new file mode 100644
index 0000000..6376810
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_c.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_c.js b/doc/1.1.0/libguac/search/all_c.js
new file mode 100644
index 0000000..d27d66d
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_c.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['mimetype',['mimetype',['../structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b',1,'guac_audio_encoder']]],
+  ['min_5fsize',['min_size',['../structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e',1,'guac_pool']]],
+  ['mouse_5fhandler',['mouse_handler',['../structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_d.html b/doc/1.1.0/libguac/search/all_d.html
new file mode 100644
index 0000000..cc52c79
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_d.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_d.js b/doc/1.1.0/libguac/search/all_d.js
new file mode 100644
index 0000000..5df2050
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_d.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['object_2dtypes_2eh',['object-types.h',['../object-types_8h.html',1,'']]],
+  ['object_2eh',['object.h',['../object_8h.html',1,'']]],
+  ['opcode',['opcode',['../structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1',1,'guac_parser']]],
+  ['optimal_5fheight',['optimal_height',['../structguac__user__info.html#a252079af642b62554566e8675dc43354',1,'guac_user_info']]],
+  ['optimal_5fresolution',['optimal_resolution',['../structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7',1,'guac_user_info']]],
+  ['optimal_5fwidth',['optimal_width',['../structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66',1,'guac_user_info']]],
+  ['owner',['owner',['../structguac__user.html#a265180af7291745b2e090ee6fa47cbb8',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_e.html b/doc/1.1.0/libguac/search/all_e.html
new file mode 100644
index 0000000..85b39bd
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_e.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_e.js b/doc/1.1.0/libguac/search/all_e.js
new file mode 100644
index 0000000..f839862
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_e.js
@@ -0,0 +1,16 @@
+var searchData=
+[
+  ['parser_2dconstants_2eh',['parser-constants.h',['../parser-constants_8h.html',1,'']]],
+  ['parser_2dtypes_2eh',['parser-types.h',['../parser-types_8h.html',1,'']]],
+  ['parser_2eh',['parser.h',['../parser_8h.html',1,'']]],
+  ['pipe_5fhandler',['pipe_handler',['../structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3',1,'guac_user']]],
+  ['plugin_2dconstants_2eh',['plugin-constants.h',['../plugin-constants_8h.html',1,'']]],
+  ['plugin_2eh',['plugin.h',['../plugin_8h.html',1,'']]],
+  ['pool_2dtypes_2eh',['pool-types.h',['../pool-types_8h.html',1,'']]],
+  ['pool_2eh',['pool.h',['../pool_8h.html',1,'']]],
+  ['processing_5flag',['processing_lag',['../structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e',1,'guac_user']]],
+  ['protocol_2dconstants_2eh',['protocol-constants.h',['../protocol-constants_8h.html',1,'']]],
+  ['protocol_2dtypes_2eh',['protocol-types.h',['../protocol-types_8h.html',1,'']]],
+  ['protocol_2eh',['protocol.h',['../protocol_8h.html',1,'']]],
+  ['put_5fhandler',['put_handler',['../structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6',1,'guac_object::put_handler()'],['../structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3',1,'guac_user::put_handler()']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_f.html b/doc/1.1.0/libguac/search/all_f.html
new file mode 100644
index 0000000..89fa15a
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_f.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_f.js b/doc/1.1.0/libguac/search/all_f.js
new file mode 100644
index 0000000..3b14e0a
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_f.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['rate',['rate',['../structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9',1,'guac_audio_stream']]],
+  ['read_5fhandler',['read_handler',['../structguac__socket.html#a10042a8e591737aec8d4db5a3423b250',1,'guac_socket']]]
+];
diff --git a/doc/1.1.0/libguac/search/classes_0.html b/doc/1.1.0/libguac/search/classes_0.html
new file mode 100644
index 0000000..e935fdf
--- /dev/null
+++ b/doc/1.1.0/libguac/search/classes_0.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/classes_0.js b/doc/1.1.0/libguac/search/classes_0.js
new file mode 100644
index 0000000..3663608
--- /dev/null
+++ b/doc/1.1.0/libguac/search/classes_0.js
@@ -0,0 +1,16 @@
+var searchData=
+[
+  ['guac_5faudio_5fencoder',['guac_audio_encoder',['../structguac__audio__encoder.html',1,'']]],
+  ['guac_5faudio_5fstream',['guac_audio_stream',['../structguac__audio__stream.html',1,'']]],
+  ['guac_5fclient',['guac_client',['../structguac__client.html',1,'']]],
+  ['guac_5flayer',['guac_layer',['../structguac__layer.html',1,'']]],
+  ['guac_5fobject',['guac_object',['../structguac__object.html',1,'']]],
+  ['guac_5fparser',['guac_parser',['../structguac__parser.html',1,'']]],
+  ['guac_5fpool',['guac_pool',['../structguac__pool.html',1,'']]],
+  ['guac_5fpool_5fint',['guac_pool_int',['../structguac__pool__int.html',1,'']]],
+  ['guac_5fsocket',['guac_socket',['../structguac__socket.html',1,'']]],
+  ['guac_5fsocket_5fssl_5fdata',['guac_socket_ssl_data',['../structguac__socket__ssl__data.html',1,'']]],
+  ['guac_5fstream',['guac_stream',['../structguac__stream.html',1,'']]],
+  ['guac_5fuser',['guac_user',['../structguac__user.html',1,'']]],
+  ['guac_5fuser_5finfo',['guac_user_info',['../structguac__user__info.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/close.png b/doc/1.1.0/libguac/search/close.png
new file mode 100644
index 0000000..9342d3d
--- /dev/null
+++ b/doc/1.1.0/libguac/search/close.png
Binary files differ
diff --git a/doc/1.1.0/libguac/search/defines_0.html b/doc/1.1.0/libguac/search/defines_0.html
new file mode 100644
index 0000000..3bffafa
--- /dev/null
+++ b/doc/1.1.0/libguac/search/defines_0.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="defines_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/defines_0.js b/doc/1.1.0/libguac/search/defines_0.js
new file mode 100644
index 0000000..2a7254a
--- /dev/null
+++ b/doc/1.1.0/libguac/search/defines_0.js
@@ -0,0 +1,32 @@
+var searchData=
+[
+  ['guac_5fbuffer_5fpool_5finitial_5fsize',['GUAC_BUFFER_POOL_INITIAL_SIZE',['../client-constants_8h.html#aa8a296e1032ff408ab141b0765fb9bfb',1,'client-constants.h']]],
+  ['guac_5fclient_5fclosed_5fstream_5findex',['GUAC_CLIENT_CLOSED_STREAM_INDEX',['../client-constants_8h.html#a6fda25106c4c454c22db2c7e042ee142',1,'client-constants.h']]],
+  ['guac_5fclient_5fid_5fprefix',['GUAC_CLIENT_ID_PREFIX',['../client-constants_8h.html#a8e2b48136e5c358e012a1558d5e5f0c2',1,'client-constants.h']]],
+  ['guac_5fclient_5fmax_5fstreams',['GUAC_CLIENT_MAX_STREAMS',['../client-constants_8h.html#ad9f977643c5ffee5c1eeb426664796a1',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fleft',['GUAC_CLIENT_MOUSE_LEFT',['../client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fmiddle',['GUAC_CLIENT_MOUSE_MIDDLE',['../client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fright',['GUAC_CLIENT_MOUSE_RIGHT',['../client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fscroll_5fdown',['GUAC_CLIENT_MOUSE_SCROLL_DOWN',['../client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fscroll_5fup',['GUAC_CLIENT_MOUSE_SCROLL_UP',['../client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d',1,'client-constants.h']]],
+  ['guac_5ferror',['guac_error',['../error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07',1,'guac_error():&#160;error.h'],['../error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07',1,'guac_error():&#160;error.h']]],
+  ['guac_5ferror_5fmessage',['guac_error_message',['../error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd',1,'guac_error_message():&#160;error.h'],['../error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd',1,'guac_error_message():&#160;error.h']]],
+  ['guac_5finstruction_5fmax_5fdigits',['GUAC_INSTRUCTION_MAX_DIGITS',['../parser-constants_8h.html#a408e5069154be109ad3dcf45cbc0b00f',1,'parser-constants.h']]],
+  ['guac_5finstruction_5fmax_5felements',['GUAC_INSTRUCTION_MAX_ELEMENTS',['../parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46',1,'parser-constants.h']]],
+  ['guac_5finstruction_5fmax_5flength',['GUAC_INSTRUCTION_MAX_LENGTH',['../parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744',1,'parser-constants.h']]],
+  ['guac_5fprotocol_5fblob_5fmax_5flength',['GUAC_PROTOCOL_BLOB_MAX_LENGTH',['../protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166',1,'protocol-constants.h']]],
+  ['guac_5fprotocol_5flibrary_5flimit',['GUAC_PROTOCOL_LIBRARY_LIMIT',['../plugin-constants_8h.html#a03c00580f4455d35c1ed33ed4dcfe2fe',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5flibrary_5fprefix',['GUAC_PROTOCOL_LIBRARY_PREFIX',['../plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5flibrary_5fsuffix',['GUAC_PROTOCOL_LIBRARY_SUFFIX',['../plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5fname_5flimit',['GUAC_PROTOCOL_NAME_LIMIT',['../plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621',1,'plugin-constants.h']]],
+  ['guac_5fsocket_5fkeep_5falive_5finterval',['GUAC_SOCKET_KEEP_ALIVE_INTERVAL',['../socket-constants_8h.html#aa8820e76e3d3471bdc8771591ebf29f7',1,'socket-constants.h']]],
+  ['guac_5fsocket_5foutput_5fbuffer_5fsize',['GUAC_SOCKET_OUTPUT_BUFFER_SIZE',['../socket-constants_8h.html#af93053e27466c566624301d7b32a68c3',1,'socket-constants.h']]],
+  ['guac_5fuser_5fclosed_5fstream_5findex',['GUAC_USER_CLOSED_STREAM_INDEX',['../user-constants_8h.html#a8749ef8d1917591b82b7747edc85d275',1,'user-constants.h']]],
+  ['guac_5fuser_5fid_5fprefix',['GUAC_USER_ID_PREFIX',['../user-constants_8h.html#aa6442383e07f6aa68fbe504037101a87',1,'user-constants.h']]],
+  ['guac_5fuser_5fmax_5fobjects',['GUAC_USER_MAX_OBJECTS',['../user-constants_8h.html#afbdfab527f553d531ce690cabd4ae1e7',1,'user-constants.h']]],
+  ['guac_5fuser_5fmax_5fstreams',['GUAC_USER_MAX_STREAMS',['../user-constants_8h.html#a9e0884fe25345c84beac1c5a13b1c5ce',1,'user-constants.h']]],
+  ['guac_5fuser_5fobject_5froot_5fname',['GUAC_USER_OBJECT_ROOT_NAME',['../user-constants_8h.html#acb353db4f79b67678376bb521db182e5',1,'user-constants.h']]],
+  ['guac_5fuser_5fstream_5findex_5fmimetype',['GUAC_USER_STREAM_INDEX_MIMETYPE',['../user-constants_8h.html#af3135ba0f5c4cf3099374f612446b490',1,'user-constants.h']]],
+  ['guac_5fuser_5fundefined_5fobject_5findex',['GUAC_USER_UNDEFINED_OBJECT_INDEX',['../user-constants_8h.html#ae0609bd43bffdfa9ebb8da62f8118c9f',1,'user-constants.h']]],
+  ['guacamole_5fprotocol_5fversion',['GUACAMOLE_PROTOCOL_VERSION',['../protocol-constants_8h.html#ab1706e67b56808564438ef853a8d2821',1,'protocol-constants.h']]]
+];
diff --git a/doc/1.1.0/libguac/search/enums_0.html b/doc/1.1.0/libguac/search/enums_0.html
new file mode 100644
index 0000000..9efcd1b
--- /dev/null
+++ b/doc/1.1.0/libguac/search/enums_0.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enums_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/enums_0.js b/doc/1.1.0/libguac/search/enums_0.js
new file mode 100644
index 0000000..983a355
--- /dev/null
+++ b/doc/1.1.0/libguac/search/enums_0.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+  ['guac_5fclient_5flog_5flevel',['guac_client_log_level',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727',1,'client-types.h']]],
+  ['guac_5fclient_5fstate',['guac_client_state',['../client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b',1,'client-types.h']]],
+  ['guac_5fcomposite_5fmode',['guac_composite_mode',['../protocol-types_8h.html#a93612063886db58071d02b5393abf186',1,'protocol-types.h']]],
+  ['guac_5fline_5fcap_5fstyle',['guac_line_cap_style',['../protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc',1,'protocol-types.h']]],
+  ['guac_5fline_5fjoin_5fstyle',['guac_line_join_style',['../protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1',1,'protocol-types.h']]],
+  ['guac_5fparse_5fstate',['guac_parse_state',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30',1,'parser-types.h']]],
+  ['guac_5fprotocol_5fstatus',['guac_protocol_status',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2',1,'protocol-types.h']]],
+  ['guac_5fsocket_5fstate',['guac_socket_state',['../socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939',1,'socket-types.h']]],
+  ['guac_5fstatus',['guac_status',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86',1,'error-types.h']]],
+  ['guac_5ftransfer_5ffunction',['guac_transfer_function',['../protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff',1,'protocol-types.h']]]
+];
diff --git a/doc/1.1.0/libguac/search/enumvalues_0.html b/doc/1.1.0/libguac/search/enumvalues_0.html
new file mode 100644
index 0000000..03fdfad
--- /dev/null
+++ b/doc/1.1.0/libguac/search/enumvalues_0.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/enumvalues_0.js b/doc/1.1.0/libguac/search/enumvalues_0.js
new file mode 100644
index 0000000..62c0fa2
--- /dev/null
+++ b/doc/1.1.0/libguac/search/enumvalues_0.js
@@ -0,0 +1,61 @@
+var searchData=
+[
+  ['guac_5fclient_5frunning',['GUAC_CLIENT_RUNNING',['../client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0',1,'client-types.h']]],
+  ['guac_5fclient_5fstopping',['GUAC_CLIENT_STOPPING',['../client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd',1,'client-types.h']]],
+  ['guac_5flog_5fdebug',['GUAC_LOG_DEBUG',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b',1,'client-types.h']]],
+  ['guac_5flog_5ferror',['GUAC_LOG_ERROR',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c',1,'client-types.h']]],
+  ['guac_5flog_5finfo',['GUAC_LOG_INFO',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29',1,'client-types.h']]],
+  ['guac_5flog_5ftrace',['GUAC_LOG_TRACE',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb',1,'client-types.h']]],
+  ['guac_5flog_5fwarning',['GUAC_LOG_WARNING',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be',1,'client-types.h']]],
+  ['guac_5fparse_5fcomplete',['GUAC_PARSE_COMPLETE',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf',1,'parser-types.h']]],
+  ['guac_5fparse_5fcontent',['GUAC_PARSE_CONTENT',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e',1,'parser-types.h']]],
+  ['guac_5fparse_5ferror',['GUAC_PARSE_ERROR',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc',1,'parser-types.h']]],
+  ['guac_5fparse_5flength',['GUAC_PARSE_LENGTH',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc',1,'parser-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5fbad_5frequest',['GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5fbad_5ftype',['GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5fforbidden',['GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5foverrun',['GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5ftimeout',['GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5ftoo_5fmany',['GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5funauthorized',['GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fresource_5fclosed',['GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fresource_5fconflict',['GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fresource_5fnot_5ffound',['GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fserver_5fbusy',['GUAC_PROTOCOL_STATUS_SERVER_BUSY',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fserver_5ferror',['GUAC_PROTOCOL_STATUS_SERVER_ERROR',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsession_5fclosed',['GUAC_PROTOCOL_STATUS_SESSION_CLOSED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsession_5fconflict',['GUAC_PROTOCOL_STATUS_SESSION_CONFLICT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsession_5ftimeout',['GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsuccess',['GUAC_PROTOCOL_STATUS_SUCCESS',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5funsupported',['GUAC_PROTOCOL_STATUS_UNSUPPORTED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5ferror',['GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5fnot_5ffound',['GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5ftimeout',['GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5funavailable',['GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814',1,'protocol-types.h']]],
+  ['guac_5fsocket_5fclosed',['GUAC_SOCKET_CLOSED',['../socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e',1,'socket-types.h']]],
+  ['guac_5fsocket_5fopen',['GUAC_SOCKET_OPEN',['../socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5',1,'socket-types.h']]],
+  ['guac_5fstatus_5fbusy',['GUAC_STATUS_BUSY',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55',1,'error-types.h']]],
+  ['guac_5fstatus_5fcanceled',['GUAC_STATUS_CANCELED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c',1,'error-types.h']]],
+  ['guac_5fstatus_5fclosed',['GUAC_STATUS_CLOSED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff',1,'error-types.h']]],
+  ['guac_5fstatus_5finput_5ftoo_5flarge',['GUAC_STATUS_INPUT_TOO_LARGE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a',1,'error-types.h']]],
+  ['guac_5fstatus_5finternal_5ferror',['GUAC_STATUS_INTERNAL_ERROR',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab',1,'error-types.h']]],
+  ['guac_5fstatus_5finvalid_5fargument',['GUAC_STATUS_INVALID_ARGUMENT',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4',1,'error-types.h']]],
+  ['guac_5fstatus_5fio_5ferror',['GUAC_STATUS_IO_ERROR',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a',1,'error-types.h']]],
+  ['guac_5fstatus_5fno_5fmemory',['GUAC_STATUS_NO_MEMORY',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a',1,'error-types.h']]],
+  ['guac_5fstatus_5fno_5fspace',['GUAC_STATUS_NO_SPACE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5favailable',['GUAC_STATUS_NOT_AVAILABLE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5ffound',['GUAC_STATUS_NOT_FOUND',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5finplemented',['GUAC_STATUS_NOT_INPLEMENTED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5fsupported',['GUAC_STATUS_NOT_SUPPORTED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e',1,'error-types.h']]],
+  ['guac_5fstatus_5fout_5fof_5frange',['GUAC_STATUS_OUT_OF_RANGE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4',1,'error-types.h']]],
+  ['guac_5fstatus_5fpermission_5fdenied',['GUAC_STATUS_PERMISSION_DENIED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740',1,'error-types.h']]],
+  ['guac_5fstatus_5fprotocol_5ferror',['GUAC_STATUS_PROTOCOL_ERROR',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787',1,'error-types.h']]],
+  ['guac_5fstatus_5frefused',['GUAC_STATUS_REFUSED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7',1,'error-types.h']]],
+  ['guac_5fstatus_5fresult_5ftoo_5flarge',['GUAC_STATUS_RESULT_TOO_LARGE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d',1,'error-types.h']]],
+  ['guac_5fstatus_5fsee_5ferrno',['GUAC_STATUS_SEE_ERRNO',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7',1,'error-types.h']]],
+  ['guac_5fstatus_5fsuccess',['GUAC_STATUS_SUCCESS',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3',1,'error-types.h']]],
+  ['guac_5fstatus_5ftimeout',['GUAC_STATUS_TIMEOUT',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3',1,'error-types.h']]],
+  ['guac_5fstatus_5ftoo_5fmany',['GUAC_STATUS_TOO_MANY',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546',1,'error-types.h']]],
+  ['guac_5fstatus_5ftry_5fagain',['GUAC_STATUS_TRY_AGAIN',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a',1,'error-types.h']]],
+  ['guac_5fstatus_5fwould_5fblock',['GUAC_STATUS_WOULD_BLOCK',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f',1,'error-types.h']]]
+];
diff --git a/doc/1.1.0/libguac/search/files_0.html b/doc/1.1.0/libguac/search/files_0.html
new file mode 100644
index 0000000..49606c8
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_0.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/files_0.js b/doc/1.1.0/libguac/search/files_0.js
new file mode 100644
index 0000000..a084939
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_0.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['audio_2dfntypes_2eh',['audio-fntypes.h',['../audio-fntypes_8h.html',1,'']]],
+  ['audio_2dtypes_2eh',['audio-types.h',['../audio-types_8h.html',1,'']]],
+  ['audio_2eh',['audio.h',['../audio_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/files_1.html b/doc/1.1.0/libguac/search/files_1.html
new file mode 100644
index 0000000..c887174
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_1.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/files_1.js b/doc/1.1.0/libguac/search/files_1.js
new file mode 100644
index 0000000..3aea380
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_1.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['client_2dconstants_2eh',['client-constants.h',['../client-constants_8h.html',1,'']]],
+  ['client_2dfntypes_2eh',['client-fntypes.h',['../client-fntypes_8h.html',1,'']]],
+  ['client_2dtypes_2eh',['client-types.h',['../client-types_8h.html',1,'']]],
+  ['client_2eh',['client.h',['../client_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/files_2.html b/doc/1.1.0/libguac/search/files_2.html
new file mode 100644
index 0000000..99bdf21
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_2.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/files_2.js b/doc/1.1.0/libguac/search/files_2.js
new file mode 100644
index 0000000..e8f70f3
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_2.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['error_2dtypes_2eh',['error-types.h',['../error-types_8h.html',1,'']]],
+  ['error_2eh',['error.h',['../error_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/files_3.html b/doc/1.1.0/libguac/search/files_3.html
new file mode 100644
index 0000000..f8e543a
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_3.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/files_3.js b/doc/1.1.0/libguac/search/files_3.js
new file mode 100644
index 0000000..8166d05
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['hash_2eh',['hash.h',['../hash_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/files_4.html b/doc/1.1.0/libguac/search/files_4.html
new file mode 100644
index 0000000..2ebb46c
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_4.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/files_4.js b/doc/1.1.0/libguac/search/files_4.js
new file mode 100644
index 0000000..82063af
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_4.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['layer_2dtypes_2eh',['layer-types.h',['../layer-types_8h.html',1,'']]],
+  ['layer_2eh',['layer.h',['../layer_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/files_5.html b/doc/1.1.0/libguac/search/files_5.html
new file mode 100644
index 0000000..268b7eb
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_5.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/files_5.js b/doc/1.1.0/libguac/search/files_5.js
new file mode 100644
index 0000000..1a05a51
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_5.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['object_2dtypes_2eh',['object-types.h',['../object-types_8h.html',1,'']]],
+  ['object_2eh',['object.h',['../object_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/files_6.html b/doc/1.1.0/libguac/search/files_6.html
new file mode 100644
index 0000000..98fc666
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_6.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/files_6.js b/doc/1.1.0/libguac/search/files_6.js
new file mode 100644
index 0000000..0fd2033
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_6.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+  ['parser_2dconstants_2eh',['parser-constants.h',['../parser-constants_8h.html',1,'']]],
+  ['parser_2dtypes_2eh',['parser-types.h',['../parser-types_8h.html',1,'']]],
+  ['parser_2eh',['parser.h',['../parser_8h.html',1,'']]],
+  ['plugin_2dconstants_2eh',['plugin-constants.h',['../plugin-constants_8h.html',1,'']]],
+  ['plugin_2eh',['plugin.h',['../plugin_8h.html',1,'']]],
+  ['pool_2dtypes_2eh',['pool-types.h',['../pool-types_8h.html',1,'']]],
+  ['pool_2eh',['pool.h',['../pool_8h.html',1,'']]],
+  ['protocol_2dconstants_2eh',['protocol-constants.h',['../protocol-constants_8h.html',1,'']]],
+  ['protocol_2dtypes_2eh',['protocol-types.h',['../protocol-types_8h.html',1,'']]],
+  ['protocol_2eh',['protocol.h',['../protocol_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/files_7.html b/doc/1.1.0/libguac/search/files_7.html
new file mode 100644
index 0000000..49507de
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_7.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/files_7.js b/doc/1.1.0/libguac/search/files_7.js
new file mode 100644
index 0000000..424cb65
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_7.js
@@ -0,0 +1,12 @@
+var searchData=
+[
+  ['socket_2dconstants_2eh',['socket-constants.h',['../socket-constants_8h.html',1,'']]],
+  ['socket_2dfntypes_2eh',['socket-fntypes.h',['../socket-fntypes_8h.html',1,'']]],
+  ['socket_2dssl_2eh',['socket-ssl.h',['../socket-ssl_8h.html',1,'']]],
+  ['socket_2dtypes_2eh',['socket-types.h',['../socket-types_8h.html',1,'']]],
+  ['socket_2dwsa_2eh',['socket-wsa.h',['../socket-wsa_8h.html',1,'']]],
+  ['socket_2eh',['socket.h',['../socket_8h.html',1,'']]],
+  ['stream_2dtypes_2eh',['stream-types.h',['../stream-types_8h.html',1,'']]],
+  ['stream_2eh',['stream.h',['../stream_8h.html',1,'']]],
+  ['string_2eh',['string.h',['../string_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/files_8.html b/doc/1.1.0/libguac/search/files_8.html
new file mode 100644
index 0000000..12c6630
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_8.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/files_8.js b/doc/1.1.0/libguac/search/files_8.js
new file mode 100644
index 0000000..dccf3b3
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_8.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['timestamp_2dtypes_2eh',['timestamp-types.h',['../timestamp-types_8h.html',1,'']]],
+  ['timestamp_2eh',['timestamp.h',['../timestamp_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/files_9.html b/doc/1.1.0/libguac/search/files_9.html
new file mode 100644
index 0000000..cabcae2
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_9.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/files_9.js b/doc/1.1.0/libguac/search/files_9.js
new file mode 100644
index 0000000..2eb6891
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_9.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+  ['unicode_2eh',['unicode.h',['../unicode_8h.html',1,'']]],
+  ['user_2dconstants_2eh',['user-constants.h',['../user-constants_8h.html',1,'']]],
+  ['user_2dfntypes_2eh',['user-fntypes.h',['../user-fntypes_8h.html',1,'']]],
+  ['user_2dtypes_2eh',['user-types.h',['../user-types_8h.html',1,'']]],
+  ['user_2eh',['user.h',['../user_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/functions_0.html b/doc/1.1.0/libguac/search/functions_0.html
new file mode 100644
index 0000000..0539c8c
--- /dev/null
+++ b/doc/1.1.0/libguac/search/functions_0.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/functions_0.js b/doc/1.1.0/libguac/search/functions_0.js
new file mode 100644
index 0000000..315c44b
--- /dev/null
+++ b/doc/1.1.0/libguac/search/functions_0.js
@@ -0,0 +1,147 @@
+var searchData=
+[
+  ['guac_5faudio_5fstream_5fadd_5fuser',['guac_audio_stream_add_user',['../audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5falloc',['guac_audio_stream_alloc',['../audio_8h.html#afc1fc0133504e718edf4756fac5e9c30',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5fflush',['guac_audio_stream_flush',['../audio_8h.html#af75feccacea2b14ee946064cf623f143',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5ffree',['guac_audio_stream_free',['../audio_8h.html#adcc872292b5ba6c39905610b2bccbf31',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5freset',['guac_audio_stream_reset',['../audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5fwrite_5fpcm',['guac_audio_stream_write_pcm',['../audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2',1,'audio.h']]],
+  ['guac_5fclient_5fabort',['guac_client_abort',['../client_8h.html#a62a29f7820deaff00a10ec79aa81aed4',1,'client.h']]],
+  ['guac_5fclient_5fadd_5fuser',['guac_client_add_user',['../client_8h.html#af66d105dfd1453ec46b423e6b25fa371',1,'client.h']]],
+  ['guac_5fclient_5falloc',['guac_client_alloc',['../client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a',1,'client.h']]],
+  ['guac_5fclient_5falloc_5fbuffer',['guac_client_alloc_buffer',['../client_8h.html#af661d3fedd9683631bdc7d1e3205e379',1,'client.h']]],
+  ['guac_5fclient_5falloc_5flayer',['guac_client_alloc_layer',['../client_8h.html#a2085758db585bb9d09d3860ec0fc9587',1,'client.h']]],
+  ['guac_5fclient_5falloc_5fstream',['guac_client_alloc_stream',['../client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9',1,'client.h']]],
+  ['guac_5fclient_5fend_5fframe',['guac_client_end_frame',['../client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc',1,'client.h']]],
+  ['guac_5fclient_5ffor_5fowner',['guac_client_for_owner',['../client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a',1,'client.h']]],
+  ['guac_5fclient_5ffor_5fuser',['guac_client_for_user',['../client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03',1,'client.h']]],
+  ['guac_5fclient_5fforeach_5fuser',['guac_client_foreach_user',['../client_8h.html#af652f3db0f89d488cef6d90f612a2077',1,'client.h']]],
+  ['guac_5fclient_5ffree',['guac_client_free',['../client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427',1,'client.h']]],
+  ['guac_5fclient_5ffree_5fbuffer',['guac_client_free_buffer',['../client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b',1,'client.h']]],
+  ['guac_5fclient_5ffree_5flayer',['guac_client_free_layer',['../client_8h.html#a4e5b374211012d1897792335112dcb89',1,'client.h']]],
+  ['guac_5fclient_5ffree_5fstream',['guac_client_free_stream',['../client_8h.html#af0103a5aae8ba76badd2e68e827f6782',1,'client.h']]],
+  ['guac_5fclient_5fget_5fprocessing_5flag',['guac_client_get_processing_lag',['../client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c',1,'client.h']]],
+  ['guac_5fclient_5fload_5fplugin',['guac_client_load_plugin',['../client_8h.html#afa2b90d686c56cf753c36718ec085f35',1,'client.h']]],
+  ['guac_5fclient_5flog',['guac_client_log',['../client_8h.html#ad53666bbe29346497cabb04fc9628208',1,'client.h']]],
+  ['guac_5fclient_5fremove_5fuser',['guac_client_remove_user',['../client_8h.html#a02832d5be5330dc3de524b497b7c6dfa',1,'client.h']]],
+  ['guac_5fclient_5fstop',['guac_client_stop',['../client_8h.html#a022d4b5587c84f2963b176ab7999aa1b',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fargv',['guac_client_stream_argv',['../client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fjpeg',['guac_client_stream_jpeg',['../client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fpng',['guac_client_stream_png',['../client_8h.html#a317b9d79afd0b0b473d7d359e0c33750',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fwebp',['guac_client_stream_webp',['../client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e',1,'client.h']]],
+  ['guac_5fclient_5fsupports_5fwebp',['guac_client_supports_webp',['../client_8h.html#a79cc74558e8f64807ea2847fbacd20e3',1,'client.h']]],
+  ['guac_5fhash_5fsurface',['guac_hash_surface',['../hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c',1,'hash.h']]],
+  ['guac_5fparser_5falloc',['guac_parser_alloc',['../parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad',1,'parser.h']]],
+  ['guac_5fparser_5fappend',['guac_parser_append',['../parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d',1,'parser.h']]],
+  ['guac_5fparser_5fexpect',['guac_parser_expect',['../parser_8h.html#ac54c94465aead463ce10e9a090b9b701',1,'parser.h']]],
+  ['guac_5fparser_5ffree',['guac_parser_free',['../parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f',1,'parser.h']]],
+  ['guac_5fparser_5flength',['guac_parser_length',['../parser_8h.html#a8899dd607997fcffd78517947b17760b',1,'parser.h']]],
+  ['guac_5fparser_5fread',['guac_parser_read',['../parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93',1,'parser.h']]],
+  ['guac_5fparser_5fshift',['guac_parser_shift',['../parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3',1,'parser.h']]],
+  ['guac_5fpool_5falloc',['guac_pool_alloc',['../pool_8h.html#a3e7589997fdd734a6d6155badebd042f',1,'pool.h']]],
+  ['guac_5fpool_5ffree',['guac_pool_free',['../pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb',1,'pool.h']]],
+  ['guac_5fpool_5ffree_5fint',['guac_pool_free_int',['../pool_8h.html#ad90069a41689cf319f46af44bb113579',1,'pool.h']]],
+  ['guac_5fpool_5fnext_5fint',['guac_pool_next_int',['../pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4',1,'pool.h']]],
+  ['guac_5fprotocol_5fdecode_5fbase64',['guac_protocol_decode_base64',['../protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fack',['guac_protocol_send_ack',['../protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5farc',['guac_protocol_send_arc',['../protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fargs',['guac_protocol_send_args',['../protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fargv',['guac_protocol_send_argv',['../protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5faudio',['guac_protocol_send_audio',['../protocol_8h.html#ab92edb38a4df2db402a013422cee6b42',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fblob',['guac_protocol_send_blob',['../protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fblobs',['guac_protocol_send_blobs',['../protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fbody',['guac_protocol_send_body',['../protocol_8h.html#aca9fb516e730233c33da297819f7ae7e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcfill',['guac_protocol_send_cfill',['../protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fclip',['guac_protocol_send_clip',['../protocol_8h.html#acbd1869635b752bbf52998613804df00',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fclipboard',['guac_protocol_send_clipboard',['../protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fclose',['guac_protocol_send_close',['../protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fconnect',['guac_protocol_send_connect',['../protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcopy',['guac_protocol_send_copy',['../protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcstroke',['guac_protocol_send_cstroke',['../protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcursor',['guac_protocol_send_cursor',['../protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcurve',['guac_protocol_send_curve',['../protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fdisconnect',['guac_protocol_send_disconnect',['../protocol_8h.html#afd463766036afda4798edbe788d29524',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fdispose',['guac_protocol_send_dispose',['../protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fdistort',['guac_protocol_send_distort',['../protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fend',['guac_protocol_send_end',['../protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ferror',['guac_protocol_send_error',['../protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ffile',['guac_protocol_send_file',['../protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ffilesystem',['guac_protocol_send_filesystem',['../protocol_8h.html#a3779c2287625af70fb001afbcc739da5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fidentity',['guac_protocol_send_identity',['../protocol_8h.html#aac205e52801a875bfbef02ae237b6b15',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fimg',['guac_protocol_send_img',['../protocol_8h.html#afda8074f65d35795203f392f6688163e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fkey',['guac_protocol_send_key',['../protocol_8h.html#a2d276595cea8a2d382240d868487f077',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5flfill',['guac_protocol_send_lfill',['../protocol_8h.html#a9271e3b6cc0030b833d18137969a4018',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fline',['guac_protocol_send_line',['../protocol_8h.html#afac3f57649c20b5e39c484a52d264005',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5flog',['guac_protocol_send_log',['../protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5flstroke',['guac_protocol_send_lstroke',['../protocol_8h.html#a5b7d621d534126e26178789800a1a5d5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fmouse',['guac_protocol_send_mouse',['../protocol_8h.html#a8947056262da2f3263b9851370597622',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fmove',['guac_protocol_send_move',['../protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fname',['guac_protocol_send_name',['../protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fnest',['guac_protocol_send_nest',['../protocol_8h.html#a94efa63c9895383e142a3f7ce559300b',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fnop',['guac_protocol_send_nop',['../protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fpipe',['guac_protocol_send_pipe',['../protocol_8h.html#a18b2c462077b7c51d211f3db09c30292',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fpop',['guac_protocol_send_pop',['../protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fpush',['guac_protocol_send_push',['../protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fready',['guac_protocol_send_ready',['../protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5frect',['guac_protocol_send_rect',['../protocol_8h.html#a42dc3db797b83accd3418b76648adac5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5freset',['guac_protocol_send_reset',['../protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fselect',['guac_protocol_send_select',['../protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fset',['guac_protocol_send_set',['../protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fshade',['guac_protocol_send_shade',['../protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fsize',['guac_protocol_send_size',['../protocol_8h.html#affc4cf09c3337bd860439da99bdfef98',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fstart',['guac_protocol_send_start',['../protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fsync',['guac_protocol_send_sync',['../protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ftransfer',['guac_protocol_send_transfer',['../protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ftransform',['guac_protocol_send_transform',['../protocol_8h.html#a17058795c93be51c82a9df95eca8e62b',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fundefine',['guac_protocol_send_undefine',['../protocol_8h.html#aefa251505e61332e8e1c27ade0478e64',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fvideo',['guac_protocol_send_video',['../protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8',1,'protocol.h']]],
+  ['guac_5fsocket_5falloc',['guac_socket_alloc',['../socket_8h.html#a7e5859b812923b894779f59353fdadb4',1,'socket.h']]],
+  ['guac_5fsocket_5fbroadcast',['guac_socket_broadcast',['../socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6',1,'socket.h']]],
+  ['guac_5fsocket_5fflush',['guac_socket_flush',['../socket_8h.html#ababc834d5812e006b55a79da417bfe12',1,'socket.h']]],
+  ['guac_5fsocket_5fflush_5fbase64',['guac_socket_flush_base64',['../socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab',1,'socket.h']]],
+  ['guac_5fsocket_5ffree',['guac_socket_free',['../socket_8h.html#a376df8efcc02a7104504f104433884ed',1,'socket.h']]],
+  ['guac_5fsocket_5finstruction_5fbegin',['guac_socket_instruction_begin',['../socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1',1,'socket.h']]],
+  ['guac_5fsocket_5finstruction_5fend',['guac_socket_instruction_end',['../socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94',1,'socket.h']]],
+  ['guac_5fsocket_5fnest',['guac_socket_nest',['../socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda',1,'socket.h']]],
+  ['guac_5fsocket_5fopen',['guac_socket_open',['../socket_8h.html#a076f62b9b6082260462e18ca77c64e7a',1,'socket.h']]],
+  ['guac_5fsocket_5fopen_5fsecure',['guac_socket_open_secure',['../socket-ssl_8h.html#afa6689181258a29460b978f1e496f790',1,'socket-ssl.h']]],
+  ['guac_5fsocket_5fopen_5fwsa',['guac_socket_open_wsa',['../socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be',1,'socket-wsa.h']]],
+  ['guac_5fsocket_5fread',['guac_socket_read',['../socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31',1,'socket.h']]],
+  ['guac_5fsocket_5frequire_5fkeep_5falive',['guac_socket_require_keep_alive',['../socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03',1,'socket.h']]],
+  ['guac_5fsocket_5fselect',['guac_socket_select',['../socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7',1,'socket.h']]],
+  ['guac_5fsocket_5ftee',['guac_socket_tee',['../socket_8h.html#add9c80240912b0c8d309cf7de94f5305',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite',['guac_socket_write',['../socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite_5fbase64',['guac_socket_write_base64',['../socket_8h.html#ac7ec68bc42436ba316805718c292c510',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite_5fint',['guac_socket_write_int',['../socket_8h.html#a57a963e37377de2104c2d785980ff400',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite_5fstring',['guac_socket_write_string',['../socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc',1,'socket.h']]],
+  ['guac_5fstatus_5fstring',['guac_status_string',['../error_8h.html#a39a2290527ea7c3f0acb07f002c397b1',1,'error.h']]],
+  ['guac_5fstrlcat',['guac_strlcat',['../string_8h.html#a0dccfb28be71414fb2a4b1b641799f57',1,'string.h']]],
+  ['guac_5fstrlcpy',['guac_strlcpy',['../string_8h.html#add551909cdd14d762106832a800a5e16',1,'string.h']]],
+  ['guac_5fstrljoin',['guac_strljoin',['../string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f',1,'string.h']]],
+  ['guac_5fsurface_5fcmp',['guac_surface_cmp',['../hash_8h.html#a377c701a920281a98cbcf0842124aaac',1,'hash.h']]],
+  ['guac_5ftimestamp_5fcurrent',['guac_timestamp_current',['../timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719',1,'timestamp.h']]],
+  ['guac_5ftimestamp_5fmsleep',['guac_timestamp_msleep',['../timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868',1,'timestamp.h']]],
+  ['guac_5fuser_5fabort',['guac_user_abort',['../user_8h.html#a0eff54a869374e37237b2006ad77b958',1,'user.h']]],
+  ['guac_5fuser_5falloc',['guac_user_alloc',['../user_8h.html#a586cd1d712dce0db02d57684ddcb02ef',1,'user.h']]],
+  ['guac_5fuser_5falloc_5fobject',['guac_user_alloc_object',['../user_8h.html#a6fa98ba49213d610491248cf085aaf56',1,'user.h']]],
+  ['guac_5fuser_5falloc_5fstream',['guac_user_alloc_stream',['../user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c',1,'user.h']]],
+  ['guac_5fuser_5ffree',['guac_user_free',['../user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8',1,'user.h']]],
+  ['guac_5fuser_5ffree_5fobject',['guac_user_free_object',['../user_8h.html#acf92065fb6bbc92f9794ea50255acdb9',1,'user.h']]],
+  ['guac_5fuser_5ffree_5fstream',['guac_user_free_stream',['../user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4',1,'user.h']]],
+  ['guac_5fuser_5fhandle_5fconnection',['guac_user_handle_connection',['../user_8h.html#a28f08ab54f138796dea4655ef54526fe',1,'user.h']]],
+  ['guac_5fuser_5fhandle_5finstruction',['guac_user_handle_instruction',['../user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78',1,'user.h']]],
+  ['guac_5fuser_5flog',['guac_user_log',['../user_8h.html#ab19481d0800901190d3d734eae466151',1,'user.h']]],
+  ['guac_5fuser_5fparse_5fargs_5fboolean',['guac_user_parse_args_boolean',['../user_8h.html#a5f0bae838d82357e95e98769f7b98cd2',1,'user.h']]],
+  ['guac_5fuser_5fparse_5fargs_5fint',['guac_user_parse_args_int',['../user_8h.html#a08f6fd4d84de665487a45fb324dc8844',1,'user.h']]],
+  ['guac_5fuser_5fparse_5fargs_5fstring',['guac_user_parse_args_string',['../user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f',1,'user.h']]],
+  ['guac_5fuser_5fstop',['guac_user_stop',['../user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fargv',['guac_user_stream_argv',['../user_8h.html#aa3f85461f15abfb46fd7c732538b33ea',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fjpeg',['guac_user_stream_jpeg',['../user_8h.html#a6e947ee6996d5711f18d5b785757ccb3',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fpng',['guac_user_stream_png',['../user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fwebp',['guac_user_stream_webp',['../user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8',1,'user.h']]],
+  ['guac_5fuser_5fsupports_5fwebp',['guac_user_supports_webp',['../user_8h.html#a26d186ee6b669c78278124ece46cc8f7',1,'user.h']]],
+  ['guac_5futf8_5fcharsize',['guac_utf8_charsize',['../unicode_8h.html#a423523f1531719c6ab4fafdb02008623',1,'unicode.h']]],
+  ['guac_5futf8_5fread',['guac_utf8_read',['../unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af',1,'unicode.h']]],
+  ['guac_5futf8_5fstrlen',['guac_utf8_strlen',['../unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b',1,'unicode.h']]],
+  ['guac_5futf8_5fwrite',['guac_utf8_write',['../unicode_8h.html#aa49339a4af9952b0b56402825059a2ce',1,'unicode.h']]]
+];
diff --git a/doc/1.1.0/libguac/search/functions_1.html b/doc/1.1.0/libguac/search/functions_1.html
new file mode 100644
index 0000000..4878b3d
--- /dev/null
+++ b/doc/1.1.0/libguac/search/functions_1.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/functions_1.js b/doc/1.1.0/libguac/search/functions_1.js
new file mode 100644
index 0000000..ae1b123
--- /dev/null
+++ b/doc/1.1.0/libguac/search/functions_1.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+  ['vguac_5fclient_5fabort',['vguac_client_abort',['../client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224',1,'client.h']]],
+  ['vguac_5fclient_5flog',['vguac_client_log',['../client_8h.html#a37a0fa9cfc4c02236085e3852972f494',1,'client.h']]],
+  ['vguac_5fprotocol_5fsend_5flog',['vguac_protocol_send_log',['../protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4',1,'protocol.h']]],
+  ['vguac_5fuser_5fabort',['vguac_user_abort',['../user_8h.html#ad8529247b551cb93509236a7f9138dd2',1,'user.h']]],
+  ['vguac_5fuser_5flog',['vguac_user_log',['../user_8h.html#af15509bcb891932a3fa93a142018b95c',1,'user.h']]]
+];
diff --git a/doc/1.1.0/libguac/search/mag_sel.png b/doc/1.1.0/libguac/search/mag_sel.png
new file mode 100644
index 0000000..81f6040
--- /dev/null
+++ b/doc/1.1.0/libguac/search/mag_sel.png
Binary files differ
diff --git a/doc/1.1.0/libguac/search/nomatches.html b/doc/1.1.0/libguac/search/nomatches.html
new file mode 100644
index 0000000..b1ded27
--- /dev/null
+++ b/doc/1.1.0/libguac/search/nomatches.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/pages_0.html b/doc/1.1.0/libguac/search/pages_0.html
new file mode 100644
index 0000000..d752858
--- /dev/null
+++ b/doc/1.1.0/libguac/search/pages_0.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/pages_0.js b/doc/1.1.0/libguac/search/pages_0.js
new file mode 100644
index 0000000..038da54
--- /dev/null
+++ b/doc/1.1.0/libguac/search/pages_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['deprecated_20list',['Deprecated List',['../deprecated.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/search.css b/doc/1.1.0/libguac/search/search.css
new file mode 100644
index 0000000..3cf9df9
--- /dev/null
+++ b/doc/1.1.0/libguac/search/search.css
@@ -0,0 +1,271 @@
+/*---------------- Search Box */
+
+#FSearchBox {
+    float: left;
+}
+
+#MSearchBox {
+    white-space : nowrap;
+    float: none;
+    margin-top: 8px;
+    right: 0px;
+    width: 170px;
+    height: 24px;
+    z-index: 102;
+}
+
+#MSearchBox .left
+{
+    display:block;
+    position:absolute;
+    left:10px;
+    width:20px;
+    height:19px;
+    background:url('search_l.png') no-repeat;
+    background-position:right;
+}
+
+#MSearchSelect {
+    display:block;
+    position:absolute;
+    width:20px;
+    height:19px;
+}
+
+.left #MSearchSelect {
+    left:4px;
+}
+
+.right #MSearchSelect {
+    right:5px;
+}
+
+#MSearchField {
+    display:block;
+    position:absolute;
+    height:19px;
+    background:url('search_m.png') repeat-x;
+    border:none;
+    width:115px;
+    margin-left:20px;
+    padding-left:4px;
+    color: #909090;
+    outline: none;
+    font: 9pt Arial, Verdana, sans-serif;
+    -webkit-border-radius: 0px;
+}
+
+#FSearchBox #MSearchField {
+    margin-left:15px;
+}
+
+#MSearchBox .right {
+    display:block;
+    position:absolute;
+    right:10px;
+    top:8px;
+    width:20px;
+    height:19px;
+    background:url('search_r.png') no-repeat;
+    background-position:left;
+}
+
+#MSearchClose {
+    display: none;
+    position: absolute;
+    top: 4px;
+    background : none;
+    border: none;
+    margin: 0px 4px 0px 0px;
+    padding: 0px 0px;
+    outline: none;
+}
+
+.left #MSearchClose {
+    left: 6px;
+}
+
+.right #MSearchClose {
+    right: 2px;
+}
+
+.MSearchBoxActive #MSearchField {
+    color: #000000;
+}
+
+/*---------------- Search filter selection */
+
+#MSearchSelectWindow {
+    display: none;
+    position: absolute;
+    left: 0; top: 0;
+    border: 1px solid #90A5CE;
+    background-color: #F9FAFC;
+    z-index: 10001;
+    padding-top: 4px;
+    padding-bottom: 4px;
+    -moz-border-radius: 4px;
+    -webkit-border-top-left-radius: 4px;
+    -webkit-border-top-right-radius: 4px;
+    -webkit-border-bottom-left-radius: 4px;
+    -webkit-border-bottom-right-radius: 4px;
+    -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+.SelectItem {
+    font: 8pt Arial, Verdana, sans-serif;
+    padding-left:  2px;
+    padding-right: 12px;
+    border: 0px;
+}
+
+span.SelectionMark {
+    margin-right: 4px;
+    font-family: monospace;
+    outline-style: none;
+    text-decoration: none;
+}
+
+a.SelectItem {
+    display: block;
+    outline-style: none;
+    color: #000000; 
+    text-decoration: none;
+    padding-left:   6px;
+    padding-right: 12px;
+}
+
+a.SelectItem:focus,
+a.SelectItem:active {
+    color: #000000; 
+    outline-style: none;
+    text-decoration: none;
+}
+
+a.SelectItem:hover {
+    color: #FFFFFF;
+    background-color: #3D578C;
+    outline-style: none;
+    text-decoration: none;
+    cursor: pointer;
+    display: block;
+}
+
+/*---------------- Search results window */
+
+iframe#MSearchResults {
+    width: 60ex;
+    height: 15em;
+}
+
+#MSearchResultsWindow {
+    display: none;
+    position: absolute;
+    left: 0; top: 0;
+    border: 1px solid #000;
+    background-color: #EEF1F7;
+    z-index:10000;
+}
+
+/* ----------------------------------- */
+
+
+#SRIndex {
+    clear:both; 
+    padding-bottom: 15px;
+}
+
+.SREntry {
+    font-size: 10pt;
+    padding-left: 1ex;
+}
+
+.SRPage .SREntry {
+    font-size: 8pt;
+    padding: 1px 5px;
+}
+
+body.SRPage {
+    margin: 5px 2px;
+}
+
+.SRChildren {
+    padding-left: 3ex; padding-bottom: .5em 
+}
+
+.SRPage .SRChildren {
+    display: none;
+}
+
+.SRSymbol {
+    font-weight: bold; 
+    color: #425E97;
+    font-family: Arial, Verdana, sans-serif;
+    text-decoration: none;
+    outline: none;
+}
+
+a.SRScope {
+    display: block;
+    color: #425E97; 
+    font-family: Arial, Verdana, sans-serif;
+    text-decoration: none;
+    outline: none;
+}
+
+a.SRSymbol:focus, a.SRSymbol:active,
+a.SRScope:focus, a.SRScope:active {
+    text-decoration: underline;
+}
+
+span.SRScope {
+    padding-left: 4px;
+}
+
+.SRPage .SRStatus {
+    padding: 2px 5px;
+    font-size: 8pt;
+    font-style: italic;
+}
+
+.SRResult {
+    display: none;
+}
+
+DIV.searchresults {
+    margin-left: 10px;
+    margin-right: 10px;
+}
+
+/*---------------- External search page results */
+
+.searchresult {
+    background-color: #F0F3F8;
+}
+
+.pages b {
+   color: white;
+   padding: 5px 5px 3px 5px;
+   background-image: url("../tab_a.png");
+   background-repeat: repeat-x;
+   text-shadow: 0 1px 1px #000000;
+}
+
+.pages {
+    line-height: 17px;
+    margin-left: 4px;
+    text-decoration: none;
+}
+
+.hl {
+    font-weight: bold;
+}
+
+#searchresults {
+    margin-bottom: 20px;
+}
+
+.searchpages {
+    margin-top: 10px;
+}
+
diff --git a/doc/1.1.0/libguac/search/search.js b/doc/1.1.0/libguac/search/search.js
new file mode 100644
index 0000000..a554ab9
--- /dev/null
+++ b/doc/1.1.0/libguac/search/search.js
@@ -0,0 +1,814 @@
+/*
+ @licstart  The following is the entire license notice for the
+ JavaScript code in this file.
+
+ Copyright (C) 1997-2017 by Dimitri van Heesch
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ @licend  The above is the entire license notice
+ for the JavaScript code in this file
+ */
+function convertToId(search)
+{
+  var result = '';
+  for (i=0;i<search.length;i++)
+  {
+    var c = search.charAt(i);
+    var cn = c.charCodeAt(0);
+    if (c.match(/[a-z0-9\u0080-\uFFFF]/))
+    {
+      result+=c;
+    }
+    else if (cn<16)
+    {
+      result+="_0"+cn.toString(16);
+    }
+    else
+    {
+      result+="_"+cn.toString(16);
+    }
+  }
+  return result;
+}
+
+function getXPos(item)
+{
+  var x = 0;
+  if (item.offsetWidth)
+  {
+    while (item && item!=document.body)
+    {
+      x   += item.offsetLeft;
+      item = item.offsetParent;
+    }
+  }
+  return x;
+}
+
+function getYPos(item)
+{
+  var y = 0;
+  if (item.offsetWidth)
+  {
+     while (item && item!=document.body)
+     {
+       y   += item.offsetTop;
+       item = item.offsetParent;
+     }
+  }
+  return y;
+}
+
+/* A class handling everything associated with the search panel.
+
+   Parameters:
+   name - The name of the global variable that will be
+          storing this instance.  Is needed to be able to set timeouts.
+   resultPath - path to use for external files
+*/
+function SearchBox(name, resultsPath, inFrame, label)
+{
+  if (!name || !resultsPath) {  alert("Missing parameters to SearchBox."); }
+
+  // ---------- Instance variables
+  this.name                  = name;
+  this.resultsPath           = resultsPath;
+  this.keyTimeout            = 0;
+  this.keyTimeoutLength      = 500;
+  this.closeSelectionTimeout = 300;
+  this.lastSearchValue       = "";
+  this.lastResultsPage       = "";
+  this.hideTimeout           = 0;
+  this.searchIndex           = 0;
+  this.searchActive          = false;
+  this.insideFrame           = inFrame;
+  this.searchLabel           = label;
+
+  // ----------- DOM Elements
+
+  this.DOMSearchField = function()
+  {  return document.getElementById("MSearchField");  }
+
+  this.DOMSearchSelect = function()
+  {  return document.getElementById("MSearchSelect");  }
+
+  this.DOMSearchSelectWindow = function()
+  {  return document.getElementById("MSearchSelectWindow");  }
+
+  this.DOMPopupSearchResults = function()
+  {  return document.getElementById("MSearchResults");  }
+
+  this.DOMPopupSearchResultsWindow = function()
+  {  return document.getElementById("MSearchResultsWindow");  }
+
+  this.DOMSearchClose = function()
+  {  return document.getElementById("MSearchClose"); }
+
+  this.DOMSearchBox = function()
+  {  return document.getElementById("MSearchBox");  }
+
+  // ------------ Event Handlers
+
+  // Called when focus is added or removed from the search field.
+  this.OnSearchFieldFocus = function(isActive)
+  {
+    this.Activate(isActive);
+  }
+
+  this.OnSearchSelectShow = function()
+  {
+    var searchSelectWindow = this.DOMSearchSelectWindow();
+    var searchField        = this.DOMSearchSelect();
+
+    if (this.insideFrame)
+    {
+      var left = getXPos(searchField);
+      var top  = getYPos(searchField);
+      left += searchField.offsetWidth + 6;
+      top += searchField.offsetHeight;
+
+      // show search selection popup
+      searchSelectWindow.style.display='block';
+      left -= searchSelectWindow.offsetWidth;
+      searchSelectWindow.style.left =  left + 'px';
+      searchSelectWindow.style.top  =  top  + 'px';
+    }
+    else
+    {
+      var left = getXPos(searchField);
+      var top  = getYPos(searchField);
+      top += searchField.offsetHeight;
+
+      // show search selection popup
+      searchSelectWindow.style.display='block';
+      searchSelectWindow.style.left =  left + 'px';
+      searchSelectWindow.style.top  =  top  + 'px';
+    }
+
+    // stop selection hide timer
+    if (this.hideTimeout)
+    {
+      clearTimeout(this.hideTimeout);
+      this.hideTimeout=0;
+    }
+    return false; // to avoid "image drag" default event
+  }
+
+  this.OnSearchSelectHide = function()
+  {
+    this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
+                                  this.closeSelectionTimeout);
+  }
+
+  // Called when the content of the search field is changed.
+  this.OnSearchFieldChange = function(evt)
+  {
+    if (this.keyTimeout) // kill running timer
+    {
+      clearTimeout(this.keyTimeout);
+      this.keyTimeout = 0;
+    }
+
+    var e  = (evt) ? evt : window.event; // for IE
+    if (e.keyCode==40 || e.keyCode==13)
+    {
+      if (e.shiftKey==1)
+      {
+        this.OnSearchSelectShow();
+        var win=this.DOMSearchSelectWindow();
+        for (i=0;i<win.childNodes.length;i++)
+        {
+          var child = win.childNodes[i]; // get span within a
+          if (child.className=='SelectItem')
+          {
+            child.focus();
+            return;
+          }
+        }
+        return;
+      }
+      else if (window.frames.MSearchResults.searchResults)
+      {
+        var elem = window.frames.MSearchResults.searchResults.NavNext(0);
+        if (elem) elem.focus();
+      }
+    }
+    else if (e.keyCode==27) // Escape out of the search field
+    {
+      this.DOMSearchField().blur();
+      this.DOMPopupSearchResultsWindow().style.display = 'none';
+      this.DOMSearchClose().style.display = 'none';
+      this.lastSearchValue = '';
+      this.Activate(false);
+      return;
+    }
+
+    // strip whitespaces
+    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+    if (searchValue != this.lastSearchValue) // search value has changed
+    {
+      if (searchValue != "") // non-empty search
+      {
+        // set timer for search update
+        this.keyTimeout = setTimeout(this.name + '.Search()',
+                                     this.keyTimeoutLength);
+      }
+      else // empty search field
+      {
+        this.DOMPopupSearchResultsWindow().style.display = 'none';
+        this.DOMSearchClose().style.display = 'none';
+        this.lastSearchValue = '';
+      }
+    }
+  }
+
+  this.SelectItemCount = function(id)
+  {
+    var count=0;
+    var win=this.DOMSearchSelectWindow();
+    for (i=0;i<win.childNodes.length;i++)
+    {
+      var child = win.childNodes[i]; // get span within a
+      if (child.className=='SelectItem')
+      {
+        count++;
+      }
+    }
+    return count;
+  }
+
+  this.SelectItemSet = function(id)
+  {
+    var i,j=0;
+    var win=this.DOMSearchSelectWindow();
+    for (i=0;i<win.childNodes.length;i++)
+    {
+      var child = win.childNodes[i]; // get span within a
+      if (child.className=='SelectItem')
+      {
+        var node = child.firstChild;
+        if (j==id)
+        {
+          node.innerHTML='&#8226;';
+        }
+        else
+        {
+          node.innerHTML='&#160;';
+        }
+        j++;
+      }
+    }
+  }
+
+  // Called when an search filter selection is made.
+  // set item with index id as the active item
+  this.OnSelectItem = function(id)
+  {
+    this.searchIndex = id;
+    this.SelectItemSet(id);
+    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+    if (searchValue!="" && this.searchActive) // something was found -> do a search
+    {
+      this.Search();
+    }
+  }
+
+  this.OnSearchSelectKey = function(evt)
+  {
+    var e = (evt) ? evt : window.event; // for IE
+    if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
+    {
+      this.searchIndex++;
+      this.OnSelectItem(this.searchIndex);
+    }
+    else if (e.keyCode==38 && this.searchIndex>0) // Up
+    {
+      this.searchIndex--;
+      this.OnSelectItem(this.searchIndex);
+    }
+    else if (e.keyCode==13 || e.keyCode==27)
+    {
+      this.OnSelectItem(this.searchIndex);
+      this.CloseSelectionWindow();
+      this.DOMSearchField().focus();
+    }
+    return false;
+  }
+
+  // --------- Actions
+
+  // Closes the results window.
+  this.CloseResultsWindow = function()
+  {
+    this.DOMPopupSearchResultsWindow().style.display = 'none';
+    this.DOMSearchClose().style.display = 'none';
+    this.Activate(false);
+  }
+
+  this.CloseSelectionWindow = function()
+  {
+    this.DOMSearchSelectWindow().style.display = 'none';
+  }
+
+  // Performs a search.
+  this.Search = function()
+  {
+    this.keyTimeout = 0;
+
+    // strip leading whitespace
+    var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+
+    var code = searchValue.toLowerCase().charCodeAt(0);
+    var idxChar = searchValue.substr(0, 1).toLowerCase();
+    if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
+    {
+      idxChar = searchValue.substr(0, 2);
+    }
+
+    var resultsPage;
+    var resultsPageWithSearch;
+    var hasResultsPage;
+
+    var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
+    if (idx!=-1)
+    {
+       var hexCode=idx.toString(16);
+       resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
+       resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+       hasResultsPage = true;
+    }
+    else // nothing available for this search term
+    {
+       resultsPage = this.resultsPath + '/nomatches.html';
+       resultsPageWithSearch = resultsPage;
+       hasResultsPage = false;
+    }
+
+    window.frames.MSearchResults.location = resultsPageWithSearch;
+    var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+    if (domPopupSearchResultsWindow.style.display!='block')
+    {
+       var domSearchBox = this.DOMSearchBox();
+       this.DOMSearchClose().style.display = 'inline';
+       if (this.insideFrame)
+       {
+         var domPopupSearchResults = this.DOMPopupSearchResults();
+         domPopupSearchResultsWindow.style.position = 'relative';
+         domPopupSearchResultsWindow.style.display  = 'block';
+         var width = document.body.clientWidth - 8; // the -8 is for IE :-(
+         domPopupSearchResultsWindow.style.width    = width + 'px';
+         domPopupSearchResults.style.width          = width + 'px';
+       }
+       else
+       {
+         var domPopupSearchResults = this.DOMPopupSearchResults();
+         var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+         var top  = getYPos(domSearchBox) + 20;  // domSearchBox.offsetHeight + 1;
+         domPopupSearchResultsWindow.style.display = 'block';
+         left -= domPopupSearchResults.offsetWidth;
+         domPopupSearchResultsWindow.style.top     = top  + 'px';
+         domPopupSearchResultsWindow.style.left    = left + 'px';
+       }
+    }
+
+    this.lastSearchValue = searchValue;
+    this.lastResultsPage = resultsPage;
+  }
+
+  // -------- Activation Functions
+
+  // Activates or deactivates the search panel, resetting things to
+  // their default values if necessary.
+  this.Activate = function(isActive)
+  {
+    if (isActive || // open it
+        this.DOMPopupSearchResultsWindow().style.display == 'block'
+       )
+    {
+      this.DOMSearchBox().className = 'MSearchBoxActive';
+
+      var searchField = this.DOMSearchField();
+
+      if (searchField.value == this.searchLabel) // clear "Search" term upon entry
+      {
+        searchField.value = '';
+        this.searchActive = true;
+      }
+    }
+    else if (!isActive) // directly remove the panel
+    {
+      this.DOMSearchBox().className = 'MSearchBoxInactive';
+      this.DOMSearchField().value   = this.searchLabel;
+      this.searchActive             = false;
+      this.lastSearchValue          = ''
+      this.lastResultsPage          = '';
+    }
+  }
+}
+
+// -----------------------------------------------------------------------
+
+// The class that handles everything on the search results page.
+function SearchResults(name)
+{
+    // The number of matches from the last run of <Search()>.
+    this.lastMatchCount = 0;
+    this.lastKey = 0;
+    this.repeatOn = false;
+
+    // Toggles the visibility of the passed element ID.
+    this.FindChildElement = function(id)
+    {
+      var parentElement = document.getElementById(id);
+      var element = parentElement.firstChild;
+
+      while (element && element!=parentElement)
+      {
+        if (element.nodeName == 'DIV' && element.className == 'SRChildren')
+        {
+          return element;
+        }
+
+        if (element.nodeName == 'DIV' && element.hasChildNodes())
+        {
+           element = element.firstChild;
+        }
+        else if (element.nextSibling)
+        {
+           element = element.nextSibling;
+        }
+        else
+        {
+          do
+          {
+            element = element.parentNode;
+          }
+          while (element && element!=parentElement && !element.nextSibling);
+
+          if (element && element!=parentElement)
+          {
+            element = element.nextSibling;
+          }
+        }
+      }
+    }
+
+    this.Toggle = function(id)
+    {
+      var element = this.FindChildElement(id);
+      if (element)
+      {
+        if (element.style.display == 'block')
+        {
+          element.style.display = 'none';
+        }
+        else
+        {
+          element.style.display = 'block';
+        }
+      }
+    }
+
+    // Searches for the passed string.  If there is no parameter,
+    // it takes it from the URL query.
+    //
+    // Always returns true, since other documents may try to call it
+    // and that may or may not be possible.
+    this.Search = function(search)
+    {
+      if (!search) // get search word from URL
+      {
+        search = window.location.search;
+        search = search.substring(1);  // Remove the leading '?'
+        search = unescape(search);
+      }
+
+      search = search.replace(/^ +/, ""); // strip leading spaces
+      search = search.replace(/ +$/, ""); // strip trailing spaces
+      search = search.toLowerCase();
+      search = convertToId(search);
+
+      var resultRows = document.getElementsByTagName("div");
+      var matches = 0;
+
+      var i = 0;
+      while (i < resultRows.length)
+      {
+        var row = resultRows.item(i);
+        if (row.className == "SRResult")
+        {
+          var rowMatchName = row.id.toLowerCase();
+          rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
+
+          if (search.length<=rowMatchName.length &&
+             rowMatchName.substr(0, search.length)==search)
+          {
+            row.style.display = 'block';
+            matches++;
+          }
+          else
+          {
+            row.style.display = 'none';
+          }
+        }
+        i++;
+      }
+      document.getElementById("Searching").style.display='none';
+      if (matches == 0) // no results
+      {
+        document.getElementById("NoMatches").style.display='block';
+      }
+      else // at least one result
+      {
+        document.getElementById("NoMatches").style.display='none';
+      }
+      this.lastMatchCount = matches;
+      return true;
+    }
+
+    // return the first item with index index or higher that is visible
+    this.NavNext = function(index)
+    {
+      var focusItem;
+      while (1)
+      {
+        var focusName = 'Item'+index;
+        focusItem = document.getElementById(focusName);
+        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+        {
+          break;
+        }
+        else if (!focusItem) // last element
+        {
+          break;
+        }
+        focusItem=null;
+        index++;
+      }
+      return focusItem;
+    }
+
+    this.NavPrev = function(index)
+    {
+      var focusItem;
+      while (1)
+      {
+        var focusName = 'Item'+index;
+        focusItem = document.getElementById(focusName);
+        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+        {
+          break;
+        }
+        else if (!focusItem) // last element
+        {
+          break;
+        }
+        focusItem=null;
+        index--;
+      }
+      return focusItem;
+    }
+
+    this.ProcessKeys = function(e)
+    {
+      if (e.type == "keydown")
+      {
+        this.repeatOn = false;
+        this.lastKey = e.keyCode;
+      }
+      else if (e.type == "keypress")
+      {
+        if (!this.repeatOn)
+        {
+          if (this.lastKey) this.repeatOn = true;
+          return false; // ignore first keypress after keydown
+        }
+      }
+      else if (e.type == "keyup")
+      {
+        this.lastKey = 0;
+        this.repeatOn = false;
+      }
+      return this.lastKey!=0;
+    }
+
+    this.Nav = function(evt,itemIndex)
+    {
+      var e  = (evt) ? evt : window.event; // for IE
+      if (e.keyCode==13) return true;
+      if (!this.ProcessKeys(e)) return false;
+
+      if (this.lastKey==38) // Up
+      {
+        var newIndex = itemIndex-1;
+        var focusItem = this.NavPrev(newIndex);
+        if (focusItem)
+        {
+          var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
+          if (child && child.style.display == 'block') // children visible
+          {
+            var n=0;
+            var tmpElem;
+            while (1) // search for last child
+            {
+              tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
+              if (tmpElem)
+              {
+                focusItem = tmpElem;
+              }
+              else // found it!
+              {
+                break;
+              }
+              n++;
+            }
+          }
+        }
+        if (focusItem)
+        {
+          focusItem.focus();
+        }
+        else // return focus to search field
+        {
+           parent.document.getElementById("MSearchField").focus();
+        }
+      }
+      else if (this.lastKey==40) // Down
+      {
+        var newIndex = itemIndex+1;
+        var focusItem;
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem && elem.style.display == 'block') // children visible
+        {
+          focusItem = document.getElementById('Item'+itemIndex+'_c0');
+        }
+        if (!focusItem) focusItem = this.NavNext(newIndex);
+        if (focusItem)  focusItem.focus();
+      }
+      else if (this.lastKey==39) // Right
+      {
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem) elem.style.display = 'block';
+      }
+      else if (this.lastKey==37) // Left
+      {
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem) elem.style.display = 'none';
+      }
+      else if (this.lastKey==27) // Escape
+      {
+        parent.searchBox.CloseResultsWindow();
+        parent.document.getElementById("MSearchField").focus();
+      }
+      else if (this.lastKey==13) // Enter
+      {
+        return true;
+      }
+      return false;
+    }
+
+    this.NavChild = function(evt,itemIndex,childIndex)
+    {
+      var e  = (evt) ? evt : window.event; // for IE
+      if (e.keyCode==13) return true;
+      if (!this.ProcessKeys(e)) return false;
+
+      if (this.lastKey==38) // Up
+      {
+        if (childIndex>0)
+        {
+          var newIndex = childIndex-1;
+          document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
+        }
+        else // already at first child, jump to parent
+        {
+          document.getElementById('Item'+itemIndex).focus();
+        }
+      }
+      else if (this.lastKey==40) // Down
+      {
+        var newIndex = childIndex+1;
+        var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
+        if (!elem) // last child, jump to parent next parent
+        {
+          elem = this.NavNext(itemIndex+1);
+        }
+        if (elem)
+        {
+          elem.focus();
+        }
+      }
+      else if (this.lastKey==27) // Escape
+      {
+        parent.searchBox.CloseResultsWindow();
+        parent.document.getElementById("MSearchField").focus();
+      }
+      else if (this.lastKey==13) // Enter
+      {
+        return true;
+      }
+      return false;
+    }
+}
+
+function setKeyActions(elem,action)
+{
+  elem.setAttribute('onkeydown',action);
+  elem.setAttribute('onkeypress',action);
+  elem.setAttribute('onkeyup',action);
+}
+
+function setClassAttr(elem,attr)
+{
+  elem.setAttribute('class',attr);
+  elem.setAttribute('className',attr);
+}
+
+function createResults()
+{
+  var results = document.getElementById("SRResults");
+  for (var e=0; e<searchData.length; e++)
+  {
+    var id = searchData[e][0];
+    var srResult = document.createElement('div');
+    srResult.setAttribute('id','SR_'+id);
+    setClassAttr(srResult,'SRResult');
+    var srEntry = document.createElement('div');
+    setClassAttr(srEntry,'SREntry');
+    var srLink = document.createElement('a');
+    srLink.setAttribute('id','Item'+e);
+    setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
+    setClassAttr(srLink,'SRSymbol');
+    srLink.innerHTML = searchData[e][1][0];
+    srEntry.appendChild(srLink);
+    if (searchData[e][1].length==2) // single result
+    {
+      srLink.setAttribute('href',searchData[e][1][1][0]);
+      if (searchData[e][1][1][1])
+      {
+       srLink.setAttribute('target','_parent');
+      }
+      var srScope = document.createElement('span');
+      setClassAttr(srScope,'SRScope');
+      srScope.innerHTML = searchData[e][1][1][2];
+      srEntry.appendChild(srScope);
+    }
+    else // multiple results
+    {
+      srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
+      var srChildren = document.createElement('div');
+      setClassAttr(srChildren,'SRChildren');
+      for (var c=0; c<searchData[e][1].length-1; c++)
+      {
+        var srChild = document.createElement('a');
+        srChild.setAttribute('id','Item'+e+'_c'+c);
+        setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
+        setClassAttr(srChild,'SRScope');
+        srChild.setAttribute('href',searchData[e][1][c+1][0]);
+        if (searchData[e][1][c+1][1])
+        {
+         srChild.setAttribute('target','_parent');
+        }
+        srChild.innerHTML = searchData[e][1][c+1][2];
+        srChildren.appendChild(srChild);
+      }
+      srEntry.appendChild(srChildren);
+    }
+    srResult.appendChild(srEntry);
+    results.appendChild(srResult);
+  }
+}
+
+function init_search()
+{
+  var results = document.getElementById("MSearchSelectWindow");
+  for (var key in indexSectionLabels)
+  {
+    var link = document.createElement('a');
+    link.setAttribute('class','SelectItem');
+    link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');
+    link.href='javascript:void(0)';
+    link.innerHTML='<span class="SelectionMark">&#160;</span>'+indexSectionLabels[key];
+    results.appendChild(link);
+  }
+  searchBox.OnSelectItem(0);
+}
+/* @license-end */
diff --git a/doc/1.1.0/libguac/search/search_l.png b/doc/1.1.0/libguac/search/search_l.png
new file mode 100644
index 0000000..c872f4d
--- /dev/null
+++ b/doc/1.1.0/libguac/search/search_l.png
Binary files differ
diff --git a/doc/1.1.0/libguac/search/search_m.png b/doc/1.1.0/libguac/search/search_m.png
new file mode 100644
index 0000000..b429a16
--- /dev/null
+++ b/doc/1.1.0/libguac/search/search_m.png
Binary files differ
diff --git a/doc/1.1.0/libguac/search/search_r.png b/doc/1.1.0/libguac/search/search_r.png
new file mode 100644
index 0000000..97ee8b4
--- /dev/null
+++ b/doc/1.1.0/libguac/search/search_r.png
Binary files differ
diff --git a/doc/1.1.0/libguac/search/searchdata.js b/doc/1.1.0/libguac/search/searchdata.js
new file mode 100644
index 0000000..0c06570
--- /dev/null
+++ b/doc/1.1.0/libguac/search/searchdata.js
@@ -0,0 +1,42 @@
+var indexSectionsWithContent =
+{
+  0: "abcdefghijklmoprstuvw",
+  1: "g",
+  2: "acehlopstu",
+  3: "gv",
+  4: "abcdefgijklmoprstuvw",
+  5: "g",
+  6: "g",
+  7: "g",
+  8: "g",
+  9: "d"
+};
+
+var indexSectionNames =
+{
+  0: "all",
+  1: "classes",
+  2: "files",
+  3: "functions",
+  4: "variables",
+  5: "typedefs",
+  6: "enums",
+  7: "enumvalues",
+  8: "defines",
+  9: "pages"
+};
+
+var indexSectionLabels =
+{
+  0: "All",
+  1: "Data Structures",
+  2: "Files",
+  3: "Functions",
+  4: "Variables",
+  5: "Typedefs",
+  6: "Enumerations",
+  7: "Enumerator",
+  8: "Macros",
+  9: "Pages"
+};
+
diff --git a/doc/1.1.0/libguac/search/typedefs_0.html b/doc/1.1.0/libguac/search/typedefs_0.html
new file mode 100644
index 0000000..2a284a9
--- /dev/null
+++ b/doc/1.1.0/libguac/search/typedefs_0.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="typedefs_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/typedefs_0.js b/doc/1.1.0/libguac/search/typedefs_0.js
new file mode 100644
index 0000000..95b84e2
--- /dev/null
+++ b/doc/1.1.0/libguac/search/typedefs_0.js
@@ -0,0 +1,36 @@
+var searchData=
+[
+  ['guac_5faudio_5fencoder_5fbegin_5fhandler',['guac_audio_encoder_begin_handler',['../audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fend_5fhandler',['guac_audio_encoder_end_handler',['../audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fflush_5fhandler',['guac_audio_encoder_flush_handler',['../audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fjoin_5fhandler',['guac_audio_encoder_join_handler',['../audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fwrite_5fhandler',['guac_audio_encoder_write_handler',['../audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a',1,'audio-fntypes.h']]],
+  ['guac_5fclient_5ffree_5fhandler',['guac_client_free_handler',['../client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577',1,'client-fntypes.h']]],
+  ['guac_5fclient_5finit_5fhandler',['guac_client_init_handler',['../client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c',1,'client-fntypes.h']]],
+  ['guac_5fclient_5flog_5fhandler',['guac_client_log_handler',['../client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c',1,'client-fntypes.h']]],
+  ['guac_5fsocket_5fflush_5fhandler',['guac_socket_flush_handler',['../socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5ffree_5fhandler',['guac_socket_free_handler',['../socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5flock_5fhandler',['guac_socket_lock_handler',['../socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fread_5fhandler',['guac_socket_read_handler',['../socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fselect_5fhandler',['guac_socket_select_handler',['../socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5funlock_5fhandler',['guac_socket_unlock_handler',['../socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fwrite_5fhandler',['guac_socket_write_handler',['../socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a',1,'socket-fntypes.h']]],
+  ['guac_5ftimestamp',['guac_timestamp',['../timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea',1,'timestamp-types.h']]],
+  ['guac_5fuser_5fack_5fhandler',['guac_user_ack_handler',['../user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fargv_5fhandler',['guac_user_argv_handler',['../user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a',1,'user-fntypes.h']]],
+  ['guac_5fuser_5faudio_5fhandler',['guac_user_audio_handler',['../user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fblob_5fhandler',['guac_user_blob_handler',['../user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fcallback',['guac_user_callback',['../user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fclipboard_5fhandler',['guac_user_clipboard_handler',['../user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fend_5fhandler',['guac_user_end_handler',['../user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca',1,'user-fntypes.h']]],
+  ['guac_5fuser_5ffile_5fhandler',['guac_user_file_handler',['../user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fget_5fhandler',['guac_user_get_handler',['../user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fjoin_5fhandler',['guac_user_join_handler',['../user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fkey_5fhandler',['guac_user_key_handler',['../user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fleave_5fhandler',['guac_user_leave_handler',['../user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fmouse_5fhandler',['guac_user_mouse_handler',['../user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fpipe_5fhandler',['guac_user_pipe_handler',['../user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fput_5fhandler',['guac_user_put_handler',['../user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fsize_5fhandler',['guac_user_size_handler',['../user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fsync_5fhandler',['guac_user_sync_handler',['../user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539',1,'user-fntypes.h']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_0.html b/doc/1.1.0/libguac/search/variables_0.html
new file mode 100644
index 0000000..51f7bd6
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_0.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_0.js b/doc/1.1.0/libguac/search/variables_0.js
new file mode 100644
index 0000000..4c44e8b
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_0.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+  ['ack_5fhandler',['ack_handler',['../structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff',1,'guac_stream::ack_handler()'],['../structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be',1,'guac_user::ack_handler()']]],
+  ['active',['active',['../structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3',1,'guac_pool::active()'],['../structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd',1,'guac_user::active()']]],
+  ['argc',['argc',['../structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe',1,'guac_parser']]],
+  ['args',['args',['../structguac__client.html#a0e07a8086579ede2c692460998a87cac',1,'guac_client']]],
+  ['argv',['argv',['../structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701',1,'guac_parser']]],
+  ['argv_5fhandler',['argv_handler',['../structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a',1,'guac_user']]],
+  ['audio_5fhandler',['audio_handler',['../structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69',1,'guac_user']]],
+  ['audio_5fmimetypes',['audio_mimetypes',['../structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27',1,'guac_user_info']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_1.html b/doc/1.1.0/libguac/search/variables_1.html
new file mode 100644
index 0000000..f46154d
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_1.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_1.js b/doc/1.1.0/libguac/search/variables_1.js
new file mode 100644
index 0000000..86c920a
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_1.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['begin_5fhandler',['begin_handler',['../structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6',1,'guac_audio_encoder']]],
+  ['blob_5fhandler',['blob_handler',['../structguac__stream.html#a51122ba04f416d8ce047542c603632f8',1,'guac_stream::blob_handler()'],['../structguac__user.html#a88a14fda25c9929269d198d4d602f7fb',1,'guac_user::blob_handler()']]],
+  ['bps',['bps',['../structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866',1,'guac_audio_stream']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_10.html b/doc/1.1.0/libguac/search/variables_10.html
new file mode 100644
index 0000000..b62b717
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_10.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_10.js b/doc/1.1.0/libguac/search/variables_10.js
new file mode 100644
index 0000000..7bc40a3
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_10.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['timezone',['timezone',['../structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078',1,'guac_user_info']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_11.html b/doc/1.1.0/libguac/search/variables_11.html
new file mode 100644
index 0000000..2ce8561
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_11.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_11.js b/doc/1.1.0/libguac/search/variables_11.js
new file mode 100644
index 0000000..c9eb0ec
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_11.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['unlock_5fhandler',['unlock_handler',['../structguac__socket.html#a67be8367b5e1b330ee151b22c692500b',1,'guac_socket']]],
+  ['user_5fid',['user_id',['../structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_12.html b/doc/1.1.0/libguac/search/variables_12.html
new file mode 100644
index 0000000..bba5857
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_12.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_12.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_12.js b/doc/1.1.0/libguac/search/variables_12.js
new file mode 100644
index 0000000..1619d15
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_12.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['value',['value',['../structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4',1,'guac_pool_int']]],
+  ['video_5fmimetypes',['video_mimetypes',['../structguac__user__info.html#ace535bea6879596b6473657f3fc83b57',1,'guac_user_info']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_13.html b/doc/1.1.0/libguac/search/variables_13.html
new file mode 100644
index 0000000..c92cbcc
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_13.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_13.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_13.js b/doc/1.1.0/libguac/search/variables_13.js
new file mode 100644
index 0000000..50a5677
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_13.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['write_5fhandler',['write_handler',['../structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74',1,'guac_audio_encoder::write_handler()'],['../structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d',1,'guac_socket::write_handler()']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_2.html b/doc/1.1.0/libguac/search/variables_2.html
new file mode 100644
index 0000000..15275b7
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_2.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_2.js b/doc/1.1.0/libguac/search/variables_2.js
new file mode 100644
index 0000000..befc009
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_2.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['channels',['channels',['../structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6',1,'guac_audio_stream']]],
+  ['client',['client',['../structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba',1,'guac_audio_stream::client()'],['../structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf',1,'guac_user::client()']]],
+  ['clipboard_5fhandler',['clipboard_handler',['../structguac__user.html#a77f042802092c8bbf4407836f3185343',1,'guac_user']]],
+  ['connected_5fusers',['connected_users',['../structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2',1,'guac_client']]],
+  ['connection_5fid',['connection_id',['../structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094',1,'guac_client']]],
+  ['context',['context',['../structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f',1,'guac_socket_ssl_data']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_3.html b/doc/1.1.0/libguac/search/variables_3.html
new file mode 100644
index 0000000..fbc3671
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_3.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_3.js b/doc/1.1.0/libguac/search/variables_3.js
new file mode 100644
index 0000000..dfec7e5
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['data',['data',['../structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7',1,'guac_audio_stream::data()'],['../structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3',1,'guac_client::data()'],['../structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e',1,'guac_object::data()'],['../structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d',1,'guac_socket::data()'],['../structguac__stream.html#acdf20063ca408431862d901c9445b429',1,'guac_stream::data()'],['../structguac__user.html#ad424a52c5d996e4a33de5dad61555883',1,'guac_user::data()']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_4.html b/doc/1.1.0/libguac/search/variables_4.html
new file mode 100644
index 0000000..8067e67
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_4.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_4.js b/doc/1.1.0/libguac/search/variables_4.js
new file mode 100644
index 0000000..6d7ea7f
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_4.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['encoder',['encoder',['../structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d',1,'guac_audio_stream']]],
+  ['end_5fhandler',['end_handler',['../structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92',1,'guac_audio_encoder::end_handler()'],['../structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db',1,'guac_stream::end_handler()'],['../structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed',1,'guac_user::end_handler()']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_5.html b/doc/1.1.0/libguac/search/variables_5.html
new file mode 100644
index 0000000..7e95e94
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_5.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_5.js b/doc/1.1.0/libguac/search/variables_5.js
new file mode 100644
index 0000000..dc114ca
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_5.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['fd',['fd',['../structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a',1,'guac_socket_ssl_data']]],
+  ['file_5fhandler',['file_handler',['../structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474',1,'guac_user']]],
+  ['flush_5fhandler',['flush_handler',['../structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0',1,'guac_audio_encoder::flush_handler()'],['../structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b',1,'guac_socket::flush_handler()']]],
+  ['free_5fhandler',['free_handler',['../structguac__client.html#a79e29c931fd448cf51f7153fea064169',1,'guac_client::free_handler()'],['../structguac__socket.html#a1044cde496cfe11c914c623dc1e29678',1,'guac_socket::free_handler()']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_6.html b/doc/1.1.0/libguac/search/variables_6.html
new file mode 100644
index 0000000..3d398e6
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_6.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_6.js b/doc/1.1.0/libguac/search/variables_6.js
new file mode 100644
index 0000000..5a1476b
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_6.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['get_5fhandler',['get_handler',['../structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21',1,'guac_object::get_handler()'],['../structguac__user.html#ada73c04bbf06de4280f2d7679190a19b',1,'guac_user::get_handler()']]],
+  ['guac_5fdefault_5flayer',['GUAC_DEFAULT_LAYER',['../client_8h.html#a336a485c006394d5eea88bf6d8d422d8',1,'client.h']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_7.html b/doc/1.1.0/libguac/search/variables_7.html
new file mode 100644
index 0000000..7b79146
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_7.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_7.js b/doc/1.1.0/libguac/search/variables_7.js
new file mode 100644
index 0000000..d615f47
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_7.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['image_5fmimetypes',['image_mimetypes',['../structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345',1,'guac_user_info']]],
+  ['index',['index',['../structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba',1,'guac_layer::index()'],['../structguac__object.html#a643f03695d246bbf73b5c4942755a4b4',1,'guac_object::index()'],['../structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60',1,'guac_stream::index()']]],
+  ['info',['info',['../structguac__user.html#a0120f63e0eb933761666047ed80e483f',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_8.html b/doc/1.1.0/libguac/search/variables_8.html
new file mode 100644
index 0000000..8ebc5f6
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_8.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_8.js b/doc/1.1.0/libguac/search/variables_8.js
new file mode 100644
index 0000000..9565ecb
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_8.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['join_5fhandler',['join_handler',['../structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b',1,'guac_audio_encoder::join_handler()'],['../structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3',1,'guac_client::join_handler()']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_9.html b/doc/1.1.0/libguac/search/variables_9.html
new file mode 100644
index 0000000..1213661
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_9.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_9.js b/doc/1.1.0/libguac/search/variables_9.js
new file mode 100644
index 0000000..deb3a4b
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_9.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['key_5fhandler',['key_handler',['../structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_a.html b/doc/1.1.0/libguac/search/variables_a.html
new file mode 100644
index 0000000..24819a3
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_a.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_a.js b/doc/1.1.0/libguac/search/variables_a.js
new file mode 100644
index 0000000..d5fafa9
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_a.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['last_5fframe_5fduration',['last_frame_duration',['../structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060',1,'guac_user']]],
+  ['last_5freceived_5ftimestamp',['last_received_timestamp',['../structguac__user.html#aebdee192ef52dfe8956c776adc65fb16',1,'guac_user']]],
+  ['last_5fsent_5ftimestamp',['last_sent_timestamp',['../structguac__client.html#a0f3069566c7a5ca76ce4369715589dad',1,'guac_client']]],
+  ['last_5fwrite_5ftimestamp',['last_write_timestamp',['../structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51',1,'guac_socket']]],
+  ['leave_5fhandler',['leave_handler',['../structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6',1,'guac_client::leave_handler()'],['../structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f',1,'guac_user::leave_handler()']]],
+  ['lock_5fhandler',['lock_handler',['../structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471',1,'guac_socket']]],
+  ['log_5fhandler',['log_handler',['../structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43',1,'guac_client']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_b.html b/doc/1.1.0/libguac/search/variables_b.html
new file mode 100644
index 0000000..b306931
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_b.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_b.js b/doc/1.1.0/libguac/search/variables_b.js
new file mode 100644
index 0000000..d27d66d
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_b.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['mimetype',['mimetype',['../structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b',1,'guac_audio_encoder']]],
+  ['min_5fsize',['min_size',['../structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e',1,'guac_pool']]],
+  ['mouse_5fhandler',['mouse_handler',['../structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_c.html b/doc/1.1.0/libguac/search/variables_c.html
new file mode 100644
index 0000000..75709df
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_c.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_c.js b/doc/1.1.0/libguac/search/variables_c.js
new file mode 100644
index 0000000..c24d1a5
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_c.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+  ['opcode',['opcode',['../structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1',1,'guac_parser']]],
+  ['optimal_5fheight',['optimal_height',['../structguac__user__info.html#a252079af642b62554566e8675dc43354',1,'guac_user_info']]],
+  ['optimal_5fresolution',['optimal_resolution',['../structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7',1,'guac_user_info']]],
+  ['optimal_5fwidth',['optimal_width',['../structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66',1,'guac_user_info']]],
+  ['owner',['owner',['../structguac__user.html#a265180af7291745b2e090ee6fa47cbb8',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_d.html b/doc/1.1.0/libguac/search/variables_d.html
new file mode 100644
index 0000000..34c80a4
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_d.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_d.js b/doc/1.1.0/libguac/search/variables_d.js
new file mode 100644
index 0000000..7ed0642
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_d.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['pipe_5fhandler',['pipe_handler',['../structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3',1,'guac_user']]],
+  ['processing_5flag',['processing_lag',['../structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e',1,'guac_user']]],
+  ['put_5fhandler',['put_handler',['../structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6',1,'guac_object::put_handler()'],['../structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3',1,'guac_user::put_handler()']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_e.html b/doc/1.1.0/libguac/search/variables_e.html
new file mode 100644
index 0000000..4a1c8a6
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_e.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_e.js b/doc/1.1.0/libguac/search/variables_e.js
new file mode 100644
index 0000000..3b14e0a
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_e.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['rate',['rate',['../structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9',1,'guac_audio_stream']]],
+  ['read_5fhandler',['read_handler',['../structguac__socket.html#a10042a8e591737aec8d4db5a3423b250',1,'guac_socket']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_f.html b/doc/1.1.0/libguac/search/variables_f.html
new file mode 100644
index 0000000..cc86fb5
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_f.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_f.js b/doc/1.1.0/libguac/search/variables_f.js
new file mode 100644
index 0000000..4f14c14
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_f.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['select_5fhandler',['select_handler',['../structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f',1,'guac_socket']]],
+  ['size_5fhandler',['size_handler',['../structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a',1,'guac_user']]],
+  ['socket',['socket',['../structguac__client.html#aa634856fd3c522377ba7345f3308000e',1,'guac_client::socket()'],['../structguac__user.html#a8496638b8c4c52f5f15d483b92becf27',1,'guac_user::socket()']]],
+  ['ssl',['ssl',['../structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac',1,'guac_socket_ssl_data']]],
+  ['state',['state',['../structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53',1,'guac_client::state()'],['../structguac__parser.html#a2773500f91b3cdb7de7bdea280228054',1,'guac_parser::state()'],['../structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b',1,'guac_socket::state()']]],
+  ['stream',['stream',['../structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894',1,'guac_audio_stream']]],
+  ['sync_5fhandler',['sync_handler',['../structguac__user.html#a209e83f080baf2e84d04cf08395374d2',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/socket-constants_8h.html b/doc/1.1.0/libguac/socket-constants_8h.html
new file mode 100644
index 0000000..6f8657d
--- /dev/null
+++ b/doc/1.1.0/libguac/socket-constants_8h.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-constants.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">socket-constants.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Constants related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object.  
+<a href="#details">More...</a></p>
+
+<p><a href="socket-constants_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:af93053e27466c566624301d7b32a68c3"><td class="memItemLeft" align="right" valign="top"><a id="af93053e27466c566624301d7b32a68c3"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-constants_8h.html#af93053e27466c566624301d7b32a68c3">GUAC_SOCKET_OUTPUT_BUFFER_SIZE</a>&#160;&#160;&#160;8192</td></tr>
+<tr class="memdesc:af93053e27466c566624301d7b32a68c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of bytes to buffer within each socket before flushing. <br /></td></tr>
+<tr class="separator:af93053e27466c566624301d7b32a68c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa8820e76e3d3471bdc8771591ebf29f7"><td class="memItemLeft" align="right" valign="top"><a id="aa8820e76e3d3471bdc8771591ebf29f7"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-constants_8h.html#aa8820e76e3d3471bdc8771591ebf29f7">GUAC_SOCKET_KEEP_ALIVE_INTERVAL</a>&#160;&#160;&#160;5000</td></tr>
+<tr class="memdesc:aa8820e76e3d3471bdc8771591ebf29f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of milliseconds to wait between keep-alive pings on a socket with keep-alive enabled. <br /></td></tr>
+<tr class="separator:aa8820e76e3d3471bdc8771591ebf29f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Constants related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket-constants_8h_source.html b/doc/1.1.0/libguac/socket-constants_8h_source.html
new file mode 100644
index 0000000..48913d9
--- /dev/null
+++ b/doc/1.1.0/libguac/socket-constants_8h_source.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-constants.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">socket-constants.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="socket-constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_SOCKET_CONSTANTS_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_SOCKET_CONSTANTS_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="socket-constants_8h.html#af93053e27466c566624301d7b32a68c3">   32</a></span>&#160;<span class="preprocessor">#define GUAC_SOCKET_OUTPUT_BUFFER_SIZE 8192</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="socket-constants_8h.html#aa8820e76e3d3471bdc8771591ebf29f7">   38</a></span>&#160;<span class="preprocessor">#define GUAC_SOCKET_KEEP_ALIVE_INTERVAL 5000</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket-fntypes_8h.html b/doc/1.1.0/libguac/socket-fntypes_8h.html
new file mode 100644
index 0000000..769a40d
--- /dev/null
+++ b/doc/1.1.0/libguac/socket-fntypes_8h.html
@@ -0,0 +1,285 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-fntypes.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">socket-fntypes.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Function type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object.  
+<a href="#details">More...</a></p>
+
+<p><a href="socket-fntypes_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a75396c8cb7b0ba91102fcd447a1eb36b"><td class="memItemLeft" align="right" valign="top">typedef ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">guac_socket_read_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket, void *buf, size_t count)</td></tr>
+<tr class="memdesc:a75396c8cb7b0ba91102fcd447a1eb36b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic read handler for socket read operations, modeled after the standard POSIX read() function.  <a href="#a75396c8cb7b0ba91102fcd447a1eb36b">More...</a><br /></td></tr>
+<tr class="separator:a75396c8cb7b0ba91102fcd447a1eb36b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7198af0a6bbac52794eb248c81d90c6a"><td class="memItemLeft" align="right" valign="top">typedef ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">guac_socket_write_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const void *buf, size_t count)</td></tr>
+<tr class="memdesc:a7198af0a6bbac52794eb248c81d90c6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic write handler for socket write operations, modeled after the standard POSIX write() function.  <a href="#a7198af0a6bbac52794eb248c81d90c6a">More...</a><br /></td></tr>
+<tr class="separator:a7198af0a6bbac52794eb248c81d90c6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a934350207615e0e2066954f9484153f8"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">guac_socket_select_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int usec_timeout)</td></tr>
+<tr class="memdesc:a934350207615e0e2066954f9484153f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic handler for socket select operations, similar to the POSIX select() function.  <a href="#a934350207615e0e2066954f9484153f8">More...</a><br /></td></tr>
+<tr class="separator:a934350207615e0e2066954f9484153f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a894bc88c6288ee6b6713a2ea64bd05a0"><td class="memItemLeft" align="right" valign="top">typedef ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">guac_socket_flush_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a894bc88c6288ee6b6713a2ea64bd05a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic flush handler for socket flush operations.  <a href="#a894bc88c6288ee6b6713a2ea64bd05a0">More...</a><br /></td></tr>
+<tr class="separator:a894bc88c6288ee6b6713a2ea64bd05a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b714d65f18d57bb52f929c7d3909526"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">guac_socket_lock_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a1b714d65f18d57bb52f929c7d3909526"><td class="mdescLeft">&#160;</td><td class="mdescRight">When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, a handler of this type will be called whenever exclusive access to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> is required, such as when <a class="el" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1" title="Marks the beginning of a Guacamole protocol instruction. ">guac_socket_instruction_begin()</a> is called.  <a href="#a1b714d65f18d57bb52f929c7d3909526">More...</a><br /></td></tr>
+<tr class="separator:a1b714d65f18d57bb52f929c7d3909526"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1a6f8eb81522aab289c9f4ed6051d3f"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">guac_socket_unlock_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:af1a6f8eb81522aab289c9f4ed6051d3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, a handler of this type will be called whenever exclusive access to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> is no longer required, such as when <a class="el" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94" title="Marks the end of a Guacamole protocol instruction. ">guac_socket_instruction_end()</a> is called.  <a href="#af1a6f8eb81522aab289c9f4ed6051d3f">More...</a><br /></td></tr>
+<tr class="separator:af1a6f8eb81522aab289c9f4ed6051d3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9700a8ba2011d6e6ce13e3e6c6397fc2"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">guac_socket_free_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a9700a8ba2011d6e6ce13e3e6c6397fc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic handler for the closing of a socket, modeled after the standard POSIX close() function.  <a href="#a9700a8ba2011d6e6ce13e3e6c6397fc2">More...</a><br /></td></tr>
+<tr class="separator:a9700a8ba2011d6e6ce13e3e6c6397fc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Function type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. </p>
+</div><h2 class="groupheader">Typedef Documentation</h2>
+<a id="a894bc88c6288ee6b6713a2ea64bd05a0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a894bc88c6288ee6b6713a2ea64bd05a0">&#9670;&nbsp;</a></span>guac_socket_flush_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ssize_t guac_socket_flush_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Generic flush handler for socket flush operations. </p>
+<p>This function is not modeled after any POSIX function. When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, a handler of this type will be called when <a class="el" href="socket_8h.html#ababc834d5812e006b55a79da417bfe12" title="Flushes the write buffer. ">guac_socket_flush()</a> is called.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> being flushed.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs during flush. </dd></dl>
+
+</div>
+</div>
+<a id="a9700a8ba2011d6e6ce13e3e6c6397fc2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9700a8ba2011d6e6ce13e3e6c6397fc2">&#9670;&nbsp;</a></span>guac_socket_free_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_socket_free_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Generic handler for the closing of a socket, modeled after the standard POSIX close() function. </p>
+<p>When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, a handler of this type will be called when the socket is closed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> being closed. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or -1 if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="a1b714d65f18d57bb52f929c7d3909526"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1b714d65f18d57bb52f929c7d3909526">&#9670;&nbsp;</a></span>guac_socket_lock_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_socket_lock_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, a handler of this type will be called whenever exclusive access to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> is required, such as when <a class="el" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1" title="Marks the beginning of a Guacamole protocol instruction. ">guac_socket_instruction_begin()</a> is called. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> to which exclusive access is required. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a75396c8cb7b0ba91102fcd447a1eb36b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a75396c8cb7b0ba91102fcd447a1eb36b">&#9670;&nbsp;</a></span>guac_socket_read_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ssize_t guac_socket_read_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket, void *buf, size_t count)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Generic read handler for socket read operations, modeled after the standard POSIX read() function. </p>
+<p>When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, a handler of this type will be called when data needs to be read into the socket.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> being read from. </td></tr>
+    <tr><td class="paramname">buf</td><td>The arbitrary buffer we must populate with data. </td></tr>
+    <tr><td class="paramname">count</td><td>The maximum number of bytes to read into the buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes read, or -1 if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="a934350207615e0e2066954f9484153f8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a934350207615e0e2066954f9484153f8">&#9670;&nbsp;</a></span>guac_socket_select_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_socket_select_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int usec_timeout)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Generic handler for socket select operations, similar to the POSIX select() function. </p>
+<p>When <a class="el" href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7" title="Waits for input to be available on the given guac_socket object until the specified timeout elapses...">guac_socket_select()</a> is called on a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, its guac_socket_select_handler will be invoked, if defined.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> being selected. </td></tr>
+    <tr><td class="paramname">usec_timeout</td><td>The maximum number of microseconds to wait for data, or -1 to potentially wait forever. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Positive on success, zero if the timeout elapsed and no data is available, negative on error. </dd></dl>
+
+</div>
+</div>
+<a id="af1a6f8eb81522aab289c9f4ed6051d3f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af1a6f8eb81522aab289c9f4ed6051d3f">&#9670;&nbsp;</a></span>guac_socket_unlock_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_socket_unlock_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, a handler of this type will be called whenever exclusive access to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> is no longer required, such as when <a class="el" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94" title="Marks the end of a Guacamole protocol instruction. ">guac_socket_instruction_end()</a> is called. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> to which exclusive access is no longer required. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a7198af0a6bbac52794eb248c81d90c6a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7198af0a6bbac52794eb248c81d90c6a">&#9670;&nbsp;</a></span>guac_socket_write_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ssize_t guac_socket_write_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const void *buf, size_t count)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Generic write handler for socket write operations, modeled after the standard POSIX write() function. </p>
+<p>When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, a handler of this type will be called when data needs to be written to the socket.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> being written to. </td></tr>
+    <tr><td class="paramname">buf</td><td>The arbitrary buffer containing data to be written. </td></tr>
+    <tr><td class="paramname">count</td><td>The maximum number of bytes to written to the buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes written, or -1 if an error occurs. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket-fntypes_8h_source.html b/doc/1.1.0/libguac/socket-fntypes_8h_source.html
new file mode 100644
index 0000000..1176be4
--- /dev/null
+++ b/doc/1.1.0/libguac/socket-fntypes_8h_source.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-fntypes.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">socket-fntypes.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="socket-fntypes_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_SOCKET_FNTYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_SOCKET_FNTYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">   43</a></span>&#160;<span class="keyword">typedef</span> ssize_t <a class="code" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">guac_socket_read_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        <span class="keywordtype">void</span>* buf, <span class="keywordtype">size_t</span> count);</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">   56</a></span>&#160;<span class="keyword">typedef</span> ssize_t <a class="code" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">guac_socket_write_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">void</span>* buf, <span class="keywordtype">size_t</span> count);</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">   70</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">guac_socket_select_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> usec_timeout);</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">   83</a></span>&#160;<span class="keyword">typedef</span> ssize_t <a class="code" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">guac_socket_flush_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">   93</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">guac_socket_lock_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">  103</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">guac_socket_unlock_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">  113</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">guac_socket_free_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div><div class="ttc" id="socket-fntypes_8h_html_a1b714d65f18d57bb52f929c7d3909526"><div class="ttname"><a href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">guac_socket_lock_handler</a></div><div class="ttdeci">void guac_socket_lock_handler(guac_socket *socket)</div><div class="ttdoc">When set within a guac_socket, a handler of this type will be called whenever exclusive access to the...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:93</div></div>
+<div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object. </div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a894bc88c6288ee6b6713a2ea64bd05a0"><div class="ttname"><a href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">guac_socket_flush_handler</a></div><div class="ttdeci">ssize_t guac_socket_flush_handler(guac_socket *socket)</div><div class="ttdoc">Generic flush handler for socket flush operations. </div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:83</div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole. </div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a7198af0a6bbac52794eb248c81d90c6a"><div class="ttname"><a href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">guac_socket_write_handler</a></div><div class="ttdeci">ssize_t guac_socket_write_handler(guac_socket *socket, const void *buf, size_t count)</div><div class="ttdoc">Generic write handler for socket write operations, modeled after the standard POSIX write() function...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:56</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_af1a6f8eb81522aab289c9f4ed6051d3f"><div class="ttname"><a href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">guac_socket_unlock_handler</a></div><div class="ttdeci">void guac_socket_unlock_handler(guac_socket *socket)</div><div class="ttdoc">When set within a guac_socket, a handler of this type will be called whenever exclusive access to the...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:103</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a9700a8ba2011d6e6ce13e3e6c6397fc2"><div class="ttname"><a href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">guac_socket_free_handler</a></div><div class="ttdeci">int guac_socket_free_handler(guac_socket *socket)</div><div class="ttdoc">Generic handler for the closing of a socket, modeled after the standard POSIX close() function...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:113</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a934350207615e0e2066954f9484153f8"><div class="ttname"><a href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">guac_socket_select_handler</a></div><div class="ttdeci">int guac_socket_select_handler(guac_socket *socket, int usec_timeout)</div><div class="ttdoc">Generic handler for socket select operations, similar to the POSIX select() function. </div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:70</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a75396c8cb7b0ba91102fcd447a1eb36b"><div class="ttname"><a href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">guac_socket_read_handler</a></div><div class="ttdeci">ssize_t guac_socket_read_handler(guac_socket *socket, void *buf, size_t count)</div><div class="ttdoc">Generic read handler for socket read operations, modeled after the standard POSIX read() function...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:43</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket-ssl_8h.html b/doc/1.1.0/libguac/socket-ssl_8h.html
new file mode 100644
index 0000000..71268a9
--- /dev/null
+++ b/doc/1.1.0/libguac/socket-ssl_8h.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-ssl.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">socket-ssl.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides an SSL/TLS implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>.  
+<a href="#details">More...</a></p>
+
+<p><a href="socket-ssl_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket__ssl__data.html">guac_socket_ssl_data</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">SSL socket-specific data.  <a href="structguac__socket__ssl__data.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:afa6689181258a29460b978f1e496f790"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-ssl_8h.html#afa6689181258a29460b978f1e496f790">guac_socket_open_secure</a> (SSL_CTX *context, int fd)</td></tr>
+<tr class="memdesc:afa6689181258a29460b978f1e496f790"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which will use SSL for all communication.  <a href="#afa6689181258a29460b978f1e496f790">More...</a><br /></td></tr>
+<tr class="separator:afa6689181258a29460b978f1e496f790"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides an SSL/TLS implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>. </p>
+<p>This header will only be available if libguac was built with SSL support. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="afa6689181258a29460b978f1e496f790"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afa6689181258a29460b978f1e496f790">&#9670;&nbsp;</a></span>guac_socket_open_secure()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_open_secure </td>
+          <td>(</td>
+          <td class="paramtype">SSL_CTX *&#160;</td>
+          <td class="paramname"><em>context</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>fd</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Creates a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which will use SSL for all communication. </p>
+<p>Freeing this <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> will automatically close the associated file descriptor.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">context</td><td>The SSL_CTX structure describing the desired SSL configuration.</td></tr>
+    <tr><td class="paramname">fd</td><td>The file descriptor to use for the SSL connection underlying the created <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A newly-allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which will transparently use SSL for all communication. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket-ssl_8h_source.html b/doc/1.1.0/libguac/socket-ssl_8h_source.html
new file mode 100644
index 0000000..105e515
--- /dev/null
+++ b/doc/1.1.0/libguac/socket-ssl_8h_source.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-ssl.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">socket-ssl.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="socket-ssl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef __GUACD_SOCKET_SSL_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define __GUACD_SOCKET_SSL_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &lt;openssl/ssl.h&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="structguac__socket__ssl__data.html">   38</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__socket__ssl__data.html">guac_socket_ssl_data</a> {</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a">   44</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a">fd</a>;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f">   49</a></span>&#160;    SSL_CTX* <a class="code" href="structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f">context</a>;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac">   55</a></span>&#160;    SSL* <a class="code" href="structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac">ssl</a>;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;} <a class="code" href="structguac__socket__ssl__data.html">guac_socket_ssl_data</a>;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket-ssl_8h.html#afa6689181258a29460b978f1e496f790">guac_socket_open_secure</a>(SSL_CTX* context, <span class="keywordtype">int</span> fd);</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object. </div></div>
+<div class="ttc" id="structguac__socket__ssl__data_html"><div class="ttname"><a href="structguac__socket__ssl__data.html">guac_socket_ssl_data</a></div><div class="ttdoc">SSL socket-specific data. </div><div class="ttdef"><b>Definition:</b> socket-ssl.h:38</div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole. </div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="structguac__socket__ssl__data_html_ab86a780b4801fdbf411a24255cf700ac"><div class="ttname"><a href="structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac">guac_socket_ssl_data::ssl</a></div><div class="ttdeci">SSL * ssl</div><div class="ttdoc">The SSL connection, created automatically via guac_socket_open_secure(). </div><div class="ttdef"><b>Definition:</b> socket-ssl.h:55</div></div>
+<div class="ttc" id="structguac__socket__ssl__data_html_a22b295ba9b80cc15a5dfa4c06aea541f"><div class="ttname"><a href="structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f">guac_socket_ssl_data::context</a></div><div class="ttdeci">SSL_CTX * context</div><div class="ttdoc">The current SSL context. </div><div class="ttdef"><b>Definition:</b> socket-ssl.h:49</div></div>
+<div class="ttc" id="socket-ssl_8h_html_afa6689181258a29460b978f1e496f790"><div class="ttname"><a href="socket-ssl_8h.html#afa6689181258a29460b978f1e496f790">guac_socket_open_secure</a></div><div class="ttdeci">guac_socket * guac_socket_open_secure(SSL_CTX *context, int fd)</div><div class="ttdoc">Creates a new guac_socket which will use SSL for all communication. </div></div>
+<div class="ttc" id="structguac__socket__ssl__data_html_a4b6134fe4c41d78e42abbe5d8c27330a"><div class="ttname"><a href="structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a">guac_socket_ssl_data::fd</a></div><div class="ttdeci">int fd</div><div class="ttdoc">The file descriptor that SSL communication will take place over. </div><div class="ttdef"><b>Definition:</b> socket-ssl.h:44</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket-types_8h.html b/doc/1.1.0/libguac/socket-types_8h.html
new file mode 100644
index 0000000..cb01536
--- /dev/null
+++ b/doc/1.1.0/libguac/socket-types_8h.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<div class="title">socket-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object.  
+<a href="#details">More...</a></p>
+
+<p><a href="socket-types_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a0ac0c0cd123b57d8aba5e6ec6fd20939"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a> { <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5">GUAC_SOCKET_OPEN</a>, 
+<a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e">GUAC_SOCKET_CLOSED</a>
+ }</td></tr>
+<tr class="memdesc:a0ac0c0cd123b57d8aba5e6ec6fd20939"><td class="mdescLeft">&#160;</td><td class="mdescRight">Possible current states of a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>.  <a href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">More...</a><br /></td></tr>
+<tr class="separator:a0ac0c0cd123b57d8aba5e6ec6fd20939"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. </p>
+</div><h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="a0ac0c0cd123b57d8aba5e6ec6fd20939"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0ac0c0cd123b57d8aba5e6ec6fd20939">&#9670;&nbsp;</a></span>guac_socket_state</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Possible current states of a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5"></a>GUAC_SOCKET_OPEN&#160;</td><td class="fielddoc"><p>The socket is open and can be written to / read from. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e"></a>GUAC_SOCKET_CLOSED&#160;</td><td class="fielddoc"><p>The socket is closed. </p>
+<p>Reads and writes will fail. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket-types_8h_source.html b/doc/1.1.0/libguac/socket-types_8h_source.html
new file mode 100644
index 0000000..eaf6ef8
--- /dev/null
+++ b/doc/1.1.0/libguac/socket-types_8h_source.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">socket-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="socket-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_SOCKET_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_SOCKET_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__socket.html">guac_socket</a> <a class="code" href="structguac__socket.html">guac_socket</a>;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">   38</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a> {</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5">   43</a></span>&#160;    <a class="code" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5">GUAC_SOCKET_OPEN</a>,</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e">   48</a></span>&#160;    <a class="code" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e">GUAC_SOCKET_CLOSED</a></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;} <a class="code" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a>;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="ttc" id="socket-types_8h_html_a0ac0c0cd123b57d8aba5e6ec6fd20939"><div class="ttname"><a href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a></div><div class="ttdeci">guac_socket_state</div><div class="ttdoc">Possible current states of a guac_socket. </div><div class="ttdef"><b>Definition:</b> socket-types.h:38</div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole. </div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="socket-types_8h_html_a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5"><div class="ttname"><a href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5">GUAC_SOCKET_OPEN</a></div><div class="ttdoc">The socket is open and can be written to / read from. </div><div class="ttdef"><b>Definition:</b> socket-types.h:43</div></div>
+<div class="ttc" id="socket-types_8h_html_a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e"><div class="ttname"><a href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e">GUAC_SOCKET_CLOSED</a></div><div class="ttdoc">The socket is closed. </div><div class="ttdef"><b>Definition:</b> socket-types.h:48</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket-wsa_8h.html b/doc/1.1.0/libguac/socket-wsa_8h.html
new file mode 100644
index 0000000..d7c4209
--- /dev/null
+++ b/doc/1.1.0/libguac/socket-wsa_8h.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-wsa.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">socket-wsa.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides an implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> specific to the Windows Socket API (aka WSA or "winsock").  
+<a href="#details">More...</a></p>
+
+<p><a href="socket-wsa_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac020ae320548582cd76d18baca0ba3be"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be">guac_socket_open_wsa</a> (SOCKET sock)</td></tr>
+<tr class="memdesc:ac020ae320548582cd76d18baca0ba3be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which will use the Windows Socket API (aka WSA or "winsock") for all communication.  <a href="#ac020ae320548582cd76d18baca0ba3be">More...</a><br /></td></tr>
+<tr class="separator:ac020ae320548582cd76d18baca0ba3be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides an implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> specific to the Windows Socket API (aka WSA or "winsock"). </p>
+<p>This header will only be available if libguac was built with WSA support. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="ac020ae320548582cd76d18baca0ba3be"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac020ae320548582cd76d18baca0ba3be">&#9670;&nbsp;</a></span>guac_socket_open_wsa()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_open_wsa </td>
+          <td>(</td>
+          <td class="paramtype">SOCKET&#160;</td>
+          <td class="paramname"><em>sock</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Creates a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which will use the Windows Socket API (aka WSA or "winsock") for all communication. </p>
+<p>Freeing this <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> will automatically close the associated SOCKET handle.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sock</td><td>The WSA SOCKET handle to use for the connection underlying the created <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A newly-allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which will transparently use the Windows Socket API for all communication. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket-wsa_8h_source.html b/doc/1.1.0/libguac/socket-wsa_8h_source.html
new file mode 100644
index 0000000..3efe5ed
--- /dev/null
+++ b/doc/1.1.0/libguac/socket-wsa_8h_source.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-wsa.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">socket-wsa.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="socket-wsa_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_SOCKET_WSA_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_SOCKET_WSA_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &lt;winsock2.h&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be">guac_socket_open_wsa</a>(SOCKET sock);</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object. </div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole. </div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="socket-wsa_8h_html_ac020ae320548582cd76d18baca0ba3be"><div class="ttname"><a href="socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be">guac_socket_open_wsa</a></div><div class="ttdeci">guac_socket * guac_socket_open_wsa(SOCKET sock)</div><div class="ttdoc">Creates a new guac_socket which will use the Windows Socket API (aka WSA or &quot;winsock&quot;) for all commun...</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket_8h.html b/doc/1.1.0/libguac/socket_8h.html
new file mode 100644
index 0000000..283aa39
--- /dev/null
+++ b/doc/1.1.0/libguac/socket_8h.html
@@ -0,0 +1,736 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">socket.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Defines the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object and functionss for using and manipulating it.  
+<a href="#details">More...</a></p>
+
+<p><a href="socket_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html">guac_socket</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The core I/O object of Guacamole.  <a href="structguac__socket.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a7e5859b812923b894779f59353fdadb4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a7e5859b812923b894779f59353fdadb4">guac_socket_alloc</a> ()</td></tr>
+<tr class="memdesc:a7e5859b812923b894779f59353fdadb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new, completely blank <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>.  <a href="#a7e5859b812923b894779f59353fdadb4">More...</a><br /></td></tr>
+<tr class="separator:a7e5859b812923b894779f59353fdadb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a376df8efcc02a7104504f104433884ed"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a376df8efcc02a7104504f104433884ed">guac_socket_free</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a376df8efcc02a7104504f104433884ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> and all associated resources.  <a href="#a376df8efcc02a7104504f104433884ed">More...</a><br /></td></tr>
+<tr class="separator:a376df8efcc02a7104504f104433884ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d8c5111a8234c7785ae23f379f7db03"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03">guac_socket_require_keep_alive</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a1d8c5111a8234c7785ae23f379f7db03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares that the given socket must automatically send a keep-alive ping to ensure neither side of the socket times out while the socket is open.  <a href="#a1d8c5111a8234c7785ae23f379f7db03">More...</a><br /></td></tr>
+<tr class="separator:a1d8c5111a8234c7785ae23f379f7db03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00c8f00ab54c42e42c9f489caf5478b1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1">guac_socket_instruction_begin</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a00c8f00ab54c42e42c9f489caf5478b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Marks the beginning of a Guacamole protocol instruction.  <a href="#a00c8f00ab54c42e42c9f489caf5478b1">More...</a><br /></td></tr>
+<tr class="separator:a00c8f00ab54c42e42c9f489caf5478b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a603c23b24e2e2e95eeb2ce08d8115e94"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94">guac_socket_instruction_end</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a603c23b24e2e2e95eeb2ce08d8115e94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Marks the end of a Guacamole protocol instruction.  <a href="#a603c23b24e2e2e95eeb2ce08d8115e94">More...</a><br /></td></tr>
+<tr class="separator:a603c23b24e2e2e95eeb2ce08d8115e94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a076f62b9b6082260462e18ca77c64e7a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a076f62b9b6082260462e18ca77c64e7a">guac_socket_open</a> (int fd)</td></tr>
+<tr class="memdesc:a076f62b9b6082260462e18ca77c64e7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object with the given open file descriptor.  <a href="#a076f62b9b6082260462e18ca77c64e7a">More...</a><br /></td></tr>
+<tr class="separator:a076f62b9b6082260462e18ca77c64e7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af23ab23c93eb09eac0e15a87f5690bda"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda">guac_socket_nest</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *parent, int index)</td></tr>
+<tr class="memdesc:af23ab23c93eb09eac0e15a87f5690bda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which writes all data via nest instructions to the given existing, open <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>.  <a href="#af23ab23c93eb09eac0e15a87f5690bda">More...</a><br /></td></tr>
+<tr class="separator:af23ab23c93eb09eac0e15a87f5690bda"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add9c80240912b0c8d309cf7de94f5305"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#add9c80240912b0c8d309cf7de94f5305">guac_socket_tee</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *primary, <a class="el" href="structguac__socket.html">guac_socket</a> *secondary)</td></tr>
+<tr class="memdesc:add9c80240912b0c8d309cf7de94f5305"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which delegates all socket operations to the given primary socket, while simultaneously duplicating all written data to the secondary socket.  <a href="#add9c80240912b0c8d309cf7de94f5305">More...</a><br /></td></tr>
+<tr class="separator:add9c80240912b0c8d309cf7de94f5305"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2b570fec1d86f1eb09e057d4bbed3be6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6">guac_socket_broadcast</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a2b570fec1d86f1eb09e057d4bbed3be6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which duplicates all instructions written across the sockets of each connected user of the given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>.  <a href="#a2b570fec1d86f1eb09e057d4bbed3be6">More...</a><br /></td></tr>
+<tr class="separator:a2b570fec1d86f1eb09e057d4bbed3be6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a57a963e37377de2104c2d785980ff400"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a57a963e37377de2104c2d785980ff400">guac_socket_write_int</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int64_t i)</td></tr>
+<tr class="memdesc:a57a963e37377de2104c2d785980ff400"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes the given unsigned int to the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object.  <a href="#a57a963e37377de2104c2d785980ff400">More...</a><br /></td></tr>
+<tr class="separator:a57a963e37377de2104c2d785980ff400"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0cb48c7896361b522ae5a222a3b5efc"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc">guac_socket_write_string</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *str)</td></tr>
+<tr class="memdesc:ad0cb48c7896361b522ae5a222a3b5efc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes the given string to the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object.  <a href="#ad0cb48c7896361b522ae5a222a3b5efc">More...</a><br /></td></tr>
+<tr class="separator:ad0cb48c7896361b522ae5a222a3b5efc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7ec68bc42436ba316805718c292c510"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#ac7ec68bc42436ba316805718c292c510">guac_socket_write_base64</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const void *buf, size_t count)</td></tr>
+<tr class="memdesc:ac7ec68bc42436ba316805718c292c510"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes the given binary data to the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object as base64- encoded data.  <a href="#ac7ec68bc42436ba316805718c292c510">More...</a><br /></td></tr>
+<tr class="separator:ac7ec68bc42436ba316805718c292c510"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb6eb960de27526bc96e1f9af797e2c4"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4">guac_socket_write</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const void *buf, size_t count)</td></tr>
+<tr class="memdesc:adb6eb960de27526bc96e1f9af797e2c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes the given data to the specified socket.  <a href="#adb6eb960de27526bc96e1f9af797e2c4">More...</a><br /></td></tr>
+<tr class="separator:adb6eb960de27526bc96e1f9af797e2c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5d6846212d792c5bce7f8a4fd46cd31"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31">guac_socket_read</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, void *buf, size_t count)</td></tr>
+<tr class="memdesc:af5d6846212d792c5bce7f8a4fd46cd31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempts to read data from the socket, filling up to the specified number of bytes in the given buffer.  <a href="#af5d6846212d792c5bce7f8a4fd46cd31">More...</a><br /></td></tr>
+<tr class="separator:af5d6846212d792c5bce7f8a4fd46cd31"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a09d5f60d75c57640a4c483d42445c1ab"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab">guac_socket_flush_base64</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a09d5f60d75c57640a4c483d42445c1ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flushes the base64 buffer, writing padding characters as necessary.  <a href="#a09d5f60d75c57640a4c483d42445c1ab">More...</a><br /></td></tr>
+<tr class="separator:a09d5f60d75c57640a4c483d42445c1ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ababc834d5812e006b55a79da417bfe12"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#ababc834d5812e006b55a79da417bfe12">guac_socket_flush</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:ababc834d5812e006b55a79da417bfe12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flushes the write buffer.  <a href="#ababc834d5812e006b55a79da417bfe12">More...</a><br /></td></tr>
+<tr class="separator:ababc834d5812e006b55a79da417bfe12"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a41b0d7a25ccda3d0ae20143880cf53b7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7">guac_socket_select</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int usec_timeout)</td></tr>
+<tr class="memdesc:a41b0d7a25ccda3d0ae20143880cf53b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits for input to be available on the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object until the specified timeout elapses.  <a href="#a41b0d7a25ccda3d0ae20143880cf53b7">More...</a><br /></td></tr>
+<tr class="separator:a41b0d7a25ccda3d0ae20143880cf53b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Defines the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object and functionss for using and manipulating it. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a7e5859b812923b894779f59353fdadb4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7e5859b812923b894779f59353fdadb4">&#9670;&nbsp;</a></span>guac_socket_alloc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_alloc </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new, completely blank <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>. </p>
+<p>This <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> will do absolutely nothing when used unless its handlers are defined.</p>
+<dl class="section return"><dt>Returns</dt><dd>A newly-allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, or NULL if the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> could not be allocated. </dd></dl>
+
+</div>
+</div>
+<a id="a2b570fec1d86f1eb09e057d4bbed3be6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2b570fec1d86f1eb09e057d4bbed3be6">&#9670;&nbsp;</a></span>guac_socket_broadcast()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_broadcast </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which duplicates all instructions written across the sockets of each connected user of the given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. </p>
+<p>The returned socket is a write-only socket. Attempts to read from the socket will fail. If a write occurs while no users are connected, that write will simply be dropped.</p>
+<p>Return values (error codes) from each user's socket will not affect the in-progress write, but each failing user will be forcibly stopped with <a class="el" href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf" title="Signals the given user that it must disconnect, or advises cooperating services that the given user i...">guac_user_stop()</a>.</p>
+<p>If an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object, NULL is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client associated with the group of connected users across which duplicates of all instructions should be written.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A write-only <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object which broadcasts copies of all instructions written across all connected users of the given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>, or NULL if an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. </dd></dl>
+
+</div>
+</div>
+<a id="ababc834d5812e006b55a79da417bfe12"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ababc834d5812e006b55a79da417bfe12">&#9670;&nbsp;</a></span>guac_socket_flush()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_flush </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Flushes the write buffer. </p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object to flush </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs during flush. </dd></dl>
+
+</div>
+</div>
+<a id="a09d5f60d75c57640a4c483d42445c1ab"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a09d5f60d75c57640a4c483d42445c1ab">&#9670;&nbsp;</a></span>guac_socket_flush_base64()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_flush_base64 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Flushes the base64 buffer, writing padding characters as necessary. </p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object to flush </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs during flush. </dd></dl>
+
+</div>
+</div>
+<a id="a376df8efcc02a7104504f104433884ed"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a376df8efcc02a7104504f104433884ed">&#9670;&nbsp;</a></span>guac_socket_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_socket_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Frees the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> and all associated resources. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a00c8f00ab54c42e42c9f489caf5478b1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a00c8f00ab54c42e42c9f489caf5478b1">&#9670;&nbsp;</a></span>guac_socket_instruction_begin()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_socket_instruction_begin </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Marks the beginning of a Guacamole protocol instruction. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> beginning an instruction. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a603c23b24e2e2e95eeb2ce08d8115e94"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a603c23b24e2e2e95eeb2ce08d8115e94">&#9670;&nbsp;</a></span>guac_socket_instruction_end()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_socket_instruction_end </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Marks the end of a Guacamole protocol instruction. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> ending an instruction. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="af23ab23c93eb09eac0e15a87f5690bda"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af23ab23c93eb09eac0e15a87f5690bda">&#9670;&nbsp;</a></span>guac_socket_nest()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_nest </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>parent</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which writes all data via nest instructions to the given existing, open <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>. </p>
+<p>Freeing the returned <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> has no effect on the underlying, nested <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>.</p>
+<p>If an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object, NULL is returned, and guac_error is set appropriately.</p>
+<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>The "nest" instruction and the corresponding <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> implementation are no longer necessary, having been replaced by the streaming instructions ("blob", "ack", "end"). Code using nested sockets or the "nest" instruction should instead write to a normal socket directly.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parent</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> this new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> should write nest instructions to. </td></tr>
+    <tr><td class="paramname">index</td><td>The stream index to use for the written nest instructions. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A newly allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object associated with the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> and stream index, or NULL if an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. </dd></dl>
+
+</div>
+</div>
+<a id="a076f62b9b6082260462e18ca77c64e7a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a076f62b9b6082260462e18ca77c64e7a">&#9670;&nbsp;</a></span>guac_socket_open()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_open </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>fd</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object with the given open file descriptor. </p>
+<p>The file descriptor will be automatically closed when the allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> is freed.</p>
+<p>If an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object, NULL is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">fd</td><td>An open file descriptor that this <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object should manage. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A newly allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object associated with the given file descriptor, or NULL if an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. </dd></dl>
+
+</div>
+</div>
+<a id="af5d6846212d792c5bce7f8a4fd46cd31"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af5d6846212d792c5bce7f8a4fd46cd31">&#9670;&nbsp;</a></span>guac_socket_read()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_read </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>buf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>count</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Attempts to read data from the socket, filling up to the specified number of bytes in the given buffer. </p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> to read from. </td></tr>
+    <tr><td class="paramname">buf</td><td>The buffer to read bytes into. </td></tr>
+    <tr><td class="paramname">count</td><td>The maximum number of bytes to read. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes read, or non-zero if an error occurs while reading. </dd></dl>
+
+</div>
+</div>
+<a id="a1d8c5111a8234c7785ae23f379f7db03"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1d8c5111a8234c7785ae23f379f7db03">&#9670;&nbsp;</a></span>guac_socket_require_keep_alive()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_socket_require_keep_alive </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Declares that the given socket must automatically send a keep-alive ping to ensure neither side of the socket times out while the socket is open. </p>
+<p>This ping will take the form of a "nop" instruction.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> to declare as requiring an automatic keep-alive ping. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a41b0d7a25ccda3d0ae20143880cf53b7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a41b0d7a25ccda3d0ae20143880cf53b7">&#9670;&nbsp;</a></span>guac_socket_select()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_socket_select </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>usec_timeout</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Waits for input to be available on the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object until the specified timeout elapses. </p>
+<p>If an error occurs while waiting, a negative value is returned, and guac_error is set appropriately.</p>
+<p>If a timeout occurs while waiting, zero value is returned, and guac_error is set to GUAC_STATUS_INPUT_TIMEOUT.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object to wait for. </td></tr>
+    <tr><td class="paramname">usec_timeout</td><td>The maximum number of microseconds to wait for data, or -1 to potentially wait forever. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Positive on success, zero if the timeout elapsed and no data is available, negative on error. </dd></dl>
+
+</div>
+</div>
+<a id="add9c80240912b0c8d309cf7de94f5305"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#add9c80240912b0c8d309cf7de94f5305">&#9670;&nbsp;</a></span>guac_socket_tee()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_tee </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>primary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>secondary</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which delegates all socket operations to the given primary socket, while simultaneously duplicating all written data to the secondary socket. </p>
+<p>Freeing the returned <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> will free both primary and secondary sockets.</p>
+<p>Return values (error codes) will come only from the primary socket. Locks (like those used by <a class="el" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1" title="Marks the beginning of a Guacamole protocol instruction. ">guac_socket_instruction_begin()</a> and <a class="el" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94" title="Marks the end of a Guacamole protocol instruction. ">guac_socket_instruction_end()</a>) will affect only the primary socket.</p>
+<p>If an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object, NULL is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">primary</td><td>The primary <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> to which all socket operations should be delegated. The error codes returned by socket operations, if any, will always come from this socket. This socket will also be the only socket locked when instructions begin (or unlocked when instructions end).</td></tr>
+    <tr><td class="paramname">secondary</td><td>The secondary <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> to which all data written to the primary <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> should be copied. If an error prevents the write from succeeding, that error will be ignored. Only errors from the primary <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> will be acknowledged.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A newly allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object associated with the given primary and secondary sockets, or NULL if an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. </dd></dl>
+
+</div>
+</div>
+<a id="adb6eb960de27526bc96e1f9af797e2c4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adb6eb960de27526bc96e1f9af797e2c4">&#9670;&nbsp;</a></span>guac_socket_write()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_write </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const void *&#160;</td>
+          <td class="paramname"><em>buf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>count</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes the given data to the specified socket. </p>
+<p>The data written may be buffered until the buffer is flushed automatically or manually.</p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object to write to. </td></tr>
+    <tr><td class="paramname">buf</td><td>A buffer containing the data to write. </td></tr>
+    <tr><td class="paramname">count</td><td>The number of bytes to write. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs while writing. </dd></dl>
+
+</div>
+</div>
+<a id="ac7ec68bc42436ba316805718c292c510"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac7ec68bc42436ba316805718c292c510">&#9670;&nbsp;</a></span>guac_socket_write_base64()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_write_base64 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const void *&#160;</td>
+          <td class="paramname"><em>buf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>count</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes the given binary data to the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object as base64- encoded data. </p>
+<p>The data written may be buffered until the buffer is flushed automatically or manually. Beware that, because base64 data is buffered on top of the write buffer already used, a call to <a class="el" href="socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab" title="Flushes the base64 buffer, writing padding characters as necessary. ">guac_socket_flush_base64()</a> MUST be made before non-base64 writes (or writes of an independent block of base64 data) can be made.</p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object to write to. </td></tr>
+    <tr><td class="paramname">buf</td><td>A buffer containing the data to write. </td></tr>
+    <tr><td class="paramname">count</td><td>The number of bytes to write. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs while writing. </dd></dl>
+
+</div>
+</div>
+<a id="a57a963e37377de2104c2d785980ff400"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a57a963e37377de2104c2d785980ff400">&#9670;&nbsp;</a></span>guac_socket_write_int()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_write_int </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int64_t&#160;</td>
+          <td class="paramname"><em>i</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes the given unsigned int to the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. </p>
+<p>The data written may be buffered until the buffer is flushed automatically or manually.</p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object to write to. </td></tr>
+    <tr><td class="paramname">i</td><td>The unsigned int to write. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs while writing. </dd></dl>
+
+</div>
+</div>
+<a id="ad0cb48c7896361b522ae5a222a3b5efc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad0cb48c7896361b522ae5a222a3b5efc">&#9670;&nbsp;</a></span>guac_socket_write_string()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_write_string </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>str</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes the given string to the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. </p>
+<p>The data written may be buffered until the buffer is flushed automatically or manually.</p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object to write to. </td></tr>
+    <tr><td class="paramname">str</td><td>The string to write. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs while writing. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket_8h_source.html b/doc/1.1.0/libguac/socket_8h_source.html
new file mode 100644
index 0000000..c7a3601
--- /dev/null
+++ b/doc/1.1.0/libguac/socket_8h_source.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">socket.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="socket_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_SOCKET_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_SOCKET_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-types_8h.html">client-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-constants_8h.html">socket-constants.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-fntypes_8h.html">socket-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timestamp-types_8h.html">timestamp-types.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structguac__socket.html">   39</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__socket.html">guac_socket</a> {</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d">   44</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d">data</a>;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structguac__socket.html#a10042a8e591737aec8d4db5a3423b250">   49</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">guac_socket_read_handler</a>* <a class="code" href="structguac__socket.html#a10042a8e591737aec8d4db5a3423b250">read_handler</a>;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d">   54</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">guac_socket_write_handler</a>* <a class="code" href="structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d">write_handler</a>;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b">   59</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">guac_socket_flush_handler</a>* <a class="code" href="structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b">flush_handler</a>;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471">   65</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">guac_socket_lock_handler</a>* <a class="code" href="structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471">lock_handler</a>;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="structguac__socket.html#a67be8367b5e1b330ee151b22c692500b">   71</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">guac_socket_unlock_handler</a>* <a class="code" href="structguac__socket.html#a67be8367b5e1b330ee151b22c692500b">unlock_handler</a>;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f">   77</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">guac_socket_select_handler</a>* <a class="code" href="structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f">select_handler</a>;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structguac__socket.html#a1044cde496cfe11c914c623dc1e29678">   82</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">guac_socket_free_handler</a>* <a class="code" href="structguac__socket.html#a1044cde496cfe11c914c623dc1e29678">free_handler</a>;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b">   87</a></span>&#160;    <a class="code" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a> <a class="code" href="structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b">state</a>;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51">   93</a></span>&#160;    <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> <a class="code" href="structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51">last_write_timestamp</a>;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="keywordtype">int</span> __ready;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keywordtype">int</span> __ready_buf[3];</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keywordtype">int</span> __keep_alive_enabled;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    pthread_t __keep_alive_thread;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;};</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket_8h.html#a7e5859b812923b894779f59353fdadb4">guac_socket_alloc</a>();</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="keywordtype">void</span> <a class="code" href="socket_8h.html#a376df8efcc02a7104504f104433884ed">guac_socket_free</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="keywordtype">void</span> <a class="code" href="socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03">guac_socket_require_keep_alive</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<span class="keywordtype">void</span> <a class="code" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1">guac_socket_instruction_begin</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="keywordtype">void</span> <a class="code" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94">guac_socket_instruction_end</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket_8h.html#a076f62b9b6082260462e18ca77c64e7a">guac_socket_open</a>(<span class="keywordtype">int</span> fd);</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda">guac_socket_nest</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* parent, <span class="keywordtype">int</span> index);</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket_8h.html#add9c80240912b0c8d309cf7de94f5305">guac_socket_tee</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* primary, <a class="code" href="structguac__socket.html">guac_socket</a>* secondary);</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6">guac_socket_broadcast</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;ssize_t <a class="code" href="socket_8h.html#a57a963e37377de2104c2d785980ff400">guac_socket_write_int</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, int64_t i);</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;ssize_t <a class="code" href="socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc">guac_socket_write_string</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* str);</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;ssize_t <a class="code" href="socket_8h.html#ac7ec68bc42436ba316805718c292c510">guac_socket_write_base64</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">void</span>* buf, <span class="keywordtype">size_t</span> count);</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;ssize_t <a class="code" href="socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4">guac_socket_write</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">void</span>* buf, <span class="keywordtype">size_t</span> count);</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;ssize_t <a class="code" href="socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31">guac_socket_read</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">void</span>* buf, <span class="keywordtype">size_t</span> count);</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;ssize_t <a class="code" href="socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab">guac_socket_flush_base64</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;ssize_t <a class="code" href="socket_8h.html#ababc834d5812e006b55a79da417bfe12">guac_socket_flush</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;<span class="keywordtype">int</span> <a class="code" href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7">guac_socket_select</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> usec_timeout);</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;</div><div class="ttc" id="socket-types_8h_html_a0ac0c0cd123b57d8aba5e6ec6fd20939"><div class="ttname"><a href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a></div><div class="ttdeci">guac_socket_state</div><div class="ttdoc">Possible current states of a guac_socket. </div><div class="ttdef"><b>Definition:</b> socket-types.h:38</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a1b714d65f18d57bb52f929c7d3909526"><div class="ttname"><a href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">guac_socket_lock_handler</a></div><div class="ttdeci">void guac_socket_lock_handler(guac_socket *socket)</div><div class="ttdoc">When set within a guac_socket, a handler of this type will be called whenever exclusive access to the...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:93</div></div>
+<div class="ttc" id="socket_8h_html_af23ab23c93eb09eac0e15a87f5690bda"><div class="ttname"><a href="socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda">guac_socket_nest</a></div><div class="ttdeci">guac_socket * guac_socket_nest(guac_socket *parent, int index)</div><div class="ttdoc">Allocates and initializes a new guac_socket which writes all data via nest instructions to the given ...</div></div>
+<div class="ttc" id="socket_8h_html_a09d5f60d75c57640a4c483d42445c1ab"><div class="ttname"><a href="socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab">guac_socket_flush_base64</a></div><div class="ttdeci">ssize_t guac_socket_flush_base64(guac_socket *socket)</div><div class="ttdoc">Flushes the base64 buffer, writing padding characters as necessary. </div></div>
+<div class="ttc" id="structguac__socket_html_a1044cde496cfe11c914c623dc1e29678"><div class="ttname"><a href="structguac__socket.html#a1044cde496cfe11c914c623dc1e29678">guac_socket::free_handler</a></div><div class="ttdeci">guac_socket_free_handler * free_handler</div><div class="ttdoc">Handler which will be called when the socket is free&amp;#39;d (closed). </div><div class="ttdef"><b>Definition:</b> socket.h:82</div></div>
+<div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object. </div></div>
+<div class="ttc" id="socket_8h_html_a00c8f00ab54c42e42c9f489caf5478b1"><div class="ttname"><a href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1">guac_socket_instruction_begin</a></div><div class="ttdeci">void guac_socket_instruction_begin(guac_socket *socket)</div><div class="ttdoc">Marks the beginning of a Guacamole protocol instruction. </div></div>
+<div class="ttc" id="socket_8h_html_a2b570fec1d86f1eb09e057d4bbed3be6"><div class="ttname"><a href="socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6">guac_socket_broadcast</a></div><div class="ttdeci">guac_socket * guac_socket_broadcast(guac_client *client)</div><div class="ttdoc">Allocates and initializes a new guac_socket which duplicates all instructions written across the sock...</div></div>
+<div class="ttc" id="socket-constants_8h_html"><div class="ttname"><a href="socket-constants_8h.html">socket-constants.h</a></div><div class="ttdoc">Constants related to the guac_socket object. </div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a894bc88c6288ee6b6713a2ea64bd05a0"><div class="ttname"><a href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">guac_socket_flush_handler</a></div><div class="ttdeci">ssize_t guac_socket_flush_handler(guac_socket *socket)</div><div class="ttdoc">Generic flush handler for socket flush operations. </div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:83</div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole. </div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="socket-fntypes_8h_html"><div class="ttname"><a href="socket-fntypes_8h.html">socket-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the guac_socket object. </div></div>
+<div class="ttc" id="structguac__socket_html_a1d39f1476d3d3440485697a0eabfe471"><div class="ttname"><a href="structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471">guac_socket::lock_handler</a></div><div class="ttdeci">guac_socket_lock_handler * lock_handler</div><div class="ttdoc">Handler which will be called whenever a socket needs to be acquired for exclusive access...</div><div class="ttdef"><b>Definition:</b> socket.h:65</div></div>
+<div class="ttc" id="socket_8h_html_a376df8efcc02a7104504f104433884ed"><div class="ttname"><a href="socket_8h.html#a376df8efcc02a7104504f104433884ed">guac_socket_free</a></div><div class="ttdeci">void guac_socket_free(guac_socket *socket)</div><div class="ttdoc">Frees the given guac_socket and all associated resources. </div></div>
+<div class="ttc" id="socket_8h_html_a076f62b9b6082260462e18ca77c64e7a"><div class="ttname"><a href="socket_8h.html#a076f62b9b6082260462e18ca77c64e7a">guac_socket_open</a></div><div class="ttdeci">guac_socket * guac_socket_open(int fd)</div><div class="ttdoc">Allocates and initializes a new guac_socket object with the given open file descriptor. </div></div>
+<div class="ttc" id="socket_8h_html_ad0cb48c7896361b522ae5a222a3b5efc"><div class="ttname"><a href="socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc">guac_socket_write_string</a></div><div class="ttdeci">ssize_t guac_socket_write_string(guac_socket *socket, const char *str)</div><div class="ttdoc">Writes the given string to the given guac_socket object. </div></div>
+<div class="ttc" id="client-types_8h_html"><div class="ttname"><a href="client-types_8h.html">client-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole client structure, guac_client. </div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a7198af0a6bbac52794eb248c81d90c6a"><div class="ttname"><a href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">guac_socket_write_handler</a></div><div class="ttdeci">ssize_t guac_socket_write_handler(guac_socket *socket, const void *buf, size_t count)</div><div class="ttdoc">Generic write handler for socket write operations, modeled after the standard POSIX write() function...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:56</div></div>
+<div class="ttc" id="structguac__socket_html_a0f5f24200b0dad4ef1443b863d1bfc7d"><div class="ttname"><a href="structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d">guac_socket::write_handler</a></div><div class="ttdeci">guac_socket_write_handler * write_handler</div><div class="ttdoc">Handler which will be called whenever data is written to this socket. </div><div class="ttdef"><b>Definition:</b> socket.h:54</div></div>
+<div class="ttc" id="socket_8h_html_ac7ec68bc42436ba316805718c292c510"><div class="ttname"><a href="socket_8h.html#ac7ec68bc42436ba316805718c292c510">guac_socket_write_base64</a></div><div class="ttdeci">ssize_t guac_socket_write_base64(guac_socket *socket, const void *buf, size_t count)</div><div class="ttdoc">Writes the given binary data to the given guac_socket object as base64- encoded data. </div></div>
+<div class="ttc" id="structguac__socket_html_ac2d5236c7e570dfee207511241edaa9b"><div class="ttname"><a href="structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b">guac_socket::state</a></div><div class="ttdeci">guac_socket_state state</div><div class="ttdoc">The current state of this guac_socket. </div><div class="ttdef"><b>Definition:</b> socket.h:87</div></div>
+<div class="ttc" id="socket_8h_html_af5d6846212d792c5bce7f8a4fd46cd31"><div class="ttname"><a href="socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31">guac_socket_read</a></div><div class="ttdeci">ssize_t guac_socket_read(guac_socket *socket, void *buf, size_t count)</div><div class="ttdoc">Attempts to read data from the socket, filling up to the specified number of bytes in the given buffe...</div></div>
+<div class="ttc" id="structguac__socket_html_a67be8367b5e1b330ee151b22c692500b"><div class="ttname"><a href="structguac__socket.html#a67be8367b5e1b330ee151b22c692500b">guac_socket::unlock_handler</a></div><div class="ttdeci">guac_socket_unlock_handler * unlock_handler</div><div class="ttdoc">Handler which will be called whenever exclusive access to a socket is being released, such as when an instruction has finished being written. </div><div class="ttdef"><b>Definition:</b> socket.h:71</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_af1a6f8eb81522aab289c9f4ed6051d3f"><div class="ttname"><a href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">guac_socket_unlock_handler</a></div><div class="ttdeci">void guac_socket_unlock_handler(guac_socket *socket)</div><div class="ttdoc">When set within a guac_socket, a handler of this type will be called whenever exclusive access to the...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:103</div></div>
+<div class="ttc" id="socket_8h_html_adb6eb960de27526bc96e1f9af797e2c4"><div class="ttname"><a href="socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4">guac_socket_write</a></div><div class="ttdeci">ssize_t guac_socket_write(guac_socket *socket, const void *buf, size_t count)</div><div class="ttdoc">Writes the given data to the specified socket. </div></div>
+<div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds. </div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+<div class="ttc" id="structguac__socket_html_afc6ff82e38b84c9e876fd797aafedd1b"><div class="ttname"><a href="structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b">guac_socket::flush_handler</a></div><div class="ttdeci">guac_socket_flush_handler * flush_handler</div><div class="ttdoc">Handler which will be called whenever this socket needs to be flushed. </div><div class="ttdef"><b>Definition:</b> socket.h:59</div></div>
+<div class="ttc" id="structguac__socket_html_adf00e9c13ff3808fceb4c71c1172fb51"><div class="ttname"><a href="structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51">guac_socket::last_write_timestamp</a></div><div class="ttdeci">guac_timestamp last_write_timestamp</div><div class="ttdoc">The timestamp associated with the time the last block of data was written to this guac_socket...</div><div class="ttdef"><b>Definition:</b> socket.h:93</div></div>
+<div class="ttc" id="structguac__client_html"><div class="ttname"><a href="structguac__client.html">guac_client</a></div><div class="ttdoc">Guacamole proxy client. </div><div class="ttdef"><b>Definition:</b> client.h:46</div></div>
+<div class="ttc" id="socket_8h_html_a603c23b24e2e2e95eeb2ce08d8115e94"><div class="ttname"><a href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94">guac_socket_instruction_end</a></div><div class="ttdeci">void guac_socket_instruction_end(guac_socket *socket)</div><div class="ttdoc">Marks the end of a Guacamole protocol instruction. </div></div>
+<div class="ttc" id="socket_8h_html_a7e5859b812923b894779f59353fdadb4"><div class="ttname"><a href="socket_8h.html#a7e5859b812923b894779f59353fdadb4">guac_socket_alloc</a></div><div class="ttdeci">guac_socket * guac_socket_alloc()</div><div class="ttdoc">Allocates a new, completely blank guac_socket. </div></div>
+<div class="ttc" id="socket_8h_html_a41b0d7a25ccda3d0ae20143880cf53b7"><div class="ttname"><a href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7">guac_socket_select</a></div><div class="ttdeci">int guac_socket_select(guac_socket *socket, int usec_timeout)</div><div class="ttdoc">Waits for input to be available on the given guac_socket object until the specified timeout elapses...</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a9700a8ba2011d6e6ce13e3e6c6397fc2"><div class="ttname"><a href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">guac_socket_free_handler</a></div><div class="ttdeci">int guac_socket_free_handler(guac_socket *socket)</div><div class="ttdoc">Generic handler for the closing of a socket, modeled after the standard POSIX close() function...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:113</div></div>
+<div class="ttc" id="structguac__socket_html_ad29e7f8a6819ca7bb541e8a947d5bc4f"><div class="ttname"><a href="structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f">guac_socket::select_handler</a></div><div class="ttdeci">guac_socket_select_handler * select_handler</div><div class="ttdoc">Handler which will be called whenever guac_socket_select() is invoked on this socket. </div><div class="ttdef"><b>Definition:</b> socket.h:77</div></div>
+<div class="ttc" id="socket_8h_html_a1d8c5111a8234c7785ae23f379f7db03"><div class="ttname"><a href="socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03">guac_socket_require_keep_alive</a></div><div class="ttdeci">void guac_socket_require_keep_alive(guac_socket *socket)</div><div class="ttdoc">Declares that the given socket must automatically send a keep-alive ping to ensure neither side of th...</div></div>
+<div class="ttc" id="socket_8h_html_ababc834d5812e006b55a79da417bfe12"><div class="ttname"><a href="socket_8h.html#ababc834d5812e006b55a79da417bfe12">guac_socket_flush</a></div><div class="ttdeci">ssize_t guac_socket_flush(guac_socket *socket)</div><div class="ttdoc">Flushes the write buffer. </div></div>
+<div class="ttc" id="socket_8h_html_a57a963e37377de2104c2d785980ff400"><div class="ttname"><a href="socket_8h.html#a57a963e37377de2104c2d785980ff400">guac_socket_write_int</a></div><div class="ttdeci">ssize_t guac_socket_write_int(guac_socket *socket, int64_t i)</div><div class="ttdoc">Writes the given unsigned int to the given guac_socket object. </div></div>
+<div class="ttc" id="socket_8h_html_add9c80240912b0c8d309cf7de94f5305"><div class="ttname"><a href="socket_8h.html#add9c80240912b0c8d309cf7de94f5305">guac_socket_tee</a></div><div class="ttdeci">guac_socket * guac_socket_tee(guac_socket *primary, guac_socket *secondary)</div><div class="ttdoc">Allocates and initializes a new guac_socket which delegates all socket operations to the given primar...</div></div>
+<div class="ttc" id="structguac__socket_html_ac8340e5627b43138bb50aac6c4368c0d"><div class="ttname"><a href="structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d">guac_socket::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Arbitrary socket-specific data. </div><div class="ttdef"><b>Definition:</b> socket.h:44</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a934350207615e0e2066954f9484153f8"><div class="ttname"><a href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">guac_socket_select_handler</a></div><div class="ttdeci">int guac_socket_select_handler(guac_socket *socket, int usec_timeout)</div><div class="ttdoc">Generic handler for socket select operations, similar to the POSIX select() function. </div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:70</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a75396c8cb7b0ba91102fcd447a1eb36b"><div class="ttname"><a href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">guac_socket_read_handler</a></div><div class="ttdeci">ssize_t guac_socket_read_handler(guac_socket *socket, void *buf, size_t count)</div><div class="ttdoc">Generic read handler for socket read operations, modeled after the standard POSIX read() function...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:43</div></div>
+<div class="ttc" id="structguac__socket_html_a10042a8e591737aec8d4db5a3423b250"><div class="ttname"><a href="structguac__socket.html#a10042a8e591737aec8d4db5a3423b250">guac_socket::read_handler</a></div><div class="ttdeci">guac_socket_read_handler * read_handler</div><div class="ttdoc">Handler which will be called when data needs to be read from the socket. </div><div class="ttdef"><b>Definition:</b> socket.h:49</div></div>
+<div class="ttc" id="timestamp-types_8h_html"><div class="ttname"><a href="timestamp-types_8h.html">timestamp-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol timestamps. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/splitbar.png b/doc/1.1.0/libguac/splitbar.png
new file mode 100644
index 0000000..fe895f2
--- /dev/null
+++ b/doc/1.1.0/libguac/splitbar.png
Binary files differ
diff --git a/doc/1.1.0/libguac/stream-types_8h.html b/doc/1.1.0/libguac/stream-types_8h.html
new file mode 100644
index 0000000..56729bc
--- /dev/null
+++ b/doc/1.1.0/libguac/stream-types_8h.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/stream-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">stream-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to Guacamole protocol streams.  
+<a href="#details">More...</a></p>
+
+<p><a href="stream-types_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to Guacamole protocol streams. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/stream-types_8h_source.html b/doc/1.1.0/libguac/stream-types_8h_source.html
new file mode 100644
index 0000000..86ce9e9
--- /dev/null
+++ b/doc/1.1.0/libguac/stream-types_8h_source.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/stream-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">stream-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="stream-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_STREAM_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_STREAM_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__stream.html">guac_stream</a> <a class="code" href="structguac__stream.html">guac_stream</a>;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/stream_8h.html b/doc/1.1.0/libguac/stream_8h.html
new file mode 100644
index 0000000..410b38c
--- /dev/null
+++ b/doc/1.1.0/libguac/stream_8h.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/stream.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a>  </div>
+  <div class="headertitle">
+<div class="title">stream.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures required for allocating and using streams.  
+<a href="#details">More...</a></p>
+
+<p><a href="stream_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html">guac_stream</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents a single stream within the Guacamole protocol.  <a href="structguac__stream.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures required for allocating and using streams. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/stream_8h_source.html b/doc/1.1.0/libguac/stream_8h_source.html
new file mode 100644
index 0000000..b63cbbe
--- /dev/null
+++ b/doc/1.1.0/libguac/stream_8h_source.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/stream.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">stream.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="stream_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_STREAM_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_STREAM_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-fntypes_8h.html">user-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="structguac__stream.html">   32</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__stream.html">guac_stream</a> {</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60">   37</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60">index</a>;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="structguac__stream.html#acdf20063ca408431862d901c9445b429">   42</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="structguac__stream.html#acdf20063ca408431862d901c9445b429">data</a>;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">   67</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>* <a class="code" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">ack_handler</a>;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">   87</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>* <a class="code" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">blob_handler</a>;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">  106</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>* <a class="code" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">end_handler</a>;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;};</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="ttc" id="structguac__stream_html_acdf20063ca408431862d901c9445b429"><div class="ttname"><a href="structguac__stream.html#acdf20063ca408431862d901c9445b429">guac_stream::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Arbitrary data associated with this stream. </div><div class="ttdef"><b>Definition:</b> stream.h:42</div></div>
+<div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams. </div></div>
+<div class="ttc" id="user-fntypes_8h_html_afa8b0e25073cbe710265dc8a0ed150ca"><div class="ttname"><a href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a></div><div class="ttdeci">int guac_user_end_handler(guac_user *user, guac_stream *stream)</div><div class="ttdoc">Handler for Guacamole stream &quot;end&quot; instructions. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:336</div></div>
+<div class="ttc" id="user-fntypes_8h_html"><div class="ttname"><a href="user-fntypes_8h.html">user-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the guac_user object. </div></div>
+<div class="ttc" id="structguac__stream_html_a51122ba04f416d8ce047542c603632f8"><div class="ttname"><a href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">guac_stream::blob_handler</a></div><div class="ttdeci">guac_user_blob_handler * blob_handler</div><div class="ttdoc">Handler for blob events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> stream.h:87</div></div>
+<div class="ttc" id="user-fntypes_8h_html_aead320956199884ff6af82d49d6163c1"><div class="ttname"><a href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a></div><div class="ttdeci">int guac_user_blob_handler(guac_user *user, guac_stream *stream, void *data, int length)</div><div class="ttdoc">Handler for Guacamole stream blobs. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:290</div></div>
+<div class="ttc" id="structguac__stream_html_acd077c7266d10871ee1e07951dfa72ff"><div class="ttname"><a href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">guac_stream::ack_handler</a></div><div class="ttdeci">guac_user_ack_handler * ack_handler</div><div class="ttdoc">Handler for ack events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> stream.h:67</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a88f4b7af6d47c82f65e9332afcc7ab09"><div class="ttname"><a href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a></div><div class="ttdeci">int guac_user_ack_handler(guac_user *user, guac_stream *stream, char *error, guac_protocol_status status)</div><div class="ttdoc">Handler for Guacamole stream &quot;ack&quot; instructions. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:319</div></div>
+<div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+<div class="ttc" id="structguac__stream_html_a96fef1b691d5c5ebaf78bff6df3b01db"><div class="ttname"><a href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">guac_stream::end_handler</a></div><div class="ttdeci">guac_user_end_handler * end_handler</div><div class="ttdoc">Handler for stream end events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> stream.h:106</div></div>
+<div class="ttc" id="structguac__stream_html_a487951c2cc77b2e1637e3aa0b5faaa60"><div class="ttname"><a href="structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60">guac_stream::index</a></div><div class="ttdeci">int index</div><div class="ttdoc">The index of this stream. </div><div class="ttdef"><b>Definition:</b> stream.h:37</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/string_8h.html b/doc/1.1.0/libguac/string_8h.html
new file mode 100644
index 0000000..09c7a26
--- /dev/null
+++ b/doc/1.1.0/libguac/string_8h.html
@@ -0,0 +1,265 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/string.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">string.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides convenience functions for manipulating strings.  
+<a href="#details">More...</a></p>
+
+<p><a href="string_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:add551909cdd14d762106832a800a5e16"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#add551909cdd14d762106832a800a5e16">guac_strlcpy</a> (char *restrict dest, const char *restrict src, size_t n)</td></tr>
+<tr class="memdesc:add551909cdd14d762106832a800a5e16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies a limited number of bytes from the given source string to the given destination buffer.  <a href="#add551909cdd14d762106832a800a5e16">More...</a><br /></td></tr>
+<tr class="separator:add551909cdd14d762106832a800a5e16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0dccfb28be71414fb2a4b1b641799f57"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a0dccfb28be71414fb2a4b1b641799f57">guac_strlcat</a> (char *restrict dest, const char *restrict src, size_t n)</td></tr>
+<tr class="memdesc:a0dccfb28be71414fb2a4b1b641799f57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends the given source string after the end of the given destination string, writing at most the given number of bytes.  <a href="#a0dccfb28be71414fb2a4b1b641799f57">More...</a><br /></td></tr>
+<tr class="separator:a0dccfb28be71414fb2a4b1b641799f57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a186ea73f38cfaf14f8a5b13ad7e9724f"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f">guac_strljoin</a> (char *restrict dest, const char *restrict const *elements, int nmemb, const char *restrict delim, size_t n)</td></tr>
+<tr class="memdesc:a186ea73f38cfaf14f8a5b13ad7e9724f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Concatenates each of the given strings, separated by the given delimiter, storing the result within a destination buffer.  <a href="#a186ea73f38cfaf14f8a5b13ad7e9724f">More...</a><br /></td></tr>
+<tr class="separator:a186ea73f38cfaf14f8a5b13ad7e9724f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides convenience functions for manipulating strings. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a0dccfb28be71414fb2a4b1b641799f57"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0dccfb28be71414fb2a4b1b641799f57">&#9670;&nbsp;</a></span>guac_strlcat()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t guac_strlcat </td>
+          <td>(</td>
+          <td class="paramtype">char *restrict&#160;</td>
+          <td class="paramname"><em>dest</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *restrict&#160;</td>
+          <td class="paramname"><em>src</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>n</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Appends the given source string after the end of the given destination string, writing at most the given number of bytes. </p>
+<p>Both the source and destination strings MUST be null-terminated. The resulting buffer will always be null-terminated, even if doing so means that the intended string is truncated, unless the destination buffer has no space available at all. As this function always returns the length of the string it tried to create (the length of destination and source strings added together), whether truncation has occurred can be detected by comparing the return value against the size of the destination buffer. If the value returned is greater than or equal to the size of the destination buffer, then the string has been truncated.</p>
+<p>The source and destination buffers MAY NOT overlap.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">dest</td><td>The buffer which should be appended with the contents of the source string. This buffer MUST already be null-terminated and will always be null-terminated unless zero bytes are available within the buffer.</td></tr>
+  </table>
+  </dd>
+</dl>
+<p>As a safeguard against incorrectly-written code, in the event that the destination buffer is not null-terminated, this function will still stop before overrunning the buffer, instead behaving as if the length of the string in the buffer is exactly the size of the buffer. The destination buffer will remain untouched (and unterminated) in this case.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">src</td><td>The source string to append to the the destination buffer. This string MUST be null-terminated.</td></tr>
+    <tr><td class="paramname">n</td><td>The number of bytes available within the destination buffer. If this value is not greater than zero, no bytes will be written to the destination buffer, and the destination buffer may not be null-terminated. In all other cases, the destination buffer will always be null-terminated, even if doing so means that the copied data from the source string will be truncated.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The length of the string this function tried to create (the lengths of the source and destination strings added together) in bytes, excluding the null terminator. </dd></dl>
+
+</div>
+</div>
+<a id="add551909cdd14d762106832a800a5e16"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#add551909cdd14d762106832a800a5e16">&#9670;&nbsp;</a></span>guac_strlcpy()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t guac_strlcpy </td>
+          <td>(</td>
+          <td class="paramtype">char *restrict&#160;</td>
+          <td class="paramname"><em>dest</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *restrict&#160;</td>
+          <td class="paramname"><em>src</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>n</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Copies a limited number of bytes from the given source string to the given destination buffer. </p>
+<p>The resulting buffer will always be null-terminated, even if doing so means that the intended string is truncated, unless the destination buffer has no space available at all. As this function always returns the length of the string it tried to create (the length of the source string), whether truncation has occurred can be detected by comparing the return value against the size of the destination buffer. If the value returned is greater than or equal to the size of the destination buffer, then the string has been truncated.</p>
+<p>The source and destination buffers MAY NOT overlap.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">dest</td><td>The buffer which should receive the contents of the source string. This buffer will always be null terminated unless zero bytes are available within the buffer.</td></tr>
+    <tr><td class="paramname">src</td><td>The source string to copy into the destination buffer. This string MUST be null terminated.</td></tr>
+    <tr><td class="paramname">n</td><td>The number of bytes available within the destination buffer. If this value is zero, no bytes will be written to the destination buffer, and the destination buffer may not be null terminated. In all other cases, the destination buffer will always be null terminated, even if doing so means that the copied data from the source string will be truncated.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The length of the copied string (the source string) in bytes, excluding the null terminator. </dd></dl>
+
+</div>
+</div>
+<a id="a186ea73f38cfaf14f8a5b13ad7e9724f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a186ea73f38cfaf14f8a5b13ad7e9724f">&#9670;&nbsp;</a></span>guac_strljoin()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t guac_strljoin </td>
+          <td>(</td>
+          <td class="paramtype">char *restrict&#160;</td>
+          <td class="paramname"><em>dest</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *restrict const *&#160;</td>
+          <td class="paramname"><em>elements</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>nmemb</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *restrict&#160;</td>
+          <td class="paramname"><em>delim</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>n</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Concatenates each of the given strings, separated by the given delimiter, storing the result within a destination buffer. </p>
+<p>The number of bytes written will be no more than the given number of bytes, and the destination buffer is guaranteed to be null-terminated, even if doing so means that one or more of the intended strings are truncated or omitted from the end of the result, unless the destination buffer has no space available at all. As this function always returns the length of the string it tried to create (the length of all source strings and all delimiters added together), whether truncation has occurred can be detected by comparing the return value against the size of the destination buffer. If the value returned is greater than or equal to the size of the destination buffer, then the string has been truncated.</p>
+<p>The source strings, delimiter string, and destination buffer MAY NOT overlap.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">dest</td><td>The buffer which should receive the result of joining the given strings. This buffer will always be null terminated unless zero bytes are available within the buffer.</td></tr>
+    <tr><td class="paramname">elements</td><td>The elements to concatenate together, separated by the given delimiter. Each element MUST be null-terminated.</td></tr>
+    <tr><td class="paramname">nmemb</td><td>The number of elements within the elements array.</td></tr>
+    <tr><td class="paramname">delim</td><td>The delimiter to include between each pair of elements.</td></tr>
+    <tr><td class="paramname">n</td><td>The number of bytes available within the destination buffer. If this value is not greater than zero, no bytes will be written to the destination buffer, and the destination buffer may not be null terminated. In all other cases, the destination buffer will always be null terminated, even if doing so means that the result will be truncated.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The length of the string this function tried to create (the length of all source strings and all delimiters added together) in bytes, excluding the null terminator. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/string_8h_source.html b/doc/1.1.0/libguac/string_8h_source.html
new file mode 100644
index 0000000..fe8172a
--- /dev/null
+++ b/doc/1.1.0/libguac/string_8h_source.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/string.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">string.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="string_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_STRING_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_STRING_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="string_8h.html">string.h</a>&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="string_8h.html#add551909cdd14d762106832a800a5e16">guac_strlcpy</a>(<span class="keywordtype">char</span>* restrict dest, <span class="keyword">const</span> <span class="keywordtype">char</span>* restrict src, <span class="keywordtype">size_t</span> n);</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="string_8h.html#a0dccfb28be71414fb2a4b1b641799f57">guac_strlcat</a>(<span class="keywordtype">char</span>* restrict dest, <span class="keyword">const</span> <span class="keywordtype">char</span>* restrict src, <span class="keywordtype">size_t</span> n);</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f">guac_strljoin</a>(<span class="keywordtype">char</span>* restrict dest, <span class="keyword">const</span> <span class="keywordtype">char</span>* restrict <span class="keyword">const</span>* elements,</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        <span class="keywordtype">int</span> nmemb, <span class="keyword">const</span> <span class="keywordtype">char</span>* restrict delim, <span class="keywordtype">size_t</span> n);</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div><div class="ttc" id="string_8h_html"><div class="ttname"><a href="string_8h.html">string.h</a></div><div class="ttdoc">Provides convenience functions for manipulating strings. </div></div>
+<div class="ttc" id="string_8h_html_a186ea73f38cfaf14f8a5b13ad7e9724f"><div class="ttname"><a href="string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f">guac_strljoin</a></div><div class="ttdeci">size_t guac_strljoin(char *restrict dest, const char *restrict const *elements, int nmemb, const char *restrict delim, size_t n)</div><div class="ttdoc">Concatenates each of the given strings, separated by the given delimiter, storing the result within a...</div></div>
+<div class="ttc" id="string_8h_html_add551909cdd14d762106832a800a5e16"><div class="ttname"><a href="string_8h.html#add551909cdd14d762106832a800a5e16">guac_strlcpy</a></div><div class="ttdeci">size_t guac_strlcpy(char *restrict dest, const char *restrict src, size_t n)</div><div class="ttdoc">Copies a limited number of bytes from the given source string to the given destination buffer...</div></div>
+<div class="ttc" id="string_8h_html_a0dccfb28be71414fb2a4b1b641799f57"><div class="ttname"><a href="string_8h.html#a0dccfb28be71414fb2a4b1b641799f57">guac_strlcat</a></div><div class="ttdeci">size_t guac_strlcat(char *restrict dest, const char *restrict src, size_t n)</div><div class="ttdoc">Appends the given source string after the end of the given destination string, writing at most the gi...</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__audio__encoder.html b/doc/1.1.0/libguac/structguac__audio__encoder.html
new file mode 100644
index 0000000..eab4b6b
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__audio__encoder.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_audio_encoder Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_audio_encoder Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Arbitrary audio codec encoder.  
+ <a href="structguac__audio__encoder.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a51b8bfeae3709c1859710cbf1039e01b"><td class="memItemLeft" align="right" valign="top"><a id="a51b8bfeae3709c1859710cbf1039e01b"></a>
+const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b">mimetype</a></td></tr>
+<tr class="memdesc:a51b8bfeae3709c1859710cbf1039e01b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The mimetype of the audio data encoded by this audio encoder. <br /></td></tr>
+<tr class="separator:a51b8bfeae3709c1859710cbf1039e01b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43d161556d3d55031ea486cc8b4ce3f6"><td class="memItemLeft" align="right" valign="top"><a id="a43d161556d3d55031ea486cc8b4ce3f6"></a>
+<a class="el" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">guac_audio_encoder_begin_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6">begin_handler</a></td></tr>
+<tr class="memdesc:a43d161556d3d55031ea486cc8b4ce3f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when the audio stream is first created. <br /></td></tr>
+<tr class="separator:a43d161556d3d55031ea486cc8b4ce3f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b74c3dd402b0a6afa5f5b9000d02c74"><td class="memItemLeft" align="right" valign="top"><a id="a1b74c3dd402b0a6afa5f5b9000d02c74"></a>
+<a class="el" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">guac_audio_encoder_write_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74">write_handler</a></td></tr>
+<tr class="memdesc:a1b74c3dd402b0a6afa5f5b9000d02c74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when PCM data is written to the audio stream for encoding. <br /></td></tr>
+<tr class="separator:a1b74c3dd402b0a6afa5f5b9000d02c74"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aef4ad4f1c298ac8e11fa69f13347c5a0"><td class="memItemLeft" align="right" valign="top"><a id="aef4ad4f1c298ac8e11fa69f13347c5a0"></a>
+<a class="el" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">guac_audio_encoder_flush_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0">flush_handler</a></td></tr>
+<tr class="memdesc:aef4ad4f1c298ac8e11fa69f13347c5a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when the audio stream is flushed. <br /></td></tr>
+<tr class="separator:aef4ad4f1c298ac8e11fa69f13347c5a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6fbc4f8efe14c9a119fdfaaef78f7e92"><td class="memItemLeft" align="right" valign="top"><a id="a6fbc4f8efe14c9a119fdfaaef78f7e92"></a>
+<a class="el" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">guac_audio_encoder_end_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92">end_handler</a></td></tr>
+<tr class="memdesc:a6fbc4f8efe14c9a119fdfaaef78f7e92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when the audio stream is closed. <br /></td></tr>
+<tr class="separator:a6fbc4f8efe14c9a119fdfaaef78f7e92"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af2d0f6c14a6a30e4f91240865a680e5b"><td class="memItemLeft" align="right" valign="top"><a id="af2d0f6c14a6a30e4f91240865a680e5b"></a>
+<a class="el" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">guac_audio_encoder_join_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b">join_handler</a></td></tr>
+<tr class="memdesc:af2d0f6c14a6a30e4f91240865a680e5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when a new user joins the Guacamole connection associated with an audio stream. <br /></td></tr>
+<tr class="separator:af2d0f6c14a6a30e4f91240865a680e5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Arbitrary audio codec encoder. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="audio_8h_source.html">audio.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__audio__stream.html b/doc/1.1.0/libguac/structguac__audio__stream.html
new file mode 100644
index 0000000..392d286
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__audio__stream.html
@@ -0,0 +1,153 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_audio_stream Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_audio_stream Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Basic audio stream.  
+ <a href="structguac__audio__stream.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:af3b4811ba5a4f1a337d338777fe9049d"><td class="memItemLeft" align="right" valign="top"><a id="af3b4811ba5a4f1a337d338777fe9049d"></a>
+<a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d">encoder</a></td></tr>
+<tr class="memdesc:af3b4811ba5a4f1a337d338777fe9049d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary codec encoder which will receive raw PCM data. <br /></td></tr>
+<tr class="separator:af3b4811ba5a4f1a337d338777fe9049d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1771fa5ff88b8f5d4ca4cd5e77a1ffba"><td class="memItemLeft" align="right" valign="top"><a id="a1771fa5ff88b8f5d4ca4cd5e77a1ffba"></a>
+<a class="el" href="structguac__client.html">guac_client</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba">client</a></td></tr>
+<tr class="memdesc:a1771fa5ff88b8f5d4ca4cd5e77a1ffba"><td class="mdescLeft">&#160;</td><td class="mdescRight">The client associated with this audio stream. <br /></td></tr>
+<tr class="separator:a1771fa5ff88b8f5d4ca4cd5e77a1ffba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d8f5cfc70ec54b97ba0c4eea596f894"><td class="memItemLeft" align="right" valign="top"><a id="a4d8f5cfc70ec54b97ba0c4eea596f894"></a>
+<a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894">stream</a></td></tr>
+<tr class="memdesc:a4d8f5cfc70ec54b97ba0c4eea596f894"><td class="mdescLeft">&#160;</td><td class="mdescRight">The actual stream associated with this audio stream. <br /></td></tr>
+<tr class="separator:a4d8f5cfc70ec54b97ba0c4eea596f894"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6810293a6fa915e497d2dd1a643993d9"><td class="memItemLeft" align="right" valign="top"><a id="a6810293a6fa915e497d2dd1a643993d9"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9">rate</a></td></tr>
+<tr class="memdesc:a6810293a6fa915e497d2dd1a643993d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of samples per second of PCM data sent to this stream. <br /></td></tr>
+<tr class="separator:a6810293a6fa915e497d2dd1a643993d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af9d1ad90194e24c2967e2f9f18de0ad6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6">channels</a></td></tr>
+<tr class="memdesc:af9d1ad90194e24c2967e2f9f18de0ad6"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of audio channels per sample of PCM data.  <a href="#af9d1ad90194e24c2967e2f9f18de0ad6">More...</a><br /></td></tr>
+<tr class="separator:af9d1ad90194e24c2967e2f9f18de0ad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1de1be8874fb844002b92ac1e3813866"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866">bps</a></td></tr>
+<tr class="memdesc:a1de1be8874fb844002b92ac1e3813866"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of bits per sample per channel for PCM data.  <a href="#a1de1be8874fb844002b92ac1e3813866">More...</a><br /></td></tr>
+<tr class="separator:a1de1be8874fb844002b92ac1e3813866"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9ca03221b02d1206eb698f8ee936c4b7"><td class="memItemLeft" align="right" valign="top"><a id="a9ca03221b02d1206eb698f8ee936c4b7"></a>
+void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7">data</a></td></tr>
+<tr class="memdesc:a9ca03221b02d1206eb698f8ee936c4b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encoder-specific state data. <br /></td></tr>
+<tr class="separator:a9ca03221b02d1206eb698f8ee936c4b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Basic audio stream. </p>
+<p>PCM data is added to the stream. When the stream is flushed, a write handler receives PCM data packets and, presumably, streams them to the <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> provided. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="a1de1be8874fb844002b92ac1e3813866"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1de1be8874fb844002b92ac1e3813866">&#9670;&nbsp;</a></span>bps</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_audio_stream::bps</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The number of bits per sample per channel for PCM data. </p>
+<p>Legal values are 8 or 16. </p>
+
+</div>
+</div>
+<a id="af9d1ad90194e24c2967e2f9f18de0ad6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af9d1ad90194e24c2967e2f9f18de0ad6">&#9670;&nbsp;</a></span>channels</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_audio_stream::channels</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The number of audio channels per sample of PCM data. </p>
+<p>Legal values are 1 or 2. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="audio_8h_source.html">audio.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__client.html b/doc/1.1.0/libguac/structguac__client.html
new file mode 100644
index 0000000..bdde64a
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__client.html
@@ -0,0 +1,303 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_client Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_client Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Guacamole proxy client.  
+ <a href="structguac__client.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:aa634856fd3c522377ba7345f3308000e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#aa634856fd3c522377ba7345f3308000e">socket</a></td></tr>
+<tr class="memdesc:aa634856fd3c522377ba7345f3308000e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> structure to be used to communicate with all connected web-clients (users).  <a href="#aa634856fd3c522377ba7345f3308000e">More...</a><br /></td></tr>
+<tr class="separator:aa634856fd3c522377ba7345f3308000e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acb3e3f5d0ce5726cdde768f97b473f53"><td class="memItemLeft" align="right" valign="top"><a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53">state</a></td></tr>
+<tr class="memdesc:acb3e3f5d0ce5726cdde768f97b473f53"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current state of the client.  <a href="#acb3e3f5d0ce5726cdde768f97b473f53">More...</a><br /></td></tr>
+<tr class="separator:acb3e3f5d0ce5726cdde768f97b473f53"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0569bc7eea8d37b5bd95bcd3821ca0a3"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3">data</a></td></tr>
+<tr class="memdesc:a0569bc7eea8d37b5bd95bcd3821ca0a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary reference to proxy client-specific data.  <a href="#a0569bc7eea8d37b5bd95bcd3821ca0a3">More...</a><br /></td></tr>
+<tr class="separator:a0569bc7eea8d37b5bd95bcd3821ca0a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f3069566c7a5ca76ce4369715589dad"><td class="memItemLeft" align="right" valign="top"><a id="a0f3069566c7a5ca76ce4369715589dad"></a>
+<a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a0f3069566c7a5ca76ce4369715589dad">last_sent_timestamp</a></td></tr>
+<tr class="memdesc:a0f3069566c7a5ca76ce4369715589dad"><td class="mdescLeft">&#160;</td><td class="mdescRight">The time (in milliseconds) that the last sync message was sent to the client. <br /></td></tr>
+<tr class="separator:a0f3069566c7a5ca76ce4369715589dad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79e29c931fd448cf51f7153fea064169"><td class="memItemLeft" align="right" valign="top"><a class="el" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">free_handler</a></td></tr>
+<tr class="memdesc:a79e29c931fd448cf51f7153fea064169"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for freeing data when the client is being unloaded.  <a href="#a79e29c931fd448cf51f7153fea064169">More...</a><br /></td></tr>
+<tr class="separator:a79e29c931fd448cf51f7153fea064169"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3eb24ba13be9ecb3a8c6f64a73932f43"><td class="memItemLeft" align="right" valign="top"><a class="el" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">log_handler</a></td></tr>
+<tr class="memdesc:a3eb24ba13be9ecb3a8c6f64a73932f43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logging handler.  <a href="#a3eb24ba13be9ecb3a8c6f64a73932f43">More...</a><br /></td></tr>
+<tr class="separator:a3eb24ba13be9ecb3a8c6f64a73932f43"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad38b9ded1f04bfe8eb235e551fc08094"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094">connection_id</a></td></tr>
+<tr class="memdesc:ad38b9ded1f04bfe8eb235e551fc08094"><td class="mdescLeft">&#160;</td><td class="mdescRight">The unique identifier allocated for the connection, which may be used within the Guacamole protocol to refer to this connection.  <a href="#ad38b9ded1f04bfe8eb235e551fc08094">More...</a><br /></td></tr>
+<tr class="separator:ad38b9ded1f04bfe8eb235e551fc08094"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a73aeff08af6cf6cadd7abce74c7ff4b2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2">connected_users</a></td></tr>
+<tr class="memdesc:a73aeff08af6cf6cadd7abce74c7ff4b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of currently-connected users.  <a href="#a73aeff08af6cf6cadd7abce74c7ff4b2">More...</a><br /></td></tr>
+<tr class="separator:a73aeff08af6cf6cadd7abce74c7ff4b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0adcf1953de6c315c2da9dac4b3eceb3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">join_handler</a></td></tr>
+<tr class="memdesc:a0adcf1953de6c315c2da9dac4b3eceb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for join events, called whenever a new user is joining an active connection.  <a href="#a0adcf1953de6c315c2da9dac4b3eceb3">More...</a><br /></td></tr>
+<tr class="separator:a0adcf1953de6c315c2da9dac4b3eceb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad956a3935832e9048a2727d8c5a46cf6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">leave_handler</a></td></tr>
+<tr class="memdesc:ad956a3935832e9048a2727d8c5a46cf6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for leave events, called whenever a new user is leaving an active connection.  <a href="#ad956a3935832e9048a2727d8c5a46cf6">More...</a><br /></td></tr>
+<tr class="separator:ad956a3935832e9048a2727d8c5a46cf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e07a8086579ede2c692460998a87cac"><td class="memItemLeft" align="right" valign="top">const char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">args</a></td></tr>
+<tr class="memdesc:a0e07a8086579ede2c692460998a87cac"><td class="mdescLeft">&#160;</td><td class="mdescRight">NULL-terminated array of all arguments accepted by this client , in order.  <a href="#a0e07a8086579ede2c692460998a87cac">More...</a><br /></td></tr>
+<tr class="separator:a0e07a8086579ede2c692460998a87cac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Guacamole proxy client. </p>
+<p>Represents a Guacamole proxy client (the client which communicates to a server on behalf of Guacamole, on behalf of the web-client). </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="a0e07a8086579ede2c692460998a87cac"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0e07a8086579ede2c692460998a87cac">&#9670;&nbsp;</a></span>args</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char** guac_client::args</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>NULL-terminated array of all arguments accepted by this client , in order. </p>
+<p>New users will specify these arguments when they join the connection, and the values of those arguments will be made available to the function initializing newly-joined users.</p>
+<p>The guac_client_init entry point is expected to initialize this, if arguments are expected.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* __my_args[] = {</div><div class="line">    <span class="stringliteral">&quot;hostname&quot;</span>,</div><div class="line">    <span class="stringliteral">&quot;port&quot;</span>,</div><div class="line">    <span class="stringliteral">&quot;username&quot;</span>,</div><div class="line">    <span class="stringliteral">&quot;password&quot;</span>,</div><div class="line">    NULL</div><div class="line">};</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_client_init(<a class="code" href="structguac__client.html">guac_client</a>* client) {</div><div class="line">    client-&gt;<a class="code" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">args</a> = __my_args;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a73aeff08af6cf6cadd7abce74c7ff4b2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a73aeff08af6cf6cadd7abce74c7ff4b2">&#9670;&nbsp;</a></span>connected_users</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_client::connected_users</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The number of currently-connected users. </p>
+<p>This value may include inactive users if cleanup of those users has not yet finished. </p>
+
+</div>
+</div>
+<a id="ad38b9ded1f04bfe8eb235e551fc08094"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad38b9ded1f04bfe8eb235e551fc08094">&#9670;&nbsp;</a></span>connection_id</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* guac_client::connection_id</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The unique identifier allocated for the connection, which may be used within the Guacamole protocol to refer to this connection. </p>
+<p>This identifier is guaranteed to be unique from all existing connections and will not collide with any available protocol names. </p>
+
+</div>
+</div>
+<a id="a0569bc7eea8d37b5bd95bcd3821ca0a3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0569bc7eea8d37b5bd95bcd3821ca0a3">&#9670;&nbsp;</a></span>data</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* guac_client::data</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Arbitrary reference to proxy client-specific data. </p>
+<p>Implementors of a Guacamole proxy client can store any data they want here, which can then be retrieved as necessary in the message handlers. </p>
+
+</div>
+</div>
+<a id="a79e29c931fd448cf51f7153fea064169"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a79e29c931fd448cf51f7153fea064169">&#9670;&nbsp;</a></span>free_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a>* guac_client::free_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for freeing data when the client is being unloaded. </p>
+<p>This handler will be called when the client needs to be unloaded by the proxy, and any data allocated by the proxy client should be freed.</p>
+<p>Note that this handler will NOT be called if the client's guac_client_init() function fails.</p>
+<p>Implement this handler if you store data inside the client.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">free_handler</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_client_init(<a class="code" href="structguac__client.html">guac_client</a>* client) {</div><div class="line">    client-&gt;<a class="code" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">free_handler</a> = <a class="code" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">free_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a0adcf1953de6c315c2da9dac4b3eceb3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0adcf1953de6c315c2da9dac4b3eceb3">&#9670;&nbsp;</a></span>join_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a>* guac_client::join_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for join events, called whenever a new user is joining an active connection. </p>
+<p>Note that because users may leave the connection at any time, a reference to a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> can become invalid at any time and should never be maintained outside the scope of a function invoked by libguac to which that <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> was passed (the scope in which the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> reference is guaranteed to be valid) UNLESS that reference is properly invalidated within the leave_handler.</p>
+<p>The handler is given a pointer to a newly-allocated <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> which must then be initialized, if needed.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">join_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_client_init(<a class="code" href="structguac__client.html">guac_client</a>* client) {</div><div class="line">    client-&gt;<a class="code" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">join_handler</a> = <a class="code" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">join_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="ad956a3935832e9048a2727d8c5a46cf6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad956a3935832e9048a2727d8c5a46cf6">&#9670;&nbsp;</a></span>leave_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a>* guac_client::leave_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for leave events, called whenever a new user is leaving an active connection. </p>
+<p>The handler is given a pointer to the leaving <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> whose custom data and associated resources must now be freed, if any.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">leave_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_client_init(<a class="code" href="structguac__client.html">guac_client</a>* client) {</div><div class="line">    client-&gt;<a class="code" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">leave_handler</a> = <a class="code" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">leave_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a3eb24ba13be9ecb3a8c6f64a73932f43"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3eb24ba13be9ecb3a8c6f64a73932f43">&#9670;&nbsp;</a></span>log_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a>* guac_client::log_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Logging handler. </p>
+<p>This handler will be called via <a class="el" href="client_8h.html#ad53666bbe29346497cabb04fc9628208" title="Writes a message in the log used by the given client. ">guac_client_log()</a> when the client needs to log messages of any type.</p>
+<p>In general, only programs loading the client should implement this handler, as those are the programs that would provide the logging facilities.</p>
+<p>Client implementations should expect these handlers to already be set.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> <a class="code" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">log_handler</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list <a class="code" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">args</a>);</div><div class="line"></div><div class="line"><span class="keywordtype">void</span> function_of_daemon() {</div><div class="line"></div><div class="line">    <a class="code" href="structguac__client.html">guac_client</a>* client = [pass <a class="code" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">log_handler</a> to guac_client_plugin_get_client()];</div><div class="line"></div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="aa634856fd3c522377ba7345f3308000e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa634856fd3c522377ba7345f3308000e">&#9670;&nbsp;</a></span>socket</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_client::socket</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> structure to be used to communicate with all connected web-clients (users). </p>
+<p>Unlike the user-level <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, this <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> will broadcast instructions to all connected users simultaneously. It is expected that the implementor of any Guacamole proxy client will provide their own mechanism of I/O for their protocol. The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> structure is used only to communicate conveniently with the Guacamole web-client. </p>
+
+</div>
+</div>
+<a id="acb3e3f5d0ce5726cdde768f97b473f53"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acb3e3f5d0ce5726cdde768f97b473f53">&#9670;&nbsp;</a></span>state</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a> guac_client::state</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The current state of the client. </p>
+<p>When the client is first allocated, this will be initialized to GUAC_CLIENT_RUNNING. It will remain at GUAC_CLIENT_RUNNING until an event occurs which requires the client to shutdown, at which point the state becomes GUAC_CLIENT_STOPPING. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="client_8h_source.html">client.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__layer.html b/doc/1.1.0/libguac/structguac__layer.html
new file mode 100644
index 0000000..baf0348
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__layer.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_layer Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_layer Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Represents a single layer within the Guacamole protocol.  
+ <a href="structguac__layer.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a686a85d9d758ba5f2f4426a4c4ae13ba"><td class="memItemLeft" align="right" valign="top"><a id="a686a85d9d758ba5f2f4426a4c4ae13ba"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba">index</a></td></tr>
+<tr class="memdesc:a686a85d9d758ba5f2f4426a4c4ae13ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of this layer. <br /></td></tr>
+<tr class="separator:a686a85d9d758ba5f2f4426a4c4ae13ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Represents a single layer within the Guacamole protocol. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="layer_8h_source.html">layer.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__object.html b/doc/1.1.0/libguac/structguac__object.html
new file mode 100644
index 0000000..2440ad1
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__object.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_object Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_object Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Represents a single object within the Guacamole protocol.  
+ <a href="structguac__object.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a643f03695d246bbf73b5c4942755a4b4"><td class="memItemLeft" align="right" valign="top"><a id="a643f03695d246bbf73b5c4942755a4b4"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__object.html#a643f03695d246bbf73b5c4942755a4b4">index</a></td></tr>
+<tr class="memdesc:a643f03695d246bbf73b5c4942755a4b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of this object. <br /></td></tr>
+<tr class="separator:a643f03695d246bbf73b5c4942755a4b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9ca62cec5ba1124f8272da3adf7c44e"><td class="memItemLeft" align="right" valign="top"><a id="ac9ca62cec5ba1124f8272da3adf7c44e"></a>
+void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e">data</a></td></tr>
+<tr class="memdesc:ac9ca62cec5ba1124f8272da3adf7c44e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary data associated with this object. <br /></td></tr>
+<tr class="separator:ac9ca62cec5ba1124f8272da3adf7c44e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e86747e4f1265935310f0df3a7f4b21"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">get_handler</a></td></tr>
+<tr class="memdesc:a0e86747e4f1265935310f0df3a7f4b21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for get events sent by the Guacamole web-client.  <a href="#a0e86747e4f1265935310f0df3a7f4b21">More...</a><br /></td></tr>
+<tr class="separator:a0e86747e4f1265935310f0df3a7f4b21"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a33771a9a72c560b8ea99f940c4c412a6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">put_handler</a></td></tr>
+<tr class="memdesc:a33771a9a72c560b8ea99f940c4c412a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for put events sent by the Guacamole web-client.  <a href="#a33771a9a72c560b8ea99f940c4c412a6">More...</a><br /></td></tr>
+<tr class="separator:a33771a9a72c560b8ea99f940c4c412a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Represents a single object within the Guacamole protocol. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="a0e86747e4f1265935310f0df3a7f4b21"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0e86747e4f1265935310f0df3a7f4b21">&#9670;&nbsp;</a></span>get_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>* guac_object::get_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for get events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__object.html" title="Represents a single object within the Guacamole protocol. ">guac_object</a>, containing the object index which will persist through the duration of the transfer, and the name of the stream being requested. It is up to the get handler to create the required body stream.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">get_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line">        <span class="keywordtype">char</span>* name);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> some_function(<a class="code" href="structguac__user.html">guac_user</a>* user) {</div><div class="line"></div><div class="line">    <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span> = <a class="code" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a>(user);</div><div class="line">    <span class="keywordtype">object</span>-&gt;get_handler = <a class="code" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">get_handler</a>;</div><div class="line"></div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a33771a9a72c560b8ea99f940c4c412a6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a33771a9a72c560b8ea99f940c4c412a6">&#9670;&nbsp;</a></span>put_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>* guac_object::put_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for put events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__object.html" title="Represents a single object within the Guacamole protocol. ">guac_object</a> and <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a>, which each contain their respective indices which will persist through the duration of the transfer, the mimetype of the data being transferred, and the name of the stream within the object being written to.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">put_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line">        <a class="code" href="structguac__stream.html">guac_stream</a>* stream, <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> some_function(<a class="code" href="structguac__user.html">guac_user</a>* user) {</div><div class="line"></div><div class="line">    <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span> = <a class="code" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a>(user);</div><div class="line">    <span class="keywordtype">object</span>-&gt;put_handler = <a class="code" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">put_handler</a>;</div><div class="line"></div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="object_8h_source.html">object.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__parser.html b/doc/1.1.0/libguac/structguac__parser.html
new file mode 100644
index 0000000..f365519
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__parser.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_parser Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_parser Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>A Guacamole protocol parser, which reads individual instructions, filling its own internal structure with the most recently read instruction data.  
+ <a href="structguac__parser.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a725767c57dc6f157afe2d7dd6ce281e1"><td class="memItemLeft" align="right" valign="top"><a id="a725767c57dc6f157afe2d7dd6ce281e1"></a>
+char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1">opcode</a></td></tr>
+<tr class="memdesc:a725767c57dc6f157afe2d7dd6ce281e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">The opcode of the instruction. <br /></td></tr>
+<tr class="separator:a725767c57dc6f157afe2d7dd6ce281e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a718ce9e60c8414c367ce393cc4e0cffe"><td class="memItemLeft" align="right" valign="top"><a id="a718ce9e60c8414c367ce393cc4e0cffe"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe">argc</a></td></tr>
+<tr class="memdesc:a718ce9e60c8414c367ce393cc4e0cffe"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of arguments passed to this instruction. <br /></td></tr>
+<tr class="separator:a718ce9e60c8414c367ce393cc4e0cffe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9bd5362b9de8cf2adfcdff2c86bb4701"><td class="memItemLeft" align="right" valign="top"><a id="a9bd5362b9de8cf2adfcdff2c86bb4701"></a>
+char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701">argv</a></td></tr>
+<tr class="memdesc:a9bd5362b9de8cf2adfcdff2c86bb4701"><td class="mdescLeft">&#160;</td><td class="mdescRight">Array of all arguments passed to this instruction. <br /></td></tr>
+<tr class="separator:a9bd5362b9de8cf2adfcdff2c86bb4701"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2773500f91b3cdb7de7bdea280228054"><td class="memItemLeft" align="right" valign="top"><a id="a2773500f91b3cdb7de7bdea280228054"></a>
+<a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__parser.html#a2773500f91b3cdb7de7bdea280228054">state</a></td></tr>
+<tr class="memdesc:a2773500f91b3cdb7de7bdea280228054"><td class="mdescLeft">&#160;</td><td class="mdescRight">The parse state of the instruction. <br /></td></tr>
+<tr class="separator:a2773500f91b3cdb7de7bdea280228054"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>A Guacamole protocol parser, which reads individual instructions, filling its own internal structure with the most recently read instruction data. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="parser_8h_source.html">parser.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__pool.html b/doc/1.1.0/libguac/structguac__pool.html
new file mode 100644
index 0000000..221e069
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__pool.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_pool Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_pool Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>A pool of integers.  
+ <a href="structguac__pool.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a71ed274c2481dbcd5e06bf7d8d74d71e"><td class="memItemLeft" align="right" valign="top"><a id="a71ed274c2481dbcd5e06bf7d8d74d71e"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e">min_size</a></td></tr>
+<tr class="memdesc:a71ed274c2481dbcd5e06bf7d8d74d71e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The minimum number of integers which must have been returned by guac_pool_next_int before previously-used and freed integers are allowed to be returned. <br /></td></tr>
+<tr class="separator:a71ed274c2481dbcd5e06bf7d8d74d71e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac22871d5c476ca9a6dd25a2446fa0fd3"><td class="memItemLeft" align="right" valign="top"><a id="ac22871d5c476ca9a6dd25a2446fa0fd3"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3">active</a></td></tr>
+<tr class="memdesc:ac22871d5c476ca9a6dd25a2446fa0fd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of integers currently in use. <br /></td></tr>
+<tr class="separator:ac22871d5c476ca9a6dd25a2446fa0fd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>A pool of integers. </p>
+<p>Integers can be removed from and later free'd back into the pool. New integers are returned when the pool is exhausted, or when the pool has not met some minimum size. Old, free'd integers are returned otherwise. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="pool_8h_source.html">pool.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__pool__int.html b/doc/1.1.0/libguac/structguac__pool__int.html
new file mode 100644
index 0000000..7fe37f2
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__pool__int.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_pool_int Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_pool_int Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Represents a single integer within a larger pool of integers.  
+ <a href="structguac__pool__int.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:af76ff5f21c6e0f69d95cdd1385ea24a4"><td class="memItemLeft" align="right" valign="top"><a id="af76ff5f21c6e0f69d95cdd1385ea24a4"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4">value</a></td></tr>
+<tr class="memdesc:af76ff5f21c6e0f69d95cdd1385ea24a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The integer value of this pool entry. <br /></td></tr>
+<tr class="separator:af76ff5f21c6e0f69d95cdd1385ea24a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Represents a single integer within a larger pool of integers. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="pool_8h_source.html">pool.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__socket.html b/doc/1.1.0/libguac/structguac__socket.html
new file mode 100644
index 0000000..c7ea386
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__socket.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_socket Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_socket Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The core I/O object of Guacamole.  
+ <a href="structguac__socket.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:ac8340e5627b43138bb50aac6c4368c0d"><td class="memItemLeft" align="right" valign="top"><a id="ac8340e5627b43138bb50aac6c4368c0d"></a>
+void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d">data</a></td></tr>
+<tr class="memdesc:ac8340e5627b43138bb50aac6c4368c0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary socket-specific data. <br /></td></tr>
+<tr class="separator:ac8340e5627b43138bb50aac6c4368c0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a10042a8e591737aec8d4db5a3423b250"><td class="memItemLeft" align="right" valign="top"><a id="a10042a8e591737aec8d4db5a3423b250"></a>
+<a class="el" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">guac_socket_read_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#a10042a8e591737aec8d4db5a3423b250">read_handler</a></td></tr>
+<tr class="memdesc:a10042a8e591737aec8d4db5a3423b250"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when data needs to be read from the socket. <br /></td></tr>
+<tr class="separator:a10042a8e591737aec8d4db5a3423b250"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f5f24200b0dad4ef1443b863d1bfc7d"><td class="memItemLeft" align="right" valign="top"><a id="a0f5f24200b0dad4ef1443b863d1bfc7d"></a>
+<a class="el" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">guac_socket_write_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d">write_handler</a></td></tr>
+<tr class="memdesc:a0f5f24200b0dad4ef1443b863d1bfc7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called whenever data is written to this socket. <br /></td></tr>
+<tr class="separator:a0f5f24200b0dad4ef1443b863d1bfc7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc6ff82e38b84c9e876fd797aafedd1b"><td class="memItemLeft" align="right" valign="top"><a id="afc6ff82e38b84c9e876fd797aafedd1b"></a>
+<a class="el" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">guac_socket_flush_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b">flush_handler</a></td></tr>
+<tr class="memdesc:afc6ff82e38b84c9e876fd797aafedd1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called whenever this socket needs to be flushed. <br /></td></tr>
+<tr class="separator:afc6ff82e38b84c9e876fd797aafedd1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d39f1476d3d3440485697a0eabfe471"><td class="memItemLeft" align="right" valign="top"><a id="a1d39f1476d3d3440485697a0eabfe471"></a>
+<a class="el" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">guac_socket_lock_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471">lock_handler</a></td></tr>
+<tr class="memdesc:a1d39f1476d3d3440485697a0eabfe471"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called whenever a socket needs to be acquired for exclusive access, such as when an instruction is about to be written. <br /></td></tr>
+<tr class="separator:a1d39f1476d3d3440485697a0eabfe471"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a67be8367b5e1b330ee151b22c692500b"><td class="memItemLeft" align="right" valign="top"><a id="a67be8367b5e1b330ee151b22c692500b"></a>
+<a class="el" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">guac_socket_unlock_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#a67be8367b5e1b330ee151b22c692500b">unlock_handler</a></td></tr>
+<tr class="memdesc:a67be8367b5e1b330ee151b22c692500b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called whenever exclusive access to a socket is being released, such as when an instruction has finished being written. <br /></td></tr>
+<tr class="separator:a67be8367b5e1b330ee151b22c692500b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad29e7f8a6819ca7bb541e8a947d5bc4f"><td class="memItemLeft" align="right" valign="top"><a id="ad29e7f8a6819ca7bb541e8a947d5bc4f"></a>
+<a class="el" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">guac_socket_select_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f">select_handler</a></td></tr>
+<tr class="memdesc:ad29e7f8a6819ca7bb541e8a947d5bc4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called whenever <a class="el" href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7" title="Waits for input to be available on the given guac_socket object until the specified timeout elapses...">guac_socket_select()</a> is invoked on this socket. <br /></td></tr>
+<tr class="separator:ad29e7f8a6819ca7bb541e8a947d5bc4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1044cde496cfe11c914c623dc1e29678"><td class="memItemLeft" align="right" valign="top"><a id="a1044cde496cfe11c914c623dc1e29678"></a>
+<a class="el" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">guac_socket_free_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#a1044cde496cfe11c914c623dc1e29678">free_handler</a></td></tr>
+<tr class="memdesc:a1044cde496cfe11c914c623dc1e29678"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when the socket is free'd (closed). <br /></td></tr>
+<tr class="separator:a1044cde496cfe11c914c623dc1e29678"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac2d5236c7e570dfee207511241edaa9b"><td class="memItemLeft" align="right" valign="top"><a id="ac2d5236c7e570dfee207511241edaa9b"></a>
+<a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b">state</a></td></tr>
+<tr class="memdesc:ac2d5236c7e570dfee207511241edaa9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current state of this <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>. <br /></td></tr>
+<tr class="separator:ac2d5236c7e570dfee207511241edaa9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adf00e9c13ff3808fceb4c71c1172fb51"><td class="memItemLeft" align="right" valign="top"><a id="adf00e9c13ff3808fceb4c71c1172fb51"></a>
+<a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51">last_write_timestamp</a></td></tr>
+<tr class="memdesc:adf00e9c13ff3808fceb4c71c1172fb51"><td class="mdescLeft">&#160;</td><td class="mdescRight">The timestamp associated with the time the last block of data was written to this <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>. <br /></td></tr>
+<tr class="separator:adf00e9c13ff3808fceb4c71c1172fb51"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The core I/O object of Guacamole. </p>
+<p><a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> provides buffered input and output as well as convenience methods for efficiently writing base64 data. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="socket_8h_source.html">socket.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__socket__ssl__data.html b/doc/1.1.0/libguac/structguac__socket__ssl__data.html
new file mode 100644
index 0000000..a835833
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__socket__ssl__data.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_socket_ssl_data Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_socket_ssl_data Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>SSL socket-specific data.  
+ <a href="structguac__socket__ssl__data.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a4b6134fe4c41d78e42abbe5d8c27330a"><td class="memItemLeft" align="right" valign="top"><a id="a4b6134fe4c41d78e42abbe5d8c27330a"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a">fd</a></td></tr>
+<tr class="memdesc:a4b6134fe4c41d78e42abbe5d8c27330a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The file descriptor that SSL communication will take place over. <br /></td></tr>
+<tr class="separator:a4b6134fe4c41d78e42abbe5d8c27330a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22b295ba9b80cc15a5dfa4c06aea541f"><td class="memItemLeft" align="right" valign="top"><a id="a22b295ba9b80cc15a5dfa4c06aea541f"></a>
+SSL_CTX *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f">context</a></td></tr>
+<tr class="memdesc:a22b295ba9b80cc15a5dfa4c06aea541f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current SSL context. <br /></td></tr>
+<tr class="separator:a22b295ba9b80cc15a5dfa4c06aea541f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab86a780b4801fdbf411a24255cf700ac"><td class="memItemLeft" align="right" valign="top"><a id="ab86a780b4801fdbf411a24255cf700ac"></a>
+SSL *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac">ssl</a></td></tr>
+<tr class="memdesc:ab86a780b4801fdbf411a24255cf700ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">The SSL connection, created automatically via <a class="el" href="socket-ssl_8h.html#afa6689181258a29460b978f1e496f790" title="Creates a new guac_socket which will use SSL for all communication. ">guac_socket_open_secure()</a>. <br /></td></tr>
+<tr class="separator:ab86a780b4801fdbf411a24255cf700ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>SSL socket-specific data. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="socket-ssl_8h_source.html">socket-ssl.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__stream.html b/doc/1.1.0/libguac/structguac__stream.html
new file mode 100644
index 0000000..f2b325e
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__stream.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_stream Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_stream Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Represents a single stream within the Guacamole protocol.  
+ <a href="structguac__stream.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a487951c2cc77b2e1637e3aa0b5faaa60"><td class="memItemLeft" align="right" valign="top"><a id="a487951c2cc77b2e1637e3aa0b5faaa60"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60">index</a></td></tr>
+<tr class="memdesc:a487951c2cc77b2e1637e3aa0b5faaa60"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of this stream. <br /></td></tr>
+<tr class="separator:a487951c2cc77b2e1637e3aa0b5faaa60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acdf20063ca408431862d901c9445b429"><td class="memItemLeft" align="right" valign="top"><a id="acdf20063ca408431862d901c9445b429"></a>
+void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html#acdf20063ca408431862d901c9445b429">data</a></td></tr>
+<tr class="memdesc:acdf20063ca408431862d901c9445b429"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary data associated with this stream. <br /></td></tr>
+<tr class="separator:acdf20063ca408431862d901c9445b429"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acd077c7266d10871ee1e07951dfa72ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">ack_handler</a></td></tr>
+<tr class="memdesc:acd077c7266d10871ee1e07951dfa72ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for ack events sent by the Guacamole web-client.  <a href="#acd077c7266d10871ee1e07951dfa72ff">More...</a><br /></td></tr>
+<tr class="separator:acd077c7266d10871ee1e07951dfa72ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51122ba04f416d8ce047542c603632f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">blob_handler</a></td></tr>
+<tr class="memdesc:a51122ba04f416d8ce047542c603632f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for blob events sent by the Guacamole web-client.  <a href="#a51122ba04f416d8ce047542c603632f8">More...</a><br /></td></tr>
+<tr class="separator:a51122ba04f416d8ce047542c603632f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96fef1b691d5c5ebaf78bff6df3b01db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">end_handler</a></td></tr>
+<tr class="memdesc:a96fef1b691d5c5ebaf78bff6df3b01db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for stream end events sent by the Guacamole web-client.  <a href="#a96fef1b691d5c5ebaf78bff6df3b01db">More...</a><br /></td></tr>
+<tr class="separator:a96fef1b691d5c5ebaf78bff6df3b01db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Represents a single stream within the Guacamole protocol. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="acd077c7266d10871ee1e07951dfa72ff"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acd077c7266d10871ee1e07951dfa72ff">&#9670;&nbsp;</a></span>ack_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>* guac_stream::ack_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for ack events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, a string containing the error or status message, and a status code.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">ack_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* error, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> some_function(<a class="code" href="structguac__user.html">guac_user</a>* user) {</div><div class="line"></div><div class="line">    <a class="code" href="structguac__stream.html">guac_stream</a>* stream = <a class="code" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">guac_user_alloc_stream</a>(user);</div><div class="line">    stream-&gt;<a class="code" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">ack_handler</a> = <a class="code" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">ack_handler</a>;</div><div class="line"></div><div class="line">    <a class="code" href="protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64">guac_protocol_send_clipboard</a>(user-&gt;<a class="code" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">socket</a>,</div><div class="line">        stream, <span class="stringliteral">&quot;text/plain&quot;</span>);</div><div class="line"></div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a51122ba04f416d8ce047542c603632f8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a51122ba04f416d8ce047542c603632f8">&#9670;&nbsp;</a></span>blob_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>* guac_stream::blob_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for blob events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, an arbitrary buffer containing the blob, and the length of the blob.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">blob_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">void</span>* <a class="code" href="structguac__stream.html#acdf20063ca408431862d901c9445b429">data</a>, <span class="keywordtype">int</span> length);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> my_clipboard_handler(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype) {</div><div class="line">    stream-&gt;<a class="code" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">blob_handler</a> = <a class="code" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">blob_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a96fef1b691d5c5ebaf78bff6df3b01db"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a96fef1b691d5c5ebaf78bff6df3b01db">&#9670;&nbsp;</a></span>end_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>* guac_stream::end_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for stream end events sent by the Guacamole web-client. </p>
+<p>The handler takes only a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> which contains the stream index. This <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> will be disposed of immediately after this event is finished.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">end_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> my_clipboard_handler(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype) {</div><div class="line">    stream-&gt;<a class="code" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">end_handler</a> = <a class="code" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">end_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="stream_8h_source.html">stream.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__user.html b/doc/1.1.0/libguac/structguac__user.html
new file mode 100644
index 0000000..af04ddd
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__user.html
@@ -0,0 +1,530 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_user Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_user Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Representation of a physical connection within a larger logical connection which may be shared.  
+ <a href="structguac__user.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a5e296149a26932dfeb7d8b0bac933ecf"><td class="memItemLeft" align="right" valign="top"><a id="a5e296149a26932dfeb7d8b0bac933ecf"></a>
+<a class="el" href="structguac__client.html">guac_client</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">client</a></td></tr>
+<tr class="memdesc:a5e296149a26932dfeb7d8b0bac933ecf"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> to which this user belongs. <br /></td></tr>
+<tr class="separator:a5e296149a26932dfeb7d8b0bac933ecf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8496638b8c4c52f5f15d483b92becf27"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">socket</a></td></tr>
+<tr class="memdesc:a8496638b8c4c52f5f15d483b92becf27"><td class="mdescLeft">&#160;</td><td class="mdescRight">This user's actual socket.  <a href="#a8496638b8c4c52f5f15d483b92becf27">More...</a><br /></td></tr>
+<tr class="separator:a8496638b8c4c52f5f15d483b92becf27"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aad1c6a8b56d17c12eb1f1e36c4798c70"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">user_id</a></td></tr>
+<tr class="memdesc:aad1c6a8b56d17c12eb1f1e36c4798c70"><td class="mdescLeft">&#160;</td><td class="mdescRight">The unique identifier allocated for this user, which may be used within the Guacamole protocol to refer to this user.  <a href="#aad1c6a8b56d17c12eb1f1e36c4798c70">More...</a><br /></td></tr>
+<tr class="separator:aad1c6a8b56d17c12eb1f1e36c4798c70"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a265180af7291745b2e090ee6fa47cbb8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">owner</a></td></tr>
+<tr class="memdesc:a265180af7291745b2e090ee6fa47cbb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-zero if this user is the owner of the associated connection, zero otherwise.  <a href="#a265180af7291745b2e090ee6fa47cbb8">More...</a><br /></td></tr>
+<tr class="separator:a265180af7291745b2e090ee6fa47cbb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b52d918f437923d65e9b3eecb20fcfd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">active</a></td></tr>
+<tr class="memdesc:a1b52d918f437923d65e9b3eecb20fcfd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-zero if this user is active (connected), and zero otherwise.  <a href="#a1b52d918f437923d65e9b3eecb20fcfd">More...</a><br /></td></tr>
+<tr class="separator:a1b52d918f437923d65e9b3eecb20fcfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aebdee192ef52dfe8956c776adc65fb16"><td class="memItemLeft" align="right" valign="top"><a id="aebdee192ef52dfe8956c776adc65fb16"></a>
+<a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">last_received_timestamp</a></td></tr>
+<tr class="memdesc:aebdee192ef52dfe8956c776adc65fb16"><td class="mdescLeft">&#160;</td><td class="mdescRight">The time (in milliseconds) of receipt of the last sync message from the user. <br /></td></tr>
+<tr class="separator:aebdee192ef52dfe8956c776adc65fb16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7e84b1bf15d3d15ba49ce58f1819060"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">last_frame_duration</a></td></tr>
+<tr class="memdesc:ac7e84b1bf15d3d15ba49ce58f1819060"><td class="mdescLeft">&#160;</td><td class="mdescRight">The duration of the last frame rendered by the user, in milliseconds.  <a href="#ac7e84b1bf15d3d15ba49ce58f1819060">More...</a><br /></td></tr>
+<tr class="separator:ac7e84b1bf15d3d15ba49ce58f1819060"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b097cae9283bb0caf70189d4f3d1d0e"><td class="memItemLeft" align="right" valign="top"><a id="a4b097cae9283bb0caf70189d4f3d1d0e"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">processing_lag</a></td></tr>
+<tr class="memdesc:a4b097cae9283bb0caf70189d4f3d1d0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The overall lag experienced by the user relative to the stream of frames, roughly excluding network lag. <br /></td></tr>
+<tr class="separator:a4b097cae9283bb0caf70189d4f3d1d0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0120f63e0eb933761666047ed80e483f"><td class="memItemLeft" align="right" valign="top"><a id="a0120f63e0eb933761666047ed80e483f"></a>
+<a class="el" href="structguac__user__info.html">guac_user_info</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">info</a></td></tr>
+<tr class="memdesc:a0120f63e0eb933761666047ed80e483f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Information structure containing properties exposed by the remote user during the initial handshake process. <br /></td></tr>
+<tr class="separator:a0120f63e0eb933761666047ed80e483f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad424a52c5d996e4a33de5dad61555883"><td class="memItemLeft" align="right" valign="top"><a id="ad424a52c5d996e4a33de5dad61555883"></a>
+void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">data</a></td></tr>
+<tr class="memdesc:ad424a52c5d996e4a33de5dad61555883"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary user-specific data. <br /></td></tr>
+<tr class="separator:ad424a52c5d996e4a33de5dad61555883"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a05ec6fd1894ff8df10c051b20df1b763"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">mouse_handler</a></td></tr>
+<tr class="memdesc:a05ec6fd1894ff8df10c051b20df1b763"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for mouse events sent by the Gaucamole web-client.  <a href="#a05ec6fd1894ff8df10c051b20df1b763">More...</a><br /></td></tr>
+<tr class="separator:a05ec6fd1894ff8df10c051b20df1b763"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab9b8b3c268a0d14a28bdae6929cffb13"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">key_handler</a></td></tr>
+<tr class="memdesc:ab9b8b3c268a0d14a28bdae6929cffb13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for key events sent by the Guacamole web-client.  <a href="#ab9b8b3c268a0d14a28bdae6929cffb13">More...</a><br /></td></tr>
+<tr class="separator:ab9b8b3c268a0d14a28bdae6929cffb13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77f042802092c8bbf4407836f3185343"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">clipboard_handler</a></td></tr>
+<tr class="memdesc:a77f042802092c8bbf4407836f3185343"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for clipboard events sent by the Guacamole web-client.  <a href="#a77f042802092c8bbf4407836f3185343">More...</a><br /></td></tr>
+<tr class="separator:a77f042802092c8bbf4407836f3185343"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36a2fee906be0898907ba6e4a97bdb9a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">size_handler</a></td></tr>
+<tr class="memdesc:a36a2fee906be0898907ba6e4a97bdb9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for size events sent by the Guacamole web-client.  <a href="#a36a2fee906be0898907ba6e4a97bdb9a">More...</a><br /></td></tr>
+<tr class="separator:a36a2fee906be0898907ba6e4a97bdb9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b958a20fbe7cf082d5ee074fceac474"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">file_handler</a></td></tr>
+<tr class="memdesc:a8b958a20fbe7cf082d5ee074fceac474"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for file events sent by the Guacamole web-client.  <a href="#a8b958a20fbe7cf082d5ee074fceac474">More...</a><br /></td></tr>
+<tr class="separator:a8b958a20fbe7cf082d5ee074fceac474"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af35d1f6f2c97d917bf88cf66384f58a3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">pipe_handler</a></td></tr>
+<tr class="memdesc:af35d1f6f2c97d917bf88cf66384f58a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for pipe events sent by the Guacamole web-client.  <a href="#af35d1f6f2c97d917bf88cf66384f58a3">More...</a><br /></td></tr>
+<tr class="separator:af35d1f6f2c97d917bf88cf66384f58a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad44c1bf6ab56aae0098458a1af2aa6be"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">ack_handler</a></td></tr>
+<tr class="memdesc:ad44c1bf6ab56aae0098458a1af2aa6be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for ack events sent by the Guacamole web-client.  <a href="#ad44c1bf6ab56aae0098458a1af2aa6be">More...</a><br /></td></tr>
+<tr class="separator:ad44c1bf6ab56aae0098458a1af2aa6be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88a14fda25c9929269d198d4d602f7fb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">blob_handler</a></td></tr>
+<tr class="memdesc:a88a14fda25c9929269d198d4d602f7fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for blob events sent by the Guacamole web-client.  <a href="#a88a14fda25c9929269d198d4d602f7fb">More...</a><br /></td></tr>
+<tr class="separator:a88a14fda25c9929269d198d4d602f7fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a793f7ef1cd818c296e7a5801c349f5ed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">end_handler</a></td></tr>
+<tr class="memdesc:a793f7ef1cd818c296e7a5801c349f5ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for stream end events sent by the Guacamole web-client.  <a href="#a793f7ef1cd818c296e7a5801c349f5ed">More...</a><br /></td></tr>
+<tr class="separator:a793f7ef1cd818c296e7a5801c349f5ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a209e83f080baf2e84d04cf08395374d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">sync_handler</a></td></tr>
+<tr class="memdesc:a209e83f080baf2e84d04cf08395374d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for sync events sent by the Guacamole web-client.  <a href="#a209e83f080baf2e84d04cf08395374d2">More...</a><br /></td></tr>
+<tr class="separator:a209e83f080baf2e84d04cf08395374d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a12f1c20cab11d657e0f255db10f42e2f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">leave_handler</a></td></tr>
+<tr class="memdesc:a12f1c20cab11d657e0f255db10f42e2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for leave events fired by the <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> when a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> is leaving an active connection.  <a href="#a12f1c20cab11d657e0f255db10f42e2f">More...</a><br /></td></tr>
+<tr class="separator:a12f1c20cab11d657e0f255db10f42e2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ada73c04bbf06de4280f2d7679190a19b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">get_handler</a></td></tr>
+<tr class="memdesc:ada73c04bbf06de4280f2d7679190a19b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for get events sent by the Guacamole web-client.  <a href="#ada73c04bbf06de4280f2d7679190a19b">More...</a><br /></td></tr>
+<tr class="separator:ada73c04bbf06de4280f2d7679190a19b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b33553d0e1af01d8c9fbc6ec33202c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">put_handler</a></td></tr>
+<tr class="memdesc:a0b33553d0e1af01d8c9fbc6ec33202c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for put events sent by the Guacamole web-client.  <a href="#a0b33553d0e1af01d8c9fbc6ec33202c3">More...</a><br /></td></tr>
+<tr class="separator:a0b33553d0e1af01d8c9fbc6ec33202c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a391e11605bf5605df3e27f6f7d0e2c69"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">audio_handler</a></td></tr>
+<tr class="memdesc:a391e11605bf5605df3e27f6f7d0e2c69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for audio events sent by the Guacamole web-client.  <a href="#a391e11605bf5605df3e27f6f7d0e2c69">More...</a><br /></td></tr>
+<tr class="separator:a391e11605bf5605df3e27f6f7d0e2c69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab6b6bdcd73d29132df5f331921ca287a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">argv_handler</a></td></tr>
+<tr class="memdesc:ab6b6bdcd73d29132df5f331921ca287a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for argv events (updates to the connection parameters of an in-progress connection) sent by the Guacamole web-client.  <a href="#ab6b6bdcd73d29132df5f331921ca287a">More...</a><br /></td></tr>
+<tr class="separator:ab6b6bdcd73d29132df5f331921ca287a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Representation of a physical connection within a larger logical connection which may be shared. </p>
+<p>Logical connections are represented by <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="ad44c1bf6ab56aae0098458a1af2aa6be"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad44c1bf6ab56aae0098458a1af2aa6be">&#9670;&nbsp;</a></span>ack_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>* guac_user::ack_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for ack events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, a string containing the error or status message, and a status code.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">ack_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* error, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">ack_handler</a> = <a class="code" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">ack_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a1b52d918f437923d65e9b3eecb20fcfd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1b52d918f437923d65e9b3eecb20fcfd">&#9670;&nbsp;</a></span>active</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user::active</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Non-zero if this user is active (connected), and zero otherwise. </p>
+<p>When the user is created, this will be set to a non-zero value. If an event occurs which requires that the user disconnect, or the user has disconnected, this will be reset to zero. </p>
+
+</div>
+</div>
+<a id="ab6b6bdcd73d29132df5f331921ca287a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab6b6bdcd73d29132df5f331921ca287a">&#9670;&nbsp;</a></span>argv_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a>* guac_user::argv_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for argv events (updates to the connection parameters of an in-progress connection) sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, the mimetype of the data being transferred, and the argument (connection parameter) name.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">argv_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">argv_handler</a> = <a class="code" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">argv_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a391e11605bf5605df3e27f6f7d0e2c69"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a391e11605bf5605df3e27f6f7d0e2c69">&#9670;&nbsp;</a></span>audio_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a>* guac_user::audio_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for audio events sent by the Guacamole web-client. </p>
+<p>This handler will be called whenever the web-client wishes to send a continuous stream of audio data from some arbitrary source (a microphone, for example).</p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a>, which contains the stream index and will persist through the duration of the transfer, and the mimetype of the data being transferred.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">audio_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">audio_handler</a> = <a class="code" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">audio_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a88a14fda25c9929269d198d4d602f7fb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a88a14fda25c9929269d198d4d602f7fb">&#9670;&nbsp;</a></span>blob_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>* guac_user::blob_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for blob events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, an arbitrary buffer containing the blob, and the length of the blob.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">blob_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">void</span>* <a class="code" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">data</a>, <span class="keywordtype">int</span> length);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">blob_handler</a> = <a class="code" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">blob_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a77f042802092c8bbf4407836f3185343"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a77f042802092c8bbf4407836f3185343">&#9670;&nbsp;</a></span>clipboard_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a>* guac_user::clipboard_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for clipboard events sent by the Guacamole web-client. </p>
+<p>This handler will be called whenever the web-client sets the data of the clipboard.</p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a>, which contains the stream index and will persist through the duration of the transfer, and the mimetype of the data being transferred.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">clipboard_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">clipboard_handler</a> = <a class="code" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">clipboard_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a793f7ef1cd818c296e7a5801c349f5ed"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a793f7ef1cd818c296e7a5801c349f5ed">&#9670;&nbsp;</a></span>end_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>* guac_user::end_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for stream end events sent by the Guacamole web-client. </p>
+<p>The handler takes only a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> which contains the stream index. This <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> will be disposed of immediately after this event is finished.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">end_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">end_handler</a> = <a class="code" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">end_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a8b958a20fbe7cf082d5ee074fceac474"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8b958a20fbe7cf082d5ee074fceac474">&#9670;&nbsp;</a></span>file_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a>* guac_user::file_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for file events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, the mimetype of the file being transferred, and the filename.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">file_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* filename);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">file_handler</a> = <a class="code" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">file_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="ada73c04bbf06de4280f2d7679190a19b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ada73c04bbf06de4280f2d7679190a19b">&#9670;&nbsp;</a></span>get_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>* guac_user::get_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for get events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__object.html" title="Represents a single object within the Guacamole protocol. ">guac_object</a>, containing the object index which will persist through the duration of the transfer, and the name of the stream being requested. It is up to the get handler to create the required body stream.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">get_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line">        <span class="keywordtype">char</span>* name);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">get_handler</a> = <a class="code" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">get_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="ab9b8b3c268a0d14a28bdae6929cffb13"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab9b8b3c268a0d14a28bdae6929cffb13">&#9670;&nbsp;</a></span>key_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a>* guac_user::key_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for key events sent by the Guacamole web-client. </p>
+<p>The handler takes the integer X11 keysym associated with the key being pressed/released, and an integer representing whether the key is being pressed (1) or released (0).</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">key_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> keysym, <span class="keywordtype">int</span> pressed);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">key_handler</a> = <a class="code" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">key_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="ac7e84b1bf15d3d15ba49ce58f1819060"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac7e84b1bf15d3d15ba49ce58f1819060">&#9670;&nbsp;</a></span>last_frame_duration</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user::last_frame_duration</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The duration of the last frame rendered by the user, in milliseconds. </p>
+<p>This duration will include network and processing lag, and thus should be slightly higher than the true frame duration. </p>
+
+</div>
+</div>
+<a id="a12f1c20cab11d657e0f255db10f42e2f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a12f1c20cab11d657e0f255db10f42e2f">&#9670;&nbsp;</a></span>leave_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a>* guac_user::leave_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for leave events fired by the <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> when a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> is leaving an active connection. </p>
+<p>The handler takes only a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> which will be the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> that left the connection. This <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> will be disposed of immediately after this event is finished.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">leave_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> my_join_handler(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argv, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">leave_handler</a> = <a class="code" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">leave_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a05ec6fd1894ff8df10c051b20df1b763"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a05ec6fd1894ff8df10c051b20df1b763">&#9670;&nbsp;</a></span>mouse_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a>* guac_user::mouse_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for mouse events sent by the Gaucamole web-client. </p>
+<p>The handler takes the integer mouse X and Y coordinates, as well as a button mask containing the bitwise OR of all button values currently being pressed. Those values are:</p>
+<table class="doxtable">
+<tr>
+<th>Button </th><th>Value </th></tr>
+<tr>
+<td>Left </td><td>1 </td></tr>
+<tr>
+<td>Middle </td><td>2 </td></tr>
+<tr>
+<td>Right </td><td>4 </td></tr>
+<tr>
+<td>Scrollwheel Up </td><td>8 </td></tr>
+<tr>
+<td>Scrollwheel Down</td><td>16 </td></tr>
+</table>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">mouse_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> button_mask);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">mouse_handler</a> = <a class="code" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">mouse_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a265180af7291745b2e090ee6fa47cbb8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a265180af7291745b2e090ee6fa47cbb8">&#9670;&nbsp;</a></span>owner</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user::owner</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Non-zero if this user is the owner of the associated connection, zero otherwise. </p>
+<p>The owner is the user which created the connection. </p>
+
+</div>
+</div>
+<a id="af35d1f6f2c97d917bf88cf66384f58a3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af35d1f6f2c97d917bf88cf66384f58a3">&#9670;&nbsp;</a></span>pipe_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a>* guac_user::pipe_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for pipe events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, the mimetype of the data being transferred, and the pipe name.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">pipe_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">pipe_handler</a> = <a class="code" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">pipe_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a0b33553d0e1af01d8c9fbc6ec33202c3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0b33553d0e1af01d8c9fbc6ec33202c3">&#9670;&nbsp;</a></span>put_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>* guac_user::put_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for put events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__object.html" title="Represents a single object within the Guacamole protocol. ">guac_object</a> and <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a>, which each contain their respective indices which will persist through the duration of the transfer, the mimetype of the data being transferred, and the name of the stream within the object being written to.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">put_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line">        <a class="code" href="structguac__stream.html">guac_stream</a>* stream, <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">put_handler</a> = <a class="code" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">put_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a36a2fee906be0898907ba6e4a97bdb9a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a36a2fee906be0898907ba6e4a97bdb9a">&#9670;&nbsp;</a></span>size_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a>* guac_user::size_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for size events sent by the Guacamole web-client. </p>
+<p>The handler takes an integer width and integer height, representing the current visible screen area of the client.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">size_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">size_handler</a> = <a class="code" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">size_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a8496638b8c4c52f5f15d483b92becf27"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8496638b8c4c52f5f15d483b92becf27">&#9670;&nbsp;</a></span>socket</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_user::socket</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>This user's actual socket. </p>
+<p>Data written to this socket will be received by this user alone, and data sent by this specific user will be received by this socket. </p>
+
+</div>
+</div>
+<a id="a209e83f080baf2e84d04cf08395374d2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a209e83f080baf2e84d04cf08395374d2">&#9670;&nbsp;</a></span>sync_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a>* guac_user::sync_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for sync events sent by the Guacamole web-client. </p>
+<p>Sync events are used to track per-user latency.</p>
+<p>The handler takes only a guac_timestamp which contains the timestamp received from the user. Latency can be determined by comparing this timestamp against the last_sent_timestamp of <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">sync_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">sync_handler</a> = <a class="code" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">sync_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="aad1c6a8b56d17c12eb1f1e36c4798c70"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aad1c6a8b56d17c12eb1f1e36c4798c70">&#9670;&nbsp;</a></span>user_id</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* guac_user::user_id</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The unique identifier allocated for this user, which may be used within the Guacamole protocol to refer to this user. </p>
+<p>This identifier is guaranteed to be unique from all existing connections and users, and will not collide with any available protocol names. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="user_8h_source.html">user.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__user__info.html b/doc/1.1.0/libguac/structguac__user__info.html
new file mode 100644
index 0000000..09f325b
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__user__info.html
@@ -0,0 +1,232 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_user_info Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_user_info Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Information exposed by the remote client during the connection handshake which can be used by a client plugin.  
+ <a href="structguac__user__info.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a496d5f3d26a7db0a0490afa553126c66"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">optimal_width</a></td></tr>
+<tr class="memdesc:a496d5f3d26a7db0a0490afa553126c66"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of pixels the remote client requests for the display width.  <a href="#a496d5f3d26a7db0a0490afa553126c66">More...</a><br /></td></tr>
+<tr class="separator:a496d5f3d26a7db0a0490afa553126c66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a252079af642b62554566e8675dc43354"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#a252079af642b62554566e8675dc43354">optimal_height</a></td></tr>
+<tr class="memdesc:a252079af642b62554566e8675dc43354"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of pixels the remote client requests for the display height.  <a href="#a252079af642b62554566e8675dc43354">More...</a><br /></td></tr>
+<tr class="separator:a252079af642b62554566e8675dc43354"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a043432620dafe7ba38fcd3550fdc7d27"><td class="memItemLeft" align="right" valign="top">const char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">audio_mimetypes</a></td></tr>
+<tr class="memdesc:a043432620dafe7ba38fcd3550fdc7d27"><td class="mdescLeft">&#160;</td><td class="mdescRight">NULL-terminated array of client-supported audio mimetypes.  <a href="#a043432620dafe7ba38fcd3550fdc7d27">More...</a><br /></td></tr>
+<tr class="separator:a043432620dafe7ba38fcd3550fdc7d27"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace535bea6879596b6473657f3fc83b57"><td class="memItemLeft" align="right" valign="top">const char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">video_mimetypes</a></td></tr>
+<tr class="memdesc:ace535bea6879596b6473657f3fc83b57"><td class="mdescLeft">&#160;</td><td class="mdescRight">NULL-terminated array of client-supported video mimetypes.  <a href="#ace535bea6879596b6473657f3fc83b57">More...</a><br /></td></tr>
+<tr class="separator:ace535bea6879596b6473657f3fc83b57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac05b09cce376e656f4e4baa19f888345"><td class="memItemLeft" align="right" valign="top">const char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">image_mimetypes</a></td></tr>
+<tr class="memdesc:ac05b09cce376e656f4e4baa19f888345"><td class="mdescLeft">&#160;</td><td class="mdescRight">NULL-terminated array of client-supported image mimetypes.  <a href="#ac05b09cce376e656f4e4baa19f888345">More...</a><br /></td></tr>
+<tr class="separator:ac05b09cce376e656f4e4baa19f888345"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac19c08c0ef7441556be0afed6fb9c7c7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">optimal_resolution</a></td></tr>
+<tr class="memdesc:ac19c08c0ef7441556be0afed6fb9c7c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The DPI of the physical remote display if configured for the optimal width/height combination described here.  <a href="#ac19c08c0ef7441556be0afed6fb9c7c7">More...</a><br /></td></tr>
+<tr class="separator:ac19c08c0ef7441556be0afed6fb9c7c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c08990b6fd1e0627652a9c879ea2078"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078">timezone</a></td></tr>
+<tr class="memdesc:a2c08990b6fd1e0627652a9c879ea2078"><td class="mdescLeft">&#160;</td><td class="mdescRight">The timezone of the remote system.  <a href="#a2c08990b6fd1e0627652a9c879ea2078">More...</a><br /></td></tr>
+<tr class="separator:a2c08990b6fd1e0627652a9c879ea2078"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Information exposed by the remote client during the connection handshake which can be used by a client plugin. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="a043432620dafe7ba38fcd3550fdc7d27"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a043432620dafe7ba38fcd3550fdc7d27">&#9670;&nbsp;</a></span>audio_mimetypes</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char** guac_user_info::audio_mimetypes</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>NULL-terminated array of client-supported audio mimetypes. </p>
+<p>If the client does not support audio at all, this will be NULL. </p>
+
+</div>
+</div>
+<a id="ac05b09cce376e656f4e4baa19f888345"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac05b09cce376e656f4e4baa19f888345">&#9670;&nbsp;</a></span>image_mimetypes</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char** guac_user_info::image_mimetypes</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>NULL-terminated array of client-supported image mimetypes. </p>
+<p>Though all supported image mimetypes will be listed here, it can be safely assumed that all clients will support at least "image/png" and "image/jpeg". </p>
+
+</div>
+</div>
+<a id="a252079af642b62554566e8675dc43354"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a252079af642b62554566e8675dc43354">&#9670;&nbsp;</a></span>optimal_height</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_info::optimal_height</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The number of pixels the remote client requests for the display height. </p>
+<p>This need not be honored by a client plugin implementation, but if the underlying protocol of the client plugin supports dynamic sizing of the screen, honoring the display size request is recommended. </p>
+
+</div>
+</div>
+<a id="ac19c08c0ef7441556be0afed6fb9c7c7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac19c08c0ef7441556be0afed6fb9c7c7">&#9670;&nbsp;</a></span>optimal_resolution</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_info::optimal_resolution</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The DPI of the physical remote display if configured for the optimal width/height combination described here. </p>
+<p>This need not be honored by a client plugin implementation, but if the underlying protocol of the client plugin supports dynamic sizing of the screen, honoring the stated resolution of the display size request is recommended. </p>
+
+</div>
+</div>
+<a id="a496d5f3d26a7db0a0490afa553126c66"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a496d5f3d26a7db0a0490afa553126c66">&#9670;&nbsp;</a></span>optimal_width</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_info::optimal_width</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The number of pixels the remote client requests for the display width. </p>
+<p>This need not be honored by a client plugin implementation, but if the underlying protocol of the client plugin supports dynamic sizing of the screen, honoring the display size request is recommended. </p>
+
+</div>
+</div>
+<a id="a2c08990b6fd1e0627652a9c879ea2078"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2c08990b6fd1e0627652a9c879ea2078">&#9670;&nbsp;</a></span>timezone</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* guac_user_info::timezone</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The timezone of the remote system. </p>
+<p>If the client does not provide a specific timezone then this will be NULL. The format of the timezone is the standard tzdata naming convention. </p>
+
+</div>
+</div>
+<a id="ace535bea6879596b6473657f3fc83b57"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ace535bea6879596b6473657f3fc83b57">&#9670;&nbsp;</a></span>video_mimetypes</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char** guac_user_info::video_mimetypes</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>NULL-terminated array of client-supported video mimetypes. </p>
+<p>If the client does not support video at all, this will be NULL. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="user_8h_source.html">user.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/sync_off.png b/doc/1.1.0/libguac/sync_off.png
new file mode 100644
index 0000000..3b443fc
--- /dev/null
+++ b/doc/1.1.0/libguac/sync_off.png
Binary files differ
diff --git a/doc/1.1.0/libguac/sync_on.png b/doc/1.1.0/libguac/sync_on.png
new file mode 100644
index 0000000..e08320f
--- /dev/null
+++ b/doc/1.1.0/libguac/sync_on.png
Binary files differ
diff --git a/doc/1.1.0/libguac/tab_a.png b/doc/1.1.0/libguac/tab_a.png
new file mode 100644
index 0000000..3b725c4
--- /dev/null
+++ b/doc/1.1.0/libguac/tab_a.png
Binary files differ
diff --git a/doc/1.1.0/libguac/tab_b.png b/doc/1.1.0/libguac/tab_b.png
new file mode 100644
index 0000000..e2b4a86
--- /dev/null
+++ b/doc/1.1.0/libguac/tab_b.png
Binary files differ
diff --git a/doc/1.1.0/libguac/tab_h.png b/doc/1.1.0/libguac/tab_h.png
new file mode 100644
index 0000000..fd5cb70
--- /dev/null
+++ b/doc/1.1.0/libguac/tab_h.png
Binary files differ
diff --git a/doc/1.1.0/libguac/tab_s.png b/doc/1.1.0/libguac/tab_s.png
new file mode 100644
index 0000000..ab478c9
--- /dev/null
+++ b/doc/1.1.0/libguac/tab_s.png
Binary files differ
diff --git a/doc/1.1.0/libguac/tabs.css b/doc/1.1.0/libguac/tabs.css
new file mode 100644
index 0000000..a28614b
--- /dev/null
+++ b/doc/1.1.0/libguac/tabs.css
@@ -0,0 +1 @@
+.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#doc-content{overflow:auto;display:block;padding:0;margin:0;-webkit-overflow-scrolling:touch}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}}
\ No newline at end of file
diff --git a/doc/1.1.0/libguac/timestamp-types_8h.html b/doc/1.1.0/libguac/timestamp-types_8h.html
new file mode 100644
index 0000000..950bbe3
--- /dev/null
+++ b/doc/1.1.0/libguac/timestamp-types_8h.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/timestamp-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">timestamp-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to Guacamole protocol timestamps.  
+<a href="#details">More...</a></p>
+
+<p><a href="timestamp-types_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a69e916d1ff324fbe0e527f32359c9cea"><td class="memItemLeft" align="right" valign="top"><a id="a69e916d1ff324fbe0e527f32359c9cea"></a>
+typedef int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></td></tr>
+<tr class="memdesc:a69e916d1ff324fbe0e527f32359c9cea"><td class="mdescLeft">&#160;</td><td class="mdescRight">An arbitrary timestamp denoting a relative time value in milliseconds. <br /></td></tr>
+<tr class="separator:a69e916d1ff324fbe0e527f32359c9cea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to Guacamole protocol timestamps. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/timestamp-types_8h_source.html b/doc/1.1.0/libguac/timestamp-types_8h_source.html
new file mode 100644
index 0000000..119f5ed
--- /dev/null
+++ b/doc/1.1.0/libguac/timestamp-types_8h_source.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/timestamp-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">timestamp-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="timestamp-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_TIMESTAMP_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_TIMESTAMP_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">   34</a></span>&#160;<span class="keyword">typedef</span> int64_t <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds. </div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/timestamp_8h.html b/doc/1.1.0/libguac/timestamp_8h.html
new file mode 100644
index 0000000..70c85a9
--- /dev/null
+++ b/doc/1.1.0/libguac/timestamp_8h.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/timestamp.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">timestamp.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures for creating timestamps.  
+<a href="#details">More...</a></p>
+
+<p><a href="timestamp_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ab85ce937dce4d8e94c173be917bc0719"><td class="memItemLeft" align="right" valign="top"><a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719">guac_timestamp_current</a> ()</td></tr>
+<tr class="memdesc:ab85ce937dce4d8e94c173be917bc0719"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an arbitrary timestamp.  <a href="#ab85ce937dce4d8e94c173be917bc0719">More...</a><br /></td></tr>
+<tr class="separator:ab85ce937dce4d8e94c173be917bc0719"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d1fdc2698a04c75e196b014a4717868"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868">guac_timestamp_msleep</a> (int duration)</td></tr>
+<tr class="memdesc:a4d1fdc2698a04c75e196b014a4717868"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sleeps for the given number of milliseconds.  <a href="#a4d1fdc2698a04c75e196b014a4717868">More...</a><br /></td></tr>
+<tr class="separator:a4d1fdc2698a04c75e196b014a4717868"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures for creating timestamps. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="ab85ce937dce4d8e94c173be917bc0719"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab85ce937dce4d8e94c173be917bc0719">&#9670;&nbsp;</a></span>guac_timestamp_current()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> guac_timestamp_current </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns an arbitrary timestamp. </p>
+<p>The difference between return values of any two calls is equal to the amount of time in milliseconds between those calls. The return value from a single call will not have any useful (or defined) meaning.</p>
+<dl class="section return"><dt>Returns</dt><dd>An arbitrary millisecond timestamp. </dd></dl>
+
+</div>
+</div>
+<a id="a4d1fdc2698a04c75e196b014a4717868"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4d1fdc2698a04c75e196b014a4717868">&#9670;&nbsp;</a></span>guac_timestamp_msleep()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_timestamp_msleep </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>duration</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sleeps for the given number of milliseconds. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">duration</td><td>The number of milliseconds to sleep. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/timestamp_8h_source.html b/doc/1.1.0/libguac/timestamp_8h_source.html
new file mode 100644
index 0000000..95bde70
--- /dev/null
+++ b/doc/1.1.0/libguac/timestamp_8h_source.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/timestamp.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">timestamp.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="timestamp_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_TIMESTAMP_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_TIMESTAMP_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timestamp-types_8h.html">timestamp-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> <a class="code" href="timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719">guac_timestamp_current</a>();</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keywordtype">void</span> <a class="code" href="timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868">guac_timestamp_msleep</a>(<span class="keywordtype">int</span> duration);</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds. </div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+<div class="ttc" id="timestamp_8h_html_ab85ce937dce4d8e94c173be917bc0719"><div class="ttname"><a href="timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719">guac_timestamp_current</a></div><div class="ttdeci">guac_timestamp guac_timestamp_current()</div><div class="ttdoc">Returns an arbitrary timestamp. </div></div>
+<div class="ttc" id="timestamp_8h_html_a4d1fdc2698a04c75e196b014a4717868"><div class="ttname"><a href="timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868">guac_timestamp_msleep</a></div><div class="ttdeci">void guac_timestamp_msleep(int duration)</div><div class="ttdoc">Sleeps for the given number of milliseconds. </div></div>
+<div class="ttc" id="timestamp-types_8h_html"><div class="ttname"><a href="timestamp-types_8h.html">timestamp-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol timestamps. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/unicode_8h.html b/doc/1.1.0/libguac/unicode_8h.html
new file mode 100644
index 0000000..104537e
--- /dev/null
+++ b/doc/1.1.0/libguac/unicode_8h.html
@@ -0,0 +1,253 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/unicode.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">unicode.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions for manipulating Unicode strings.  
+<a href="#details">More...</a></p>
+
+<p><a href="unicode_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a423523f1531719c6ab4fafdb02008623"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unicode_8h.html#a423523f1531719c6ab4fafdb02008623">guac_utf8_charsize</a> (unsigned char c)</td></tr>
+<tr class="memdesc:a423523f1531719c6ab4fafdb02008623"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given the initial byte of a single UTF-8 character, returns the overall byte size of the entire character.  <a href="#a423523f1531719c6ab4fafdb02008623">More...</a><br /></td></tr>
+<tr class="separator:a423523f1531719c6ab4fafdb02008623"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a778e48706f4ee85f229711fe4cb1343b"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b">guac_utf8_strlen</a> (const char *str)</td></tr>
+<tr class="memdesc:a778e48706f4ee85f229711fe4cb1343b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given a UTF-8-encoded string, returns the length of the string in characters (not bytes).  <a href="#a778e48706f4ee85f229711fe4cb1343b">More...</a><br /></td></tr>
+<tr class="separator:a778e48706f4ee85f229711fe4cb1343b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa49339a4af9952b0b56402825059a2ce"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unicode_8h.html#aa49339a4af9952b0b56402825059a2ce">guac_utf8_write</a> (int codepoint, char *utf8, int length)</td></tr>
+<tr class="memdesc:aa49339a4af9952b0b56402825059a2ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given destination buffer and its length, writes the given codepoint as UTF-8 to the buffer, returning the number of bytes written.  <a href="#aa49339a4af9952b0b56402825059a2ce">More...</a><br /></td></tr>
+<tr class="separator:aa49339a4af9952b0b56402825059a2ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1690b7b5e4fbcfc556fa4ee7129a25af"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af">guac_utf8_read</a> (const char *utf8, int length, int *codepoint)</td></tr>
+<tr class="memdesc:a1690b7b5e4fbcfc556fa4ee7129a25af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given a buffer containing UTF-8 characters, reads the first codepoint in the buffer, returning the length of the codepoint in bytes.  <a href="#a1690b7b5e4fbcfc556fa4ee7129a25af">More...</a><br /></td></tr>
+<tr class="separator:a1690b7b5e4fbcfc556fa4ee7129a25af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions for manipulating Unicode strings. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a423523f1531719c6ab4fafdb02008623"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a423523f1531719c6ab4fafdb02008623">&#9670;&nbsp;</a></span>guac_utf8_charsize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t guac_utf8_charsize </td>
+          <td>(</td>
+          <td class="paramtype">unsigned char&#160;</td>
+          <td class="paramname"><em>c</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Given the initial byte of a single UTF-8 character, returns the overall byte size of the entire character. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">c</td><td>The initial byte of the character to check. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes in the given character overall. </dd></dl>
+
+</div>
+</div>
+<a id="a1690b7b5e4fbcfc556fa4ee7129a25af"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1690b7b5e4fbcfc556fa4ee7129a25af">&#9670;&nbsp;</a></span>guac_utf8_read()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_utf8_read </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>utf8</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>length</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int *&#160;</td>
+          <td class="paramname"><em>codepoint</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Given a buffer containing UTF-8 characters, reads the first codepoint in the buffer, returning the length of the codepoint in bytes. </p>
+<p>If no codepoint could be read, zero is returned.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">utf8</td><td>A buffer containing UTF-8 characters. </td></tr>
+    <tr><td class="paramname">length</td><td>The length of the buffer, in bytes. </td></tr>
+    <tr><td class="paramname">codepoint</td><td>A pointer to an integer which will contain the codepoint read, if any. If no character can be read, the integer will be left untouched. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes read, which may be zero if there is not enough space in the buffer to read a character. </dd></dl>
+
+</div>
+</div>
+<a id="a778e48706f4ee85f229711fe4cb1343b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a778e48706f4ee85f229711fe4cb1343b">&#9670;&nbsp;</a></span>guac_utf8_strlen()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t guac_utf8_strlen </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>str</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Given a UTF-8-encoded string, returns the length of the string in characters (not bytes). </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">str</td><td>The UTF-8 string to calculate the length of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The length in characters of the given UTF-8 string. </dd></dl>
+
+</div>
+</div>
+<a id="aa49339a4af9952b0b56402825059a2ce"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa49339a4af9952b0b56402825059a2ce">&#9670;&nbsp;</a></span>guac_utf8_write()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_utf8_write </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>codepoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&#160;</td>
+          <td class="paramname"><em>utf8</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>length</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Given destination buffer and its length, writes the given codepoint as UTF-8 to the buffer, returning the number of bytes written. </p>
+<p>If there is not enough space in the buffer to write the character, no bytes are written at all.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">codepoint</td><td>The Unicode codepoint to write to the buffer. </td></tr>
+    <tr><td class="paramname">utf8</td><td>The buffer to write to. </td></tr>
+    <tr><td class="paramname">length</td><td>The length of the buffer, in bytes. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes written, which may be zero if there is not enough space in the buffer to write the UTF-8 character. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/unicode_8h_source.html b/doc/1.1.0/libguac/unicode_8h_source.html
new file mode 100644
index 0000000..371853f
--- /dev/null
+++ b/doc/1.1.0/libguac/unicode_8h_source.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/unicode.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">unicode.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="unicode_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef _GUAC_UNICODE_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define _GUAC_UNICODE_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="unicode_8h.html#a423523f1531719c6ab4fafdb02008623">guac_utf8_charsize</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> c);</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b">guac_utf8_strlen</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str);</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="keywordtype">int</span> <a class="code" href="unicode_8h.html#aa49339a4af9952b0b56402825059a2ce">guac_utf8_write</a>(<span class="keywordtype">int</span> codepoint, <span class="keywordtype">char</span>* utf8, <span class="keywordtype">int</span> length);</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="keywordtype">int</span> <a class="code" href="unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af">guac_utf8_read</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* utf8, <span class="keywordtype">int</span> length, <span class="keywordtype">int</span>* codepoint);</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="ttc" id="unicode_8h_html_aa49339a4af9952b0b56402825059a2ce"><div class="ttname"><a href="unicode_8h.html#aa49339a4af9952b0b56402825059a2ce">guac_utf8_write</a></div><div class="ttdeci">int guac_utf8_write(int codepoint, char *utf8, int length)</div><div class="ttdoc">Given destination buffer and its length, writes the given codepoint as UTF-8 to the buffer...</div></div>
+<div class="ttc" id="unicode_8h_html_a778e48706f4ee85f229711fe4cb1343b"><div class="ttname"><a href="unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b">guac_utf8_strlen</a></div><div class="ttdeci">size_t guac_utf8_strlen(const char *str)</div><div class="ttdoc">Given a UTF-8-encoded string, returns the length of the string in characters (not bytes)...</div></div>
+<div class="ttc" id="unicode_8h_html_a1690b7b5e4fbcfc556fa4ee7129a25af"><div class="ttname"><a href="unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af">guac_utf8_read</a></div><div class="ttdeci">int guac_utf8_read(const char *utf8, int length, int *codepoint)</div><div class="ttdoc">Given a buffer containing UTF-8 characters, reads the first codepoint in the buffer, returning the length of the codepoint in bytes. </div></div>
+<div class="ttc" id="unicode_8h_html_a423523f1531719c6ab4fafdb02008623"><div class="ttname"><a href="unicode_8h.html#a423523f1531719c6ab4fafdb02008623">guac_utf8_charsize</a></div><div class="ttdeci">size_t guac_utf8_charsize(unsigned char c)</div><div class="ttdoc">Given the initial byte of a single UTF-8 character, returns the overall byte size of the entire chara...</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/user-constants_8h.html b/doc/1.1.0/libguac/user-constants_8h.html
new file mode 100644
index 0000000..eb46c86
--- /dev/null
+++ b/doc/1.1.0/libguac/user-constants_8h.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user-constants.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">user-constants.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Constants related to the Guacamole user structure, <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a>.  
+<a href="#details">More...</a></p>
+
+<p><a href="user-constants_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:aa6442383e07f6aa68fbe504037101a87"><td class="memItemLeft" align="right" valign="top"><a id="aa6442383e07f6aa68fbe504037101a87"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#aa6442383e07f6aa68fbe504037101a87">GUAC_USER_ID_PREFIX</a>&#160;&#160;&#160;'@'</td></tr>
+<tr class="memdesc:aa6442383e07f6aa68fbe504037101a87"><td class="mdescLeft">&#160;</td><td class="mdescRight">The character prefix which identifies a user ID. <br /></td></tr>
+<tr class="separator:aa6442383e07f6aa68fbe504037101a87"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9e0884fe25345c84beac1c5a13b1c5ce"><td class="memItemLeft" align="right" valign="top"><a id="a9e0884fe25345c84beac1c5a13b1c5ce"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#a9e0884fe25345c84beac1c5a13b1c5ce">GUAC_USER_MAX_STREAMS</a>&#160;&#160;&#160;64</td></tr>
+<tr class="memdesc:a9e0884fe25345c84beac1c5a13b1c5ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of inbound or outbound streams supported by any one <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a>. <br /></td></tr>
+<tr class="separator:a9e0884fe25345c84beac1c5a13b1c5ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8749ef8d1917591b82b7747edc85d275"><td class="memItemLeft" align="right" valign="top"><a id="a8749ef8d1917591b82b7747edc85d275"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#a8749ef8d1917591b82b7747edc85d275">GUAC_USER_CLOSED_STREAM_INDEX</a>&#160;&#160;&#160;-1</td></tr>
+<tr class="memdesc:a8749ef8d1917591b82b7747edc85d275"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of a closed stream. <br /></td></tr>
+<tr class="separator:a8749ef8d1917591b82b7747edc85d275"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afbdfab527f553d531ce690cabd4ae1e7"><td class="memItemLeft" align="right" valign="top"><a id="afbdfab527f553d531ce690cabd4ae1e7"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#afbdfab527f553d531ce690cabd4ae1e7">GUAC_USER_MAX_OBJECTS</a>&#160;&#160;&#160;64</td></tr>
+<tr class="memdesc:afbdfab527f553d531ce690cabd4ae1e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of objects supported by any one <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. <br /></td></tr>
+<tr class="separator:afbdfab527f553d531ce690cabd4ae1e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae0609bd43bffdfa9ebb8da62f8118c9f"><td class="memItemLeft" align="right" valign="top"><a id="ae0609bd43bffdfa9ebb8da62f8118c9f"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#ae0609bd43bffdfa9ebb8da62f8118c9f">GUAC_USER_UNDEFINED_OBJECT_INDEX</a>&#160;&#160;&#160;-1</td></tr>
+<tr class="memdesc:ae0609bd43bffdfa9ebb8da62f8118c9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of an object which has not been defined. <br /></td></tr>
+<tr class="separator:ae0609bd43bffdfa9ebb8da62f8118c9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acb353db4f79b67678376bb521db182e5"><td class="memItemLeft" align="right" valign="top"><a id="acb353db4f79b67678376bb521db182e5"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#acb353db4f79b67678376bb521db182e5">GUAC_USER_OBJECT_ROOT_NAME</a>&#160;&#160;&#160;&quot;/&quot;</td></tr>
+<tr class="memdesc:acb353db4f79b67678376bb521db182e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">The stream name reserved for the root of a Guacamole protocol object. <br /></td></tr>
+<tr class="separator:acb353db4f79b67678376bb521db182e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3135ba0f5c4cf3099374f612446b490"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#af3135ba0f5c4cf3099374f612446b490">GUAC_USER_STREAM_INDEX_MIMETYPE</a>&#160;&#160;&#160;&quot;application/vnd.glyptodon.guacamole.stream-index+json&quot;</td></tr>
+<tr class="memdesc:af3135ba0f5c4cf3099374f612446b490"><td class="mdescLeft">&#160;</td><td class="mdescRight">The mimetype of a stream containing a map of available stream names to their corresponding mimetypes.  <a href="#af3135ba0f5c4cf3099374f612446b490">More...</a><br /></td></tr>
+<tr class="separator:af3135ba0f5c4cf3099374f612446b490"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Constants related to the Guacamole user structure, <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a>. </p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="af3135ba0f5c4cf3099374f612446b490"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af3135ba0f5c4cf3099374f612446b490">&#9670;&nbsp;</a></span>GUAC_USER_STREAM_INDEX_MIMETYPE</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_USER_STREAM_INDEX_MIMETYPE&#160;&#160;&#160;&quot;application/vnd.glyptodon.guacamole.stream-index+json&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The mimetype of a stream containing a map of available stream names to their corresponding mimetypes. </p>
+<p>The root of a Guacamole protocol object is guaranteed to have this type. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/user-constants_8h_source.html b/doc/1.1.0/libguac/user-constants_8h_source.html
new file mode 100644
index 0000000..a4fa930
--- /dev/null
+++ b/doc/1.1.0/libguac/user-constants_8h_source.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user-constants.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">user-constants.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="user-constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_USER_CONSTANTS_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_USER_CONSTANTS_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="user-constants_8h.html#aa6442383e07f6aa68fbe504037101a87">   32</a></span>&#160;<span class="preprocessor">#define GUAC_USER_ID_PREFIX &#39;@&#39;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="user-constants_8h.html#a9e0884fe25345c84beac1c5a13b1c5ce">   38</a></span>&#160;<span class="preprocessor">#define GUAC_USER_MAX_STREAMS 64</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="user-constants_8h.html#a8749ef8d1917591b82b7747edc85d275">   43</a></span>&#160;<span class="preprocessor">#define GUAC_USER_CLOSED_STREAM_INDEX -1</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="user-constants_8h.html#afbdfab527f553d531ce690cabd4ae1e7">   48</a></span>&#160;<span class="preprocessor">#define GUAC_USER_MAX_OBJECTS 64</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="user-constants_8h.html#ae0609bd43bffdfa9ebb8da62f8118c9f">   53</a></span>&#160;<span class="preprocessor">#define GUAC_USER_UNDEFINED_OBJECT_INDEX -1</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="user-constants_8h.html#acb353db4f79b67678376bb521db182e5">   58</a></span>&#160;<span class="preprocessor">#define GUAC_USER_OBJECT_ROOT_NAME &quot;/&quot;</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="user-constants_8h.html#af3135ba0f5c4cf3099374f612446b490">   65</a></span>&#160;<span class="preprocessor">#define GUAC_USER_STREAM_INDEX_MIMETYPE &quot;application/vnd.glyptodon.guacamole.stream-index+json&quot;</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/user-fntypes_8h.html b/doc/1.1.0/libguac/user-fntypes_8h.html
new file mode 100644
index 0000000..345f07b
--- /dev/null
+++ b/doc/1.1.0/libguac/user-fntypes_8h.html
@@ -0,0 +1,602 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user-fntypes.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">user-fntypes.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Function type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object.  
+<a href="#details">More...</a></p>
+
+<p><a href="user-fntypes_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a99c5146e0ab1df9ba2b2574fb26fbddf"><td class="memItemLeft" align="right" valign="top">typedef void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, void *data)</td></tr>
+<tr class="memdesc:a99c5146e0ab1df9ba2b2574fb26fbddf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback which relates to a single <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> at a time, along with arbitrary data.  <a href="#a99c5146e0ab1df9ba2b2574fb26fbddf">More...</a><br /></td></tr>
+<tr class="separator:a99c5146e0ab1df9ba2b2574fb26fbddf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a337a3fe8b983e3e25e25dbb836ea2694"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, int x, int y, int button_mask)</td></tr>
+<tr class="memdesc:a337a3fe8b983e3e25e25dbb836ea2694"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole mouse events, invoked when a "mouse" instruction has been received from a user.  <a href="#a337a3fe8b983e3e25e25dbb836ea2694">More...</a><br /></td></tr>
+<tr class="separator:a337a3fe8b983e3e25e25dbb836ea2694"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a48d196c39615f6a1ff9b129267cb402e"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, int keysym, int pressed)</td></tr>
+<tr class="memdesc:a48d196c39615f6a1ff9b129267cb402e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole key events, invoked when a "key" event has been received from a user.  <a href="#a48d196c39615f6a1ff9b129267cb402e">More...</a><br /></td></tr>
+<tr class="separator:a48d196c39615f6a1ff9b129267cb402e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d2777aaa35f39e5ba5e803a3ffbd137"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype)</td></tr>
+<tr class="memdesc:a1d2777aaa35f39e5ba5e803a3ffbd137"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole audio streams received from a user.  <a href="#a1d2777aaa35f39e5ba5e803a3ffbd137">More...</a><br /></td></tr>
+<tr class="separator:a1d2777aaa35f39e5ba5e803a3ffbd137"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1658ce15f8c6fe958e873015e12aeed9"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype)</td></tr>
+<tr class="memdesc:a1658ce15f8c6fe958e873015e12aeed9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole clipboard streams received from a user.  <a href="#a1658ce15f8c6fe958e873015e12aeed9">More...</a><br /></td></tr>
+<tr class="separator:a1658ce15f8c6fe958e873015e12aeed9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca3c0d12202f7888146bb95986011b6f"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, int width, int height)</td></tr>
+<tr class="memdesc:aca3c0d12202f7888146bb95986011b6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole size events, invoked when a "size" instruction has been received from a user.  <a href="#aca3c0d12202f7888146bb95986011b6f">More...</a><br /></td></tr>
+<tr class="separator:aca3c0d12202f7888146bb95986011b6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c24aa9dee9ee4be3f3d21e1e24b9e3e"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *filename)</td></tr>
+<tr class="memdesc:a6c24aa9dee9ee4be3f3d21e1e24b9e3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole file streams received from a user.  <a href="#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">More...</a><br /></td></tr>
+<tr class="separator:a6c24aa9dee9ee4be3f3d21e1e24b9e3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab7ae6833c33b39618a8b78603581ff79"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *name)</td></tr>
+<tr class="memdesc:ab7ae6833c33b39618a8b78603581ff79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole pipe streams received from a user.  <a href="#ab7ae6833c33b39618a8b78603581ff79">More...</a><br /></td></tr>
+<tr class="separator:ab7ae6833c33b39618a8b78603581ff79"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a50636d9fb70c454a5e82cbf6ee4f9c8a"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *name)</td></tr>
+<tr class="memdesc:a50636d9fb70c454a5e82cbf6ee4f9c8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole argument value (argv) streams received from a user.  <a href="#a50636d9fb70c454a5e82cbf6ee4f9c8a">More...</a><br /></td></tr>
+<tr class="separator:a50636d9fb70c454a5e82cbf6ee4f9c8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aead320956199884ff6af82d49d6163c1"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, void *data, int length)</td></tr>
+<tr class="memdesc:aead320956199884ff6af82d49d6163c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole stream blobs.  <a href="#aead320956199884ff6af82d49d6163c1">More...</a><br /></td></tr>
+<tr class="separator:aead320956199884ff6af82d49d6163c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88f4b7af6d47c82f65e9332afcc7ab09"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *error, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status)</td></tr>
+<tr class="memdesc:a88f4b7af6d47c82f65e9332afcc7ab09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole stream "ack" instructions.  <a href="#a88f4b7af6d47c82f65e9332afcc7ab09">More...</a><br /></td></tr>
+<tr class="separator:a88f4b7af6d47c82f65e9332afcc7ab09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa8b0e25073cbe710265dc8a0ed150ca"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream)</td></tr>
+<tr class="memdesc:afa8b0e25073cbe710265dc8a0ed150ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole stream "end" instructions.  <a href="#afa8b0e25073cbe710265dc8a0ed150ca">More...</a><br /></td></tr>
+<tr class="separator:afa8b0e25073cbe710265dc8a0ed150ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88717a7ab29ac1e4a853fcc2caa8f872"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, int argc, char **argv)</td></tr>
+<tr class="memdesc:a88717a7ab29ac1e4a853fcc2caa8f872"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole join events.  <a href="#a88717a7ab29ac1e4a853fcc2caa8f872">More...</a><br /></td></tr>
+<tr class="separator:a88717a7ab29ac1e4a853fcc2caa8f872"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaa5806d288a42d93a54864b6c35617b8"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:aaa5806d288a42d93a54864b6c35617b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole leave events.  <a href="#aaa5806d288a42d93a54864b6c35617b8">More...</a><br /></td></tr>
+<tr class="separator:aaa5806d288a42d93a54864b6c35617b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab60c51d865526c5c5d2c096e4fcb5539"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp)</td></tr>
+<tr class="memdesc:ab60c51d865526c5c5d2c096e4fcb5539"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole sync events.  <a href="#ab60c51d865526c5c5d2c096e4fcb5539">More...</a><br /></td></tr>
+<tr class="separator:ab60c51d865526c5c5d2c096e4fcb5539"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab8b7cadf31aeac0b2ac0ce4f46dafe81"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__object.html">guac_object</a> *object, char *name)</td></tr>
+<tr class="memdesc:ab8b7cadf31aeac0b2ac0ce4f46dafe81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole object get requests.  <a href="#ab8b7cadf31aeac0b2ac0ce4f46dafe81">More...</a><br /></td></tr>
+<tr class="separator:ab8b7cadf31aeac0b2ac0ce4f46dafe81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd4c60871cc2dbbbdc82f58ae1c5baa0"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__object.html">guac_object</a> *object, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *name)</td></tr>
+<tr class="memdesc:afd4c60871cc2dbbbdc82f58ae1c5baa0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole object put requests.  <a href="#afd4c60871cc2dbbbdc82f58ae1c5baa0">More...</a><br /></td></tr>
+<tr class="separator:afd4c60871cc2dbbbdc82f58ae1c5baa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Function type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object. </p>
+</div><h2 class="groupheader">Typedef Documentation</h2>
+<a id="a88f4b7af6d47c82f65e9332afcc7ab09"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a88f4b7af6d47c82f65e9332afcc7ab09">&#9670;&nbsp;</a></span>guac_user_ack_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_ack_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *error, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole stream "ack" instructions. </p>
+<p>A user will send "ack" instructions to acknowledge the successful receipt of blobs along a stream opened by the server, or to notify of errors. An "ack" with an error status implicitly closes the stream.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user sending the "ack" instruction.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream for which the "ack" was received.</td></tr>
+    <tr><td class="paramname">error</td><td>An arbitrary, human-readable message describing the error that occurred, if any. If no error occurs, this will likely be blank, "SUCCESS", or similar. This value exists for the sake of readability, not for the sake of data interchange.</td></tr>
+    <tr><td class="paramname">status</td><td>GUAC_PROTOCOL_STATUS_SUCCESS if the blob was received and handled successfully, or a different status code describing the problem if an error occurred and the stream has been implicitly closed.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the "ack" message was successfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a50636d9fb70c454a5e82cbf6ee4f9c8a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a50636d9fb70c454a5e82cbf6ee4f9c8a">&#9670;&nbsp;</a></span>guac_user_argv_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_argv_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *name)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole argument value (argv) streams received from a user. </p>
+<p>Argument value streams are real-time revisions to the connection parameters of an in-progress connection. Each such argument value stream begins when the user sends a "argv" instruction. To handle received data along this stream, implementations of this handler must assign blob and end handlers to the given stream object.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that opened the argument value stream.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream object allocated by libguac to represent the argument value stream opened by the user.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data that will be sent along the stream.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the connection parameter being updated. It is up to the implementation of this handler to decide whether and how to update a connection parameter.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the opening of the argument value stream has been handled successfully, or non-zero if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="a1d2777aaa35f39e5ba5e803a3ffbd137"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1d2777aaa35f39e5ba5e803a3ffbd137">&#9670;&nbsp;</a></span>guac_user_audio_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_audio_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole audio streams received from a user. </p>
+<p>Each such audio stream begins when the user sends an "audio" instruction. To handle received data along this stream, implementations of this handler must assign blob and end handlers to the given stream object.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that opened the audio stream.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream object allocated by libguac to represent the audio stream opened by the user.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data that will be sent along the stream.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the opening of the audio stream has been handled successfully, or non-zero if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="aead320956199884ff6af82d49d6163c1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aead320956199884ff6af82d49d6163c1">&#9670;&nbsp;</a></span>guac_user_blob_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_blob_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, void *data, int length)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole stream blobs. </p>
+<p>Each blob originates from a "blob" instruction which was associated with a previously-created stream.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that is sending this blob of data along the stream.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream along which the blob was received. The semantics associated with this stream are determined by the manner of its creation.</td></tr>
+    <tr><td class="paramname">data</td><td>The blob of data received.</td></tr>
+    <tr><td class="paramname">length</td><td>The number of bytes within the blob of data received.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the blob of data was successfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a99c5146e0ab1df9ba2b2574fb26fbddf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a99c5146e0ab1df9ba2b2574fb26fbddf">&#9670;&nbsp;</a></span>guac_user_callback</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void* guac_user_callback(<a class="el" href="structguac__user.html">guac_user</a> *user, void *data)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Callback which relates to a single <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> at a time, along with arbitrary data. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client. ">guac_client_foreach_user()</a> </dd>
+<dd>
+<a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a" title="Calls the given function with the currently-connected user that is marked as the owner. ">guac_client_for_owner()</a></dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user for which this callback was invoked. Depending on whether <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client. ">guac_client_foreach_user()</a> or <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a" title="Calls the given function with the currently-connected user that is marked as the owner. ">guac_client_for_owner()</a> was called, this will either be the current user as the "foreach" iteration continues, or the owner of the connection. If <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a" title="Calls the given function with the currently-connected user that is marked as the owner. ">guac_client_for_owner()</a> was called for a connection which has no owner, this may be NULL.</td></tr>
+    <tr><td class="paramname">data</td><td>The arbitrary data passed to <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client. ">guac_client_foreach_user()</a> or <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a" title="Calls the given function with the currently-connected user that is marked as the owner. ">guac_client_for_owner()</a>.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>An arbitrary return value, the semantics of which are determined by the implementation of the callback and the manner of its user. In the case of a callback provided to <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client. ">guac_client_foreach_user()</a>, this value is always discarded. </dd></dl>
+
+</div>
+</div>
+<a id="a1658ce15f8c6fe958e873015e12aeed9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1658ce15f8c6fe958e873015e12aeed9">&#9670;&nbsp;</a></span>guac_user_clipboard_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_clipboard_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole clipboard streams received from a user. </p>
+<p>Each such clipboard stream begins when the user sends a "clipboard" instruction. To handle received data along this stream, implementations of this handler must assign blob and end handlers to the given stream object.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that opened the clipboard stream.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream object allocated by libguac to represent the clipboard stream opened by the user.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data that will be sent along the stream.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the opening of the clipboard stream has been handled successfully, or non-zero if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="afa8b0e25073cbe710265dc8a0ed150ca"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afa8b0e25073cbe710265dc8a0ed150ca">&#9670;&nbsp;</a></span>guac_user_end_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_end_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole stream "end" instructions. </p>
+<p>End instructions are sent by the user when a stream is closing because its end has been reached.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that sent the "end" instruction.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream that is being closed.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the end-of-stream condition has been sucessfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a6c24aa9dee9ee4be3f3d21e1e24b9e3e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">&#9670;&nbsp;</a></span>guac_user_file_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_file_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *filename)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole file streams received from a user. </p>
+<p>Each such file stream begins when the user sends a "file" instruction. To handle received data along this stream, implementations of this handler must assign blob and end handlers to the given stream object.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that opened the file stream.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream object allocated by libguac to represent the file stream opened by the user.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data that will be sent along the stream.</td></tr>
+    <tr><td class="paramname">filename</td><td>The name of the file being transferred.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the opening of the file stream has been handled successfully, or non-zero if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="ab8b7cadf31aeac0b2ac0ce4f46dafe81"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab8b7cadf31aeac0b2ac0ce4f46dafe81">&#9670;&nbsp;</a></span>guac_user_get_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_get_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__object.html">guac_object</a> *object, char *name)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole object get requests. </p>
+<p>The semantics of the stream which will be created in response to the request are determined by the type of the object and the name of the stream requested. It is up to the implementation of this handler to then respond with a "body" instruction that begins the requested stream.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user requesting read access to the stream having the given name.</td></tr>
+    <tr><td class="paramname">object</td><td>The object from which the given named stream is being requested.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the stream being requested.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the get request was successfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a88717a7ab29ac1e4a853fcc2caa8f872"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a88717a7ab29ac1e4a853fcc2caa8f872">&#9670;&nbsp;</a></span>guac_user_join_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_join_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, int argc, char **argv)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole join events. </p>
+<p>A join event is fired by the <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> whenever a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> joins the connection. There is no instruction associated with a join event.</p>
+<p>Implementations of the join handler MUST NOT use the client-level broadcast socket, nor invoke <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client. ">guac_client_foreach_user()</a> or <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a" title="Calls the given function with the currently-connected user that is marked as the owner. ">guac_client_for_owner()</a>. Doing so will result in undefined behavior, including segfaults.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user joining the connection. The <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> associated with the connection will already be populated within the user object.</td></tr>
+    <tr><td class="paramname">argc</td><td>The number of arguments stored within argv.</td></tr>
+    <tr><td class="paramname">argv</td><td>An array of all arguments provided by the user when they joined. These arguments must correspond to the argument names declared when the <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> was initialized. If the number of arguments does not match the number of argument names declared, then the joining user has violated the Guacamole protocol.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the user has been successfully initialized and should be allowed to join the connection, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a48d196c39615f6a1ff9b129267cb402e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a48d196c39615f6a1ff9b129267cb402e">&#9670;&nbsp;</a></span>guac_user_key_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_key_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, int keysym, int pressed)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole key events, invoked when a "key" event has been received from a user. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that sent the key event.</td></tr>
+    <tr><td class="paramname">keysym</td><td>The X11 keysym of the key that was pressed or released.</td></tr>
+    <tr><td class="paramname">pressed</td><td>Non-zero if the key represented by the given keysym is currently pressed, zero if it is released.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the key event was handled successfully, or non-zero if an error occurred. </dd></dl>
+
+</div>
+</div>
+<a id="aaa5806d288a42d93a54864b6c35617b8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aaa5806d288a42d93a54864b6c35617b8">&#9670;&nbsp;</a></span>guac_user_leave_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_leave_handler(<a class="el" href="structguac__user.html">guac_user</a> *user)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole leave events. </p>
+<p>A leave event is fired by the <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> whenever a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> leaves the connection. There is no instruction associated with a leave event.</p>
+<p>Implementations of the leave handler MUST NOT use the client-level broadcast socket, nor invoke <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client. ">guac_client_foreach_user()</a> or <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a" title="Calls the given function with the currently-connected user that is marked as the owner. ">guac_client_for_owner()</a>. Doing so will result in undefined behavior, including segfaults.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that has left the connection.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the leave event has been successfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a337a3fe8b983e3e25e25dbb836ea2694"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a337a3fe8b983e3e25e25dbb836ea2694">&#9670;&nbsp;</a></span>guac_user_mouse_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_mouse_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, int x, int y, int button_mask)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole mouse events, invoked when a "mouse" instruction has been received from a user. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that sent the mouse event.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the mouse within the display when the event occurred, in pixels. This value is not guaranteed to be within the bounds of the display area.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the mouse within the display when the event occurred, in pixels. This value is not guaranteed to be within the bounds of the display area.</td></tr>
+    <tr><td class="paramname">button_mask</td><td>An integer value representing the current state of each button, where the Nth bit within the integer is set to 1 if and only if the Nth mouse button is currently pressed. The lowest-order bit is the left mouse button, followed by the middle button, right button, and finally the up and down buttons of the scroll wheel.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2" title="The flag set in the mouse button mask when the left mouse button is down. ">GUAC_CLIENT_MOUSE_LEFT</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124" title="The flag set in the mouse button mask when the middle mouse button is down. ">GUAC_CLIENT_MOUSE_MIDDLE</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f" title="The flag set in the mouse button mask when the right mouse button is down. ">GUAC_CLIENT_MOUSE_RIGHT</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d" title="The flag set in the mouse button mask when the mouse scrollwheel is scrolled up. ">GUAC_CLIENT_MOUSE_SCROLL_UP</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0" title="The flag set in the mouse button mask when the mouse scrollwheel is scrolled down. ">GUAC_CLIENT_MOUSE_SCROLL_DOWN</a></dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the mouse event was handled successfully, or non-zero if an error occurred. </dd></dl>
+
+</div>
+</div>
+<a id="ab7ae6833c33b39618a8b78603581ff79"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab7ae6833c33b39618a8b78603581ff79">&#9670;&nbsp;</a></span>guac_user_pipe_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_pipe_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *name)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole pipe streams received from a user. </p>
+<p>Pipe streams are unidirectional, arbitrary, named pipes. Each such pipe stream begins when the user sends a "pipe" instruction. To handle received data along this stream, implementations of this handler must assign blob and end handlers to the given stream object.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that opened the pipe stream.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream object allocated by libguac to represent the pipe stream opened by the user.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data that will be sent along the stream.</td></tr>
+    <tr><td class="paramname">name</td><td>The arbitrary name assigned to this pipe. It is up to the implementation of this handler and the application containing the Guacamole client to determine the semantics of a pipe stream having this name.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the opening of the pipe stream has been handled successfully, or non-zero if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="afd4c60871cc2dbbbdc82f58ae1c5baa0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afd4c60871cc2dbbbdc82f58ae1c5baa0">&#9670;&nbsp;</a></span>guac_user_put_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_put_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__object.html">guac_object</a> *object, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *name)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole object put requests. </p>
+<p>Put requests implicitly create a stream, the semantics of which are determined by the type of the object and the name of the stream requested.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user requesting write access to the stream having the given name.</td></tr>
+    <tr><td class="paramname">object</td><td>The object from which the given named stream is being requested.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream along which the blobs which should be written to the named stream will be received.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data that will be received along the given stream.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the stream being requested.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the put request was successfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="aca3c0d12202f7888146bb95986011b6f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aca3c0d12202f7888146bb95986011b6f">&#9670;&nbsp;</a></span>guac_user_size_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_size_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, int width, int height)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole size events, invoked when a "size" instruction has been received from a user. </p>
+<p>A "size" instruction indicates that the desired display size has changed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user whose desired display size has changed.</td></tr>
+    <tr><td class="paramname">width</td><td>The desired width of the display, in pixels.</td></tr>
+    <tr><td class="paramname">height</td><td>The desired height of the display, in pixels.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the size event has been successfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="ab60c51d865526c5c5d2c096e4fcb5539"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab60c51d865526c5c5d2c096e4fcb5539">&#9670;&nbsp;</a></span>guac_user_sync_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_sync_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole sync events. </p>
+<p>A sync event is fired by the <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> whenever a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> responds to a "sync" instruction. Sync instructions are sent by the Guacamole server to mark the logical end of a frame, and to inform the Guacamole client that all data up to a particular point in time has been sent. The response from the Guacamole client similarly indicates that all data received up to a particular point in server time has been handled.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that sent the "sync" instruction.</td></tr>
+    <tr><td class="paramname">timestamp</td><td>The timestamp contained within the sync instruction.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the sync event has been handled successfully, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/user-fntypes_8h_source.html b/doc/1.1.0/libguac/user-fntypes_8h_source.html
new file mode 100644
index 0000000..26e8868
--- /dev/null
+++ b/doc/1.1.0/libguac/user-fntypes_8h_source.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user-fntypes.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">user-fntypes.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="user-fntypes_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_USER_FNTYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_USER_FNTYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="object-types_8h.html">object-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="protocol-types_8h.html">protocol-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timestamp-types_8h.html">timestamp-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-types_8h.html">user-types.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">   59</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span>* <a class="code" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">void</span>* data);</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">   95</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        <span class="keywordtype">int</span> button_mask);</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">  116</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> keysym, <span class="keywordtype">int</span> pressed);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">  138</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        <span class="keywordtype">char</span>* mimetype);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">  161</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        <span class="keywordtype">char</span>* mimetype);</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">  182</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user,</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">  208</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* filename);</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">  237</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;        <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">  267</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">  290</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;        <span class="keywordtype">void</span>* data, <span class="keywordtype">int</span> length);</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">  319</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;        <span class="keywordtype">char</span>* error, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status);</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">  336</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream);</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">  366</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv);</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">  385</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">  406</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp);</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">  427</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;        <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">  454</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;        <a class="code" href="structguac__stream.html">guac_stream</a>* stream, <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;</div><div class="ttc" id="user-fntypes_8h_html_ab8b7cadf31aeac0b2ac0ce4f46dafe81"><div class="ttname"><a href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a></div><div class="ttdeci">int guac_user_get_handler(guac_user *user, guac_object *object, char *name)</div><div class="ttdoc">Handler for Guacamole object get requests. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:427</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a1d2777aaa35f39e5ba5e803a3ffbd137"><div class="ttname"><a href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a></div><div class="ttdeci">int guac_user_audio_handler(guac_user *user, guac_stream *stream, char *mimetype)</div><div class="ttdoc">Handler for Guacamole audio streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:138</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a99c5146e0ab1df9ba2b2574fb26fbddf"><div class="ttname"><a href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a></div><div class="ttdeci">void * guac_user_callback(guac_user *user, void *data)</div><div class="ttdoc">Callback which relates to a single guac_user at a time, along with arbitrary data. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:59</div></div>
+<div class="ttc" id="user-fntypes_8h_html_ab60c51d865526c5c5d2c096e4fcb5539"><div class="ttname"><a href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a></div><div class="ttdeci">int guac_user_sync_handler(guac_user *user, guac_timestamp timestamp)</div><div class="ttdoc">Handler for Guacamole sync events. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:406</div></div>
+<div class="ttc" id="user-fntypes_8h_html_aca3c0d12202f7888146bb95986011b6f"><div class="ttname"><a href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a></div><div class="ttdeci">int guac_user_size_handler(guac_user *user, int width, int height)</div><div class="ttdoc">Handler for Guacamole size events, invoked when a &quot;size&quot; instruction has been received from a user...</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:182</div></div>
+<div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams. </div></div>
+<div class="ttc" id="user-fntypes_8h_html_a337a3fe8b983e3e25e25dbb836ea2694"><div class="ttname"><a href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a></div><div class="ttdeci">int guac_user_mouse_handler(guac_user *user, int x, int y, int button_mask)</div><div class="ttdoc">Handler for Guacamole mouse events, invoked when a &quot;mouse&quot; instruction has been received from a user...</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:95</div></div>
+<div class="ttc" id="object-types_8h_html"><div class="ttname"><a href="object-types_8h.html">object-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol objects. </div></div>
+<div class="ttc" id="user-fntypes_8h_html_afa8b0e25073cbe710265dc8a0ed150ca"><div class="ttname"><a href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a></div><div class="ttdeci">int guac_user_end_handler(guac_user *user, guac_stream *stream)</div><div class="ttdoc">Handler for Guacamole stream &quot;end&quot; instructions. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:336</div></div>
+<div class="ttc" id="structguac__object_html"><div class="ttname"><a href="structguac__object.html">guac_object</a></div><div class="ttdoc">Represents a single object within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> object.h:32</div></div>
+<div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared...</div><div class="ttdef"><b>Definition:</b> user.h:101</div></div>
+<div class="ttc" id="user-fntypes_8h_html_aead320956199884ff6af82d49d6163c1"><div class="ttname"><a href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a></div><div class="ttdeci">int guac_user_blob_handler(guac_user *user, guac_stream *stream, void *data, int length)</div><div class="ttdoc">Handler for Guacamole stream blobs. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:290</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a50636d9fb70c454a5e82cbf6ee4f9c8a"><div class="ttname"><a href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a></div><div class="ttdeci">int guac_user_argv_handler(guac_user *user, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole argument value (argv) streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:267</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a48d196c39615f6a1ff9b129267cb402e"><div class="ttname"><a href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a></div><div class="ttdeci">int guac_user_key_handler(guac_user *user, int keysym, int pressed)</div><div class="ttdoc">Handler for Guacamole key events, invoked when a &quot;key&quot; event has been received from a user...</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:116</div></div>
+<div class="ttc" id="protocol-types_8h_html"><div class="ttname"><a href="protocol-types_8h.html">protocol-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole protocol. </div></div>
+<div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds. </div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a6c24aa9dee9ee4be3f3d21e1e24b9e3e"><div class="ttname"><a href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a></div><div class="ttdeci">int guac_user_file_handler(guac_user *user, guac_stream *stream, char *mimetype, char *filename)</div><div class="ttdoc">Handler for Guacamole file streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:208</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a1658ce15f8c6fe958e873015e12aeed9"><div class="ttname"><a href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a></div><div class="ttdeci">int guac_user_clipboard_handler(guac_user *user, guac_stream *stream, char *mimetype)</div><div class="ttdoc">Handler for Guacamole clipboard streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:161</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a88f4b7af6d47c82f65e9332afcc7ab09"><div class="ttname"><a href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a></div><div class="ttdeci">int guac_user_ack_handler(guac_user *user, guac_stream *stream, char *error, guac_protocol_status status)</div><div class="ttdoc">Handler for Guacamole stream &quot;ack&quot; instructions. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:319</div></div>
+<div class="ttc" id="user-fntypes_8h_html_ab7ae6833c33b39618a8b78603581ff79"><div class="ttname"><a href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a></div><div class="ttdeci">int guac_user_pipe_handler(guac_user *user, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole pipe streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:237</div></div>
+<div class="ttc" id="user-fntypes_8h_html_afd4c60871cc2dbbbdc82f58ae1c5baa0"><div class="ttname"><a href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a></div><div class="ttdeci">int guac_user_put_handler(guac_user *user, guac_object *object, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole object put requests. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:454</div></div>
+<div class="ttc" id="user-fntypes_8h_html_aaa5806d288a42d93a54864b6c35617b8"><div class="ttname"><a href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a></div><div class="ttdeci">int guac_user_leave_handler(guac_user *user)</div><div class="ttdoc">Handler for Guacamole leave events. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:385</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a></div><div class="ttdeci">guac_protocol_status</div><div class="ttdoc">Set of all possible status codes returned by protocol operations. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:44</div></div>
+<div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a88717a7ab29ac1e4a853fcc2caa8f872"><div class="ttname"><a href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a></div><div class="ttdeci">int guac_user_join_handler(guac_user *user, int argc, char **argv)</div><div class="ttdoc">Handler for Guacamole join events. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:366</div></div>
+<div class="ttc" id="timestamp-types_8h_html"><div class="ttname"><a href="timestamp-types_8h.html">timestamp-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol timestamps. </div></div>
+<div class="ttc" id="user-types_8h_html"><div class="ttname"><a href="user-types_8h.html">user-types.h</a></div><div class="ttdoc">Type definitions related to the guac_user object. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/user-types_8h.html b/doc/1.1.0/libguac/user-types_8h.html
new file mode 100644
index 0000000..dfdf532
--- /dev/null
+++ b/doc/1.1.0/libguac/user-types_8h.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">user-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object.  
+<a href="#details">More...</a></p>
+
+<p><a href="user-types_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/user-types_8h_source.html b/doc/1.1.0/libguac/user-types_8h_source.html
new file mode 100644
index 0000000..14e5759
--- /dev/null
+++ b/doc/1.1.0/libguac/user-types_8h_source.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">user-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="user-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_USER_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_USER_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__user.html">guac_user</a> <a class="code" href="structguac__user.html">guac_user</a>;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__user__info.html">guac_user_info</a> <a class="code" href="structguac__user__info.html">guac_user_info</a>;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared...</div><div class="ttdef"><b>Definition:</b> user.h:101</div></div>
+<div class="ttc" id="structguac__user__info_html"><div class="ttname"><a href="structguac__user__info.html">guac_user_info</a></div><div class="ttdoc">Information exposed by the remote client during the connection handshake which can be used by a clien...</div><div class="ttdef"><b>Definition:</b> user.h:46</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/user_8h.html b/doc/1.1.0/libguac/user_8h.html
new file mode 100644
index 0000000..30c1fc9
--- /dev/null
+++ b/doc/1.1.0/libguac/user_8h.html
@@ -0,0 +1,1177 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">user.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Defines the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object, which represents a physical connection within a larger, possibly shared, logical connection represented by a <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>.  
+<a href="#details">More...</a></p>
+
+<p><a href="user_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html">guac_user_info</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Information exposed by the remote client during the connection handshake which can be used by a client plugin.  <a href="structguac__user__info.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html">guac_user</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Representation of a physical connection within a larger logical connection which may be shared.  <a href="structguac__user.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a586cd1d712dce0db02d57684ddcb02ef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a586cd1d712dce0db02d57684ddcb02ef">guac_user_alloc</a> ()</td></tr>
+<tr class="memdesc:a586cd1d712dce0db02d57684ddcb02ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new, blank user, not associated with any specific client or socket.  <a href="#a586cd1d712dce0db02d57684ddcb02ef">More...</a><br /></td></tr>
+<tr class="separator:a586cd1d712dce0db02d57684ddcb02ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e0e1220fd00fd769b8e6b731f8c9bf8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8">guac_user_free</a> (<a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a7e0e1220fd00fd769b8e6b731f8c9bf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees the given user and all associated resources.  <a href="#a7e0e1220fd00fd769b8e6b731f8c9bf8">More...</a><br /></td></tr>
+<tr class="separator:a7e0e1220fd00fd769b8e6b731f8c9bf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28f08ab54f138796dea4655ef54526fe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a28f08ab54f138796dea4655ef54526fe">guac_user_handle_connection</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, int usec_timeout)</td></tr>
+<tr class="memdesc:a28f08ab54f138796dea4655ef54526fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles all I/O for the portion of a user's Guacamole connection following the initial "select" instruction, including the rest of the handshake.  <a href="#a28f08ab54f138796dea4655ef54526fe">More...</a><br /></td></tr>
+<tr class="separator:a28f08ab54f138796dea4655ef54526fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0303ef487d51b06bb0f007f1a5df0d78"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78">guac_user_handle_instruction</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, const char *opcode, int argc, char **argv)</td></tr>
+<tr class="memdesc:a0303ef487d51b06bb0f007f1a5df0d78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call the appropriate handler defined by the given user for the given instruction.  <a href="#a0303ef487d51b06bb0f007f1a5df0d78">More...</a><br /></td></tr>
+<tr class="separator:a0303ef487d51b06bb0f007f1a5df0d78"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a35a47c81b581f7aff3eb04c2a6d35b7c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">guac_user_alloc_stream</a> (<a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a35a47c81b581f7aff3eb04c2a6d35b7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new stream.  <a href="#a35a47c81b581f7aff3eb04c2a6d35b7c">More...</a><br /></td></tr>
+<tr class="separator:a35a47c81b581f7aff3eb04c2a6d35b7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3b3c740837b8e2cae6a232b45ca362f4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4">guac_user_free_stream</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream)</td></tr>
+<tr class="memdesc:a3b3c740837b8e2cae6a232b45ca362f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the given stream to the pool of available streams, such that it can be reused by any subsequent call to <a class="el" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c" title="Allocates a new stream. ">guac_user_alloc_stream()</a>.  <a href="#a3b3c740837b8e2cae6a232b45ca362f4">More...</a><br /></td></tr>
+<tr class="separator:a3b3c740837b8e2cae6a232b45ca362f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8216ec7024947564fb4ea6b8b0b07eaf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf">guac_user_stop</a> (<a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a8216ec7024947564fb4ea6b8b0b07eaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals the given user that it must disconnect, or advises cooperating services that the given user is no longer connected.  <a href="#a8216ec7024947564fb4ea6b8b0b07eaf">More...</a><br /></td></tr>
+<tr class="separator:a8216ec7024947564fb4ea6b8b0b07eaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0eff54a869374e37237b2006ad77b958"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a0eff54a869374e37237b2006ad77b958">guac_user_abort</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status, const char *format,...)</td></tr>
+<tr class="memdesc:a0eff54a869374e37237b2006ad77b958"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred.  <a href="#a0eff54a869374e37237b2006ad77b958">More...</a><br /></td></tr>
+<tr class="separator:a0eff54a869374e37237b2006ad77b958"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad8529247b551cb93509236a7f9138dd2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#ad8529247b551cb93509236a7f9138dd2">vguac_user_abort</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status, const char *format, va_list ap)</td></tr>
+<tr class="memdesc:ad8529247b551cb93509236a7f9138dd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred.  <a href="#ad8529247b551cb93509236a7f9138dd2">More...</a><br /></td></tr>
+<tr class="separator:ad8529247b551cb93509236a7f9138dd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab19481d0800901190d3d734eae466151"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#ab19481d0800901190d3d734eae466151">guac_user_log</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, const char *format,...)</td></tr>
+<tr class="memdesc:ab19481d0800901190d3d734eae466151"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a message in the log used by the given user.  <a href="#ab19481d0800901190d3d734eae466151">More...</a><br /></td></tr>
+<tr class="separator:ab19481d0800901190d3d734eae466151"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af15509bcb891932a3fa93a142018b95c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#af15509bcb891932a3fa93a142018b95c">vguac_user_log</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, const char *format, va_list ap)</td></tr>
+<tr class="memdesc:af15509bcb891932a3fa93a142018b95c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a message in the log used by the given user.  <a href="#af15509bcb891932a3fa93a142018b95c">More...</a><br /></td></tr>
+<tr class="separator:af15509bcb891932a3fa93a142018b95c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6fa98ba49213d610491248cf085aaf56"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__object.html">guac_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a> (<a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a6fa98ba49213d610491248cf085aaf56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new object.  <a href="#a6fa98ba49213d610491248cf085aaf56">More...</a><br /></td></tr>
+<tr class="separator:a6fa98ba49213d610491248cf085aaf56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf92065fb6bbc92f9794ea50255acdb9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#acf92065fb6bbc92f9794ea50255acdb9">guac_user_free_object</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__object.html">guac_object</a> *object)</td></tr>
+<tr class="memdesc:acf92065fb6bbc92f9794ea50255acdb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the given object to the pool of available objects, such that it can be reused by any subsequent call to <a class="el" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56" title="Allocates a new object. ">guac_user_alloc_object()</a>.  <a href="#acf92065fb6bbc92f9794ea50255acdb9">More...</a><br /></td></tr>
+<tr class="separator:acf92065fb6bbc92f9794ea50255acdb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3f85461f15abfb46fd7c732538b33ea"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#aa3f85461f15abfb46fd7c732538b33ea">guac_user_stream_argv</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *mimetype, const char *name, const char *value)</td></tr>
+<tr class="memdesc:aa3f85461f15abfb46fd7c732538b33ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the given connection parameter value over an argument value stream ("argv" instruction), exposing the current value of the named connection parameter to the given user.  <a href="#aa3f85461f15abfb46fd7c732538b33ea">More...</a><br /></td></tr>
+<tr class="separator:aa3f85461f15abfb46fd7c732538b33ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a35e4c7ba75a16c0b512d543ef4fe9630"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630">guac_user_stream_png</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, cairo_surface_t *surface)</td></tr>
+<tr class="memdesc:a35e4c7ba75a16c0b512d543ef4fe9630"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the image data of the given surface over an image stream ("img" instruction) as PNG-encoded data.  <a href="#a35e4c7ba75a16c0b512d543ef4fe9630">More...</a><br /></td></tr>
+<tr class="separator:a35e4c7ba75a16c0b512d543ef4fe9630"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e947ee6996d5711f18d5b785757ccb3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a6e947ee6996d5711f18d5b785757ccb3">guac_user_stream_jpeg</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, cairo_surface_t *surface, int quality)</td></tr>
+<tr class="memdesc:a6e947ee6996d5711f18d5b785757ccb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the image data of the given surface over an image stream ("img" instruction) as JPEG-encoded data at the given quality.  <a href="#a6e947ee6996d5711f18d5b785757ccb3">More...</a><br /></td></tr>
+<tr class="separator:a6e947ee6996d5711f18d5b785757ccb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af00042d94cb64fb8ac92cd84aff05bf8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8">guac_user_stream_webp</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, cairo_surface_t *surface, int quality, int lossless)</td></tr>
+<tr class="memdesc:af00042d94cb64fb8ac92cd84aff05bf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the image data of the given surface over an image stream ("img" instruction) as WebP-encoded data at the given quality.  <a href="#af00042d94cb64fb8ac92cd84aff05bf8">More...</a><br /></td></tr>
+<tr class="separator:af00042d94cb64fb8ac92cd84aff05bf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a26d186ee6b669c78278124ece46cc8f7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7">guac_user_supports_webp</a> (<a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a26d186ee6b669c78278124ece46cc8f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the given user supports WebP.  <a href="#a26d186ee6b669c78278124ece46cc8f7">More...</a><br /></td></tr>
+<tr class="separator:a26d186ee6b669c78278124ece46cc8f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7530b31b5a621a4f68fdce4bee2bdc5f"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f">guac_user_parse_args_string</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, const char **arg_names, const char **argv, int index, const char *default_value)</td></tr>
+<tr class="memdesc:a7530b31b5a621a4f68fdce4bee2bdc5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Automatically handles a single argument received from a joining user, returning a newly-allocated string containing that value.  <a href="#a7530b31b5a621a4f68fdce4bee2bdc5f">More...</a><br /></td></tr>
+<tr class="separator:a7530b31b5a621a4f68fdce4bee2bdc5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a08f6fd4d84de665487a45fb324dc8844"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a08f6fd4d84de665487a45fb324dc8844">guac_user_parse_args_int</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, const char **arg_names, const char **argv, int index, int default_value)</td></tr>
+<tr class="memdesc:a08f6fd4d84de665487a45fb324dc8844"><td class="mdescLeft">&#160;</td><td class="mdescRight">Automatically handles a single integer argument received from a joining user, returning the integer value of that argument.  <a href="#a08f6fd4d84de665487a45fb324dc8844">More...</a><br /></td></tr>
+<tr class="separator:a08f6fd4d84de665487a45fb324dc8844"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f0bae838d82357e95e98769f7b98cd2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a5f0bae838d82357e95e98769f7b98cd2">guac_user_parse_args_boolean</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, const char **arg_names, const char **argv, int index, int default_value)</td></tr>
+<tr class="memdesc:a5f0bae838d82357e95e98769f7b98cd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Automatically handles a single boolean argument received from a joining user, returning the value of that argument (either 1 for true or 0 for false).  <a href="#a5f0bae838d82357e95e98769f7b98cd2">More...</a><br /></td></tr>
+<tr class="separator:a5f0bae838d82357e95e98769f7b98cd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Defines the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object, which represents a physical connection within a larger, possibly shared, logical connection represented by a <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a0eff54a869374e37237b2006ad77b958"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0eff54a869374e37237b2006ad77b958">&#9670;&nbsp;</a></span>guac_user_abort()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_abort </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>&#160;</td>
+          <td class="paramname"><em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred. </p>
+<p>Note that this is a completely cooperative signal, and can be ignored by the user or the hosting daemon. The message given will be logged to the system logs.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to signal to stop. </td></tr>
+    <tr><td class="paramname">status</td><td>The status to send over the Guacamole protocol. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">...</td><td>Arguments to use when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a586cd1d712dce0db02d57684ddcb02ef"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a586cd1d712dce0db02d57684ddcb02ef">&#9670;&nbsp;</a></span>guac_user_alloc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__user.html">guac_user</a>* guac_user_alloc </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new, blank user, not associated with any specific client or socket. </p>
+<dl class="section return"><dt>Returns</dt><dd>The newly allocated <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a>, or NULL if allocation failed. </dd></dl>
+
+</div>
+</div>
+<a id="a6fa98ba49213d610491248cf085aaf56"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6fa98ba49213d610491248cf085aaf56">&#9670;&nbsp;</a></span>guac_user_alloc_object()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__object.html">guac_object</a>* guac_user_alloc_object </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new object. </p>
+<p>An arbitrary index is automatically assigned if no previously-allocated object is available for use.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to allocate the object for.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The next available object, or a newly allocated object. </dd></dl>
+
+</div>
+</div>
+<a id="a35a47c81b581f7aff3eb04c2a6d35b7c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a35a47c81b581f7aff3eb04c2a6d35b7c">&#9670;&nbsp;</a></span>guac_user_alloc_stream()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__stream.html">guac_stream</a>* guac_user_alloc_stream </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new stream. </p>
+<p>An arbitrary index is automatically assigned if no previously-allocated stream is available for use.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to allocate the stream for.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The next available stream, or a newly allocated stream, or NULL if the maximum number of active streams has been reached. </dd></dl>
+
+</div>
+</div>
+<a id="a7e0e1220fd00fd769b8e6b731f8c9bf8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7e0e1220fd00fd769b8e6b731f8c9bf8">&#9670;&nbsp;</a></span>guac_user_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Frees the given user and all associated resources. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="acf92065fb6bbc92f9794ea50255acdb9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acf92065fb6bbc92f9794ea50255acdb9">&#9670;&nbsp;</a></span>guac_user_free_object()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_free_object </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__object.html">guac_object</a> *&#160;</td>
+          <td class="paramname"><em>object</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the given object to the pool of available objects, such that it can be reused by any subsequent call to <a class="el" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56" title="Allocates a new object. ">guac_user_alloc_object()</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to return the object to.</td></tr>
+    <tr><td class="paramname">object</td><td>The object to return to the pool of available object. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a3b3c740837b8e2cae6a232b45ca362f4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3b3c740837b8e2cae6a232b45ca362f4">&#9670;&nbsp;</a></span>guac_user_free_stream()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_free_stream </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the given stream to the pool of available streams, such that it can be reused by any subsequent call to <a class="el" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c" title="Allocates a new stream. ">guac_user_alloc_stream()</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to return the stream to. </td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to return to the pool of available stream. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a28f08ab54f138796dea4655ef54526fe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a28f08ab54f138796dea4655ef54526fe">&#9670;&nbsp;</a></span>guac_user_handle_connection()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_handle_connection </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>usec_timeout</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handles all I/O for the portion of a user's Guacamole connection following the initial "select" instruction, including the rest of the handshake. </p>
+<p>The handshake-related properties of the given <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> are automatically populated, and <a class="el" href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78" title="Call the appropriate handler defined by the given user for the given instruction. ...">guac_user_handle_instruction()</a> is invoked for all instructions received after the handshake has completed. This function blocks until the connection/user is aborted or the user disconnects.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user whose handshake and entire Guacamole protocol exchange should be handled. The user must already be associated with a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> and <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>, and the <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> must already be fully initialized.</td></tr>
+    <tr><td class="paramname">usec_timeout</td><td>The number of microseconds to wait for instructions from the given user before closing the connection with an error.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the user's Guacamole connection was successfully handled and the user has disconnected, or non-zero if an error prevented the user's connection from being handled properly. </dd></dl>
+
+</div>
+</div>
+<a id="a0303ef487d51b06bb0f007f1a5df0d78"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0303ef487d51b06bb0f007f1a5df0d78">&#9670;&nbsp;</a></span>guac_user_handle_instruction()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_handle_instruction </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>opcode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>argc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char **&#160;</td>
+          <td class="paramname"><em>argv</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Call the appropriate handler defined by the given user for the given instruction. </p>
+<p>A comparison is made between the instruction opcode and the initial handler lookup table defined in user-handlers.c. The initial handlers will in turn call the user's handler (if defined).</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user whose handlers should be called.</td></tr>
+    <tr><td class="paramname">opcode</td><td>The opcode of the instruction to pass to the user via the appropriate handler.</td></tr>
+    <tr><td class="paramname">argc</td><td>The number of arguments which are part of the instruction.</td></tr>
+    <tr><td class="paramname">argv</td><td>An array of all arguments which are part of the instruction.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Non-negative if the instruction was handled successfully, or negative if an error occurred. </dd></dl>
+
+</div>
+</div>
+<a id="ab19481d0800901190d3d734eae466151"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab19481d0800901190d3d734eae466151">&#9670;&nbsp;</a></span>guac_user_log()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_log </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a>&#160;</td>
+          <td class="paramname"><em>level</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes a message in the log used by the given user. </p>
+<p>The logger used will normally be defined by guacd (or whichever program loads the user) by setting the logging handlers of the user when it is loaded.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user logging this message. </td></tr>
+    <tr><td class="paramname">level</td><td>The level at which to log this message. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">...</td><td>Arguments to use when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a5f0bae838d82357e95e98769f7b98cd2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5f0bae838d82357e95e98769f7b98cd2">&#9670;&nbsp;</a></span>guac_user_parse_args_boolean()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_parse_args_boolean </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>arg_names</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>argv</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>default_value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Automatically handles a single boolean argument received from a joining user, returning the value of that argument (either 1 for true or 0 for false). </p>
+<p>Only "true" and "false" are legitimate values for a boolean argument. If the argument provided by the user is blank or invalid, the default value is returned.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user joining the connection and providing the given arguments.</td></tr>
+    <tr><td class="paramname">arg_names</td><td>A NULL-terminated array of argument names, corresponding to the provided array of argument values. This array must be exactly the same size as the argument value array, with one additional entry for the NULL terminator.</td></tr>
+    <tr><td class="paramname">argv</td><td>An array of all argument values, corresponding to the provided array of argument names. This array must be exactly the same size as the argument name array, with the exception of the NULL terminator.</td></tr>
+    <tr><td class="paramname">index</td><td>The index of the entry in both the arg_names and argv arrays which corresponds to the argument being parsed.</td></tr>
+    <tr><td class="paramname">default_value</td><td>The value to return if the provided argument is blank or invalid.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>true (1) if the provided argument value is "true", false (0) if the provided argument value is "false", or the default value if the provided argument value is blank or invalid. </dd></dl>
+
+</div>
+</div>
+<a id="a08f6fd4d84de665487a45fb324dc8844"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a08f6fd4d84de665487a45fb324dc8844">&#9670;&nbsp;</a></span>guac_user_parse_args_int()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_parse_args_int </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>arg_names</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>argv</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>default_value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Automatically handles a single integer argument received from a joining user, returning the integer value of that argument. </p>
+<p>If the argument provided by the user is blank or invalid, the default value is returned.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user joining the connection and providing the given arguments.</td></tr>
+    <tr><td class="paramname">arg_names</td><td>A NULL-terminated array of argument names, corresponding to the provided array of argument values. This array must be exactly the same size as the argument value array, with one additional entry for the NULL terminator.</td></tr>
+    <tr><td class="paramname">argv</td><td>An array of all argument values, corresponding to the provided array of argument names. This array must be exactly the same size as the argument name array, with the exception of the NULL terminator.</td></tr>
+    <tr><td class="paramname">index</td><td>The index of the entry in both the arg_names and argv arrays which corresponds to the argument being parsed.</td></tr>
+    <tr><td class="paramname">default_value</td><td>The value to return if the provided argument is blank or invalid.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The integer value parsed from the provided argument value, or the default value if the provided argument value is blank or invalid. </dd></dl>
+
+</div>
+</div>
+<a id="a7530b31b5a621a4f68fdce4bee2bdc5f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7530b31b5a621a4f68fdce4bee2bdc5f">&#9670;&nbsp;</a></span>guac_user_parse_args_string()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* guac_user_parse_args_string </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>arg_names</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>argv</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>default_value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Automatically handles a single argument received from a joining user, returning a newly-allocated string containing that value. </p>
+<p>If the argument provided by the user is blank, a newly-allocated string containing the default value is returned.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user joining the connection and providing the given arguments.</td></tr>
+    <tr><td class="paramname">arg_names</td><td>A NULL-terminated array of argument names, corresponding to the provided array of argument values. This array must be exactly the same size as the argument value array, with one additional entry for the NULL terminator.</td></tr>
+    <tr><td class="paramname">argv</td><td>An array of all argument values, corresponding to the provided array of argument names. This array must be exactly the same size as the argument name array, with the exception of the NULL terminator.</td></tr>
+    <tr><td class="paramname">index</td><td>The index of the entry in both the arg_names and argv arrays which corresponds to the argument being parsed.</td></tr>
+    <tr><td class="paramname">default_value</td><td>The value to return if the provided argument is blank. If this value is not NULL, the returned value will be a newly-allocated string containing this value.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A newly-allocated string containing the provided argument value. If the provided argument value is blank, this newly-allocated string will contain the default value. If the default value is NULL and the provided argument value is blank, no string will be allocated and NULL is returned. </dd></dl>
+
+</div>
+</div>
+<a id="a8216ec7024947564fb4ea6b8b0b07eaf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8216ec7024947564fb4ea6b8b0b07eaf">&#9670;&nbsp;</a></span>guac_user_stop()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_stop </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Signals the given user that it must disconnect, or advises cooperating services that the given user is no longer connected. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to stop. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="aa3f85461f15abfb46fd7c732538b33ea"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa3f85461f15abfb46fd7c732538b33ea">&#9670;&nbsp;</a></span>guac_user_stream_argv()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_stream_argv </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the given connection parameter value over an argument value stream ("argv" instruction), exposing the current value of the named connection parameter to the given user. </p>
+<p>The argument value stream will be automatically allocated and freed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The Guacamole user who should receive the connection parameter value.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the argument value stream should be sent.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data within the connection parameter value being sent.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the connection parameter being sent.</td></tr>
+    <tr><td class="paramname">value</td><td>The current value of the connection parameter being sent. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a6e947ee6996d5711f18d5b785757ccb3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6e947ee6996d5711f18d5b785757ccb3">&#9670;&nbsp;</a></span>guac_user_stream_jpeg()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_stream_jpeg </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>quality</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the image data of the given surface over an image stream ("img" instruction) as JPEG-encoded data at the given quality. </p>
+<p>The image stream will be automatically allocated and freed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The Guacamole user for whom the image stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the image stream should be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when rendering the image over the given layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">surface</td><td>A Cairo surface containing the image data to be streamed.</td></tr>
+    <tr><td class="paramname">quality</td><td>The JPEG image quality, which must be an integer value between 0 and 100 inclusive. Larger values indicate improving quality at the expense of larger file size. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a35e4c7ba75a16c0b512d543ef4fe9630"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a35e4c7ba75a16c0b512d543ef4fe9630">&#9670;&nbsp;</a></span>guac_user_stream_png()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_stream_png </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the image data of the given surface over an image stream ("img" instruction) as PNG-encoded data. </p>
+<p>The image stream will be automatically allocated and freed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The Guacamole user for whom the image stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the image stream should be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when rendering the image over the given layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">surface</td><td>A Cairo surface containing the image data to be streamed. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="af00042d94cb64fb8ac92cd84aff05bf8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af00042d94cb64fb8ac92cd84aff05bf8">&#9670;&nbsp;</a></span>guac_user_stream_webp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_stream_webp </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>quality</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>lossless</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the image data of the given surface over an image stream ("img" instruction) as WebP-encoded data at the given quality. </p>
+<p>The image stream will be automatically allocated and freed. If the server does not support WebP, this function has no effect, so be sure to check the result of <a class="el" href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7" title="Returns whether the given user supports WebP. ">guac_user_supports_webp()</a> or <a class="el" href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3" title="Returns whether all users of the given client support WebP. ">guac_client_supports_webp()</a> prior to calling this function.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The Guacamole user for whom the image stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the image stream should be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when rendering the image over the given layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">surface</td><td>A Cairo surface containing the image data to be streamed.</td></tr>
+    <tr><td class="paramname">quality</td><td>The WebP image quality, which must be an integer value between 0 and 100 inclusive. For lossy images, larger values indicate improving quality at the expense of larger file size. For lossless images, this dictates the quality of compression, with larger values producing smaller files at the expense of speed.</td></tr>
+    <tr><td class="paramname">lossless</td><td>Zero to encode a lossy image, non-zero to encode losslessly. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a26d186ee6b669c78278124ece46cc8f7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a26d186ee6b669c78278124ece46cc8f7">&#9670;&nbsp;</a></span>guac_user_supports_webp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_supports_webp </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns whether the given user supports WebP. </p>
+<p>If the user does not support WebP, or the server cannot encode WebP images, zero is returned.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The Guacamole user to check for WebP support.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Non-zero if the given user claims to support WebP and the server has been built with WebP support, zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="ad8529247b551cb93509236a7f9138dd2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad8529247b551cb93509236a7f9138dd2">&#9670;&nbsp;</a></span>vguac_user_abort()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void vguac_user_abort </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>&#160;</td>
+          <td class="paramname"><em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">va_list&#160;</td>
+          <td class="paramname"><em>ap</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred. </p>
+<p>Note that this is a completely cooperative signal, and can be ignored by the user or the hosting daemon. The message given will be logged to the system logs.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to signal to stop. </td></tr>
+    <tr><td class="paramname">status</td><td>The status to send over the Guacamole protocol. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">ap</td><td>The va_list containing the arguments to be used when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="af15509bcb891932a3fa93a142018b95c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af15509bcb891932a3fa93a142018b95c">&#9670;&nbsp;</a></span>vguac_user_log()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void vguac_user_log </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a>&#160;</td>
+          <td class="paramname"><em>level</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">va_list&#160;</td>
+          <td class="paramname"><em>ap</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes a message in the log used by the given user. </p>
+<p>The logger used will normally be defined by guacd (or whichever program loads the user) by setting the logging handlers of the user when it is loaded.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user logging this message. </td></tr>
+    <tr><td class="paramname">level</td><td>The level at which to log this message. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">ap</td><td>The va_list containing the arguments to be used when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/user_8h_source.html b/doc/1.1.0/libguac/user_8h_source.html
new file mode 100644
index 0000000..6f64fd0
--- /dev/null
+++ b/doc/1.1.0/libguac/user_8h_source.html
@@ -0,0 +1,170 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">user.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="user_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_USER_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_USER_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-types_8h.html">client-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="layer-types_8h.html">layer-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="pool-types_8h.html">pool-types.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timestamp-types_8h.html">timestamp-types.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-constants_8h.html">user-constants.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-fntypes_8h.html">user-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-types_8h.html">user-types.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo.h&gt;</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structguac__user__info.html">   46</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__user__info.html">guac_user_info</a> {</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">   54</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">optimal_width</a>;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structguac__user__info.html#a252079af642b62554566e8675dc43354">   62</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user__info.html#a252079af642b62554566e8675dc43354">optimal_height</a>;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">   68</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">audio_mimetypes</a>;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">   74</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">video_mimetypes</a>;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">   81</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">image_mimetypes</a>;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">   90</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">optimal_resolution</a>;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    </div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078">   97</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078">timezone</a>;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;};</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="structguac__user.html">  101</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__user.html">guac_user</a> {</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">  106</a></span>&#160;    <a class="code" href="structguac__client.html">guac_client</a>* <a class="code" href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">client</a>;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">  113</a></span>&#160;    <a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">socket</a>;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">  121</a></span>&#160;    <span class="keywordtype">char</span>* <a class="code" href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">user_id</a>;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">  127</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">owner</a>;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">  135</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">active</a>;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <a class="code" href="structguac__user.html">guac_user</a>* __prev;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <a class="code" href="structguac__user.html">guac_user</a>* __next;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">  157</a></span>&#160;    <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> <a class="code" href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">last_received_timestamp</a>;</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">  164</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">last_frame_duration</a>;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">  170</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">processing_lag</a>;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">  176</a></span>&#160;    <a class="code" href="structguac__user__info.html">guac_user_info</a> <a class="code" href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">info</a>;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <a class="code" href="structguac__pool.html">guac_pool</a>* __stream_pool;</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    <a class="code" href="structguac__stream.html">guac_stream</a>* __output_streams;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <a class="code" href="structguac__stream.html">guac_stream</a>* __input_streams;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <a class="code" href="structguac__pool.html">guac_pool</a>* __object_pool;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    <a class="code" href="structguac__object.html">guac_object</a>* __objects;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">  206</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">data</a>;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">  233</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a>* <a class="code" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">mouse_handler</a>;</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">  251</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a>* <a class="code" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">key_handler</a>;</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">  272</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a>* <a class="code" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">clipboard_handler</a>;</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">  289</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a>* <a class="code" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">size_handler</a>;</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">  308</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a>* <a class="code" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">file_handler</a>;</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">  327</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a>* <a class="code" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">pipe_handler</a>;</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">  346</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>* <a class="code" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">ack_handler</a>;</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">  365</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>* <a class="code" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">blob_handler</a>;</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">  383</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>* <a class="code" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">end_handler</a>;</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">  402</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a>* <a class="code" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">sync_handler</a>;</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">  421</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a>* <a class="code" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">leave_handler</a>;</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">  441</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>* <a class="code" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">get_handler</a>;</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"><a class="line" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">  461</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>* <a class="code" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">put_handler</a>;</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;</div><div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">  483</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a>* <a class="code" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">audio_handler</a>;</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;</div><div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">  504</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a>* <a class="code" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">argv_handler</a>;</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;};</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;</div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;<a class="code" href="structguac__user.html">guac_user</a>* <a class="code" href="user_8h.html#a586cd1d712dce0db02d57684ddcb02ef">guac_user_alloc</a>();</div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;</div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8">guac_user_free</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a28f08ab54f138796dea4655ef54526fe">guac_user_handle_connection</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> usec_timeout);</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78">guac_user_handle_instruction</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>* opcode,</div><div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;        <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv);</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;<a class="code" href="structguac__stream.html">guac_stream</a>* <a class="code" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">guac_user_alloc_stream</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4">guac_user_free_stream</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream);</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf">guac_user_stop</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a0eff54a869374e37237b2006ad77b958">guac_user_abort</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status,</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;</div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#ad8529247b551cb93509236a7f9138dd2">vguac_user_abort</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status,</div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list ap);</div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;</div><div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#ab19481d0800901190d3d734eae466151">guac_user_log</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level,</div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;</div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#af15509bcb891932a3fa93a142018b95c">vguac_user_log</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level,</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list ap);</div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;</div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;<a class="code" href="structguac__object.html">guac_object</a>* <a class="code" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;</div><div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#acf92065fb6bbc92f9794ea50255acdb9">guac_user_free_object</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>);</div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;</div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#aa3f85461f15abfb46fd7c732538b33ea">guac_user_stream_argv</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value);</div><div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;</div><div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630">guac_user_stream_png</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;        cairo_surface_t* surface);</div><div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;</div><div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a6e947ee6996d5711f18d5b785757ccb3">guac_user_stream_jpeg</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;        cairo_surface_t* surface, <span class="keywordtype">int</span> quality);</div><div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;</div><div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8">guac_user_stream_webp</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;        cairo_surface_t* surface, <span class="keywordtype">int</span> quality, <span class="keywordtype">int</span> lossless);</div><div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;</div><div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7">guac_user_supports_webp</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;</div><div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;<span class="keywordtype">char</span>* <a class="code" href="user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f">guac_user_parse_args_string</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>** arg_names,</div><div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>** argv, <span class="keywordtype">int</span> index, <span class="keyword">const</span> <span class="keywordtype">char</span>* default_value);</div><div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;</div><div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a08f6fd4d84de665487a45fb324dc8844">guac_user_parse_args_int</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>** arg_names,</div><div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>** argv, <span class="keywordtype">int</span> index, <span class="keywordtype">int</span> default_value);</div><div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;</div><div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a5f0bae838d82357e95e98769f7b98cd2">guac_user_parse_args_boolean</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>** arg_names,</div><div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>** argv, <span class="keywordtype">int</span> index, <span class="keywordtype">int</span> default_value);</div><div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;</div><div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;</div><div class="ttc" id="structguac__user_html_a793f7ef1cd818c296e7a5801c349f5ed"><div class="ttname"><a href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">guac_user::end_handler</a></div><div class="ttdeci">guac_user_end_handler * end_handler</div><div class="ttdoc">Handler for stream end events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:383</div></div>
+<div class="ttc" id="user_8h_html_a6fa98ba49213d610491248cf085aaf56"><div class="ttname"><a href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a></div><div class="ttdeci">guac_object * guac_user_alloc_object(guac_user *user)</div><div class="ttdoc">Allocates a new object. </div></div>
+<div class="ttc" id="structguac__user_html_a0120f63e0eb933761666047ed80e483f"><div class="ttname"><a href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">guac_user::info</a></div><div class="ttdeci">guac_user_info info</div><div class="ttdoc">Information structure containing properties exposed by the remote user during the initial handshake p...</div><div class="ttdef"><b>Definition:</b> user.h:176</div></div>
+<div class="ttc" id="user_8h_html_af15509bcb891932a3fa93a142018b95c"><div class="ttname"><a href="user_8h.html#af15509bcb891932a3fa93a142018b95c">vguac_user_log</a></div><div class="ttdeci">void vguac_user_log(guac_user *user, guac_client_log_level level, const char *format, va_list ap)</div><div class="ttdoc">Writes a message in the log used by the given user. </div></div>
+<div class="ttc" id="structguac__user_html_ab9b8b3c268a0d14a28bdae6929cffb13"><div class="ttname"><a href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">guac_user::key_handler</a></div><div class="ttdeci">guac_user_key_handler * key_handler</div><div class="ttdoc">Handler for key events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:251</div></div>
+<div class="ttc" id="user-fntypes_8h_html_ab8b7cadf31aeac0b2ac0ce4f46dafe81"><div class="ttname"><a href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a></div><div class="ttdeci">int guac_user_get_handler(guac_user *user, guac_object *object, char *name)</div><div class="ttdoc">Handler for Guacamole object get requests. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:427</div></div>
+<div class="ttc" id="structguac__user_html_a209e83f080baf2e84d04cf08395374d2"><div class="ttname"><a href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">guac_user::sync_handler</a></div><div class="ttdeci">guac_user_sync_handler * sync_handler</div><div class="ttdoc">Handler for sync events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:402</div></div>
+<div class="ttc" id="structguac__user__info_html_ac19c08c0ef7441556be0afed6fb9c7c7"><div class="ttname"><a href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">guac_user_info::optimal_resolution</a></div><div class="ttdeci">int optimal_resolution</div><div class="ttdoc">The DPI of the physical remote display if configured for the optimal width/height combination describ...</div><div class="ttdef"><b>Definition:</b> user.h:90</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a1d2777aaa35f39e5ba5e803a3ffbd137"><div class="ttname"><a href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a></div><div class="ttdeci">int guac_user_audio_handler(guac_user *user, guac_stream *stream, char *mimetype)</div><div class="ttdoc">Handler for Guacamole audio streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:138</div></div>
+<div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object. </div></div>
+<div class="ttc" id="user-fntypes_8h_html_ab60c51d865526c5c5d2c096e4fcb5539"><div class="ttname"><a href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a></div><div class="ttdeci">int guac_user_sync_handler(guac_user *user, guac_timestamp timestamp)</div><div class="ttdoc">Handler for Guacamole sync events. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:406</div></div>
+<div class="ttc" id="structguac__user_html_ada73c04bbf06de4280f2d7679190a19b"><div class="ttname"><a href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">guac_user::get_handler</a></div><div class="ttdeci">guac_user_get_handler * get_handler</div><div class="ttdoc">Handler for get events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:441</div></div>
+<div class="ttc" id="structguac__user_html_a4b097cae9283bb0caf70189d4f3d1d0e"><div class="ttname"><a href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">guac_user::processing_lag</a></div><div class="ttdeci">int processing_lag</div><div class="ttdoc">The overall lag experienced by the user relative to the stream of frames, roughly excluding network l...</div><div class="ttdef"><b>Definition:</b> user.h:170</div></div>
+<div class="ttc" id="user-fntypes_8h_html_aca3c0d12202f7888146bb95986011b6f"><div class="ttname"><a href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a></div><div class="ttdeci">int guac_user_size_handler(guac_user *user, int width, int height)</div><div class="ttdoc">Handler for Guacamole size events, invoked when a &quot;size&quot; instruction has been received from a user...</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:182</div></div>
+<div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams. </div></div>
+<div class="ttc" id="structguac__user_html_aebdee192ef52dfe8956c776adc65fb16"><div class="ttname"><a href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">guac_user::last_received_timestamp</a></div><div class="ttdeci">guac_timestamp last_received_timestamp</div><div class="ttdoc">The time (in milliseconds) of receipt of the last sync message from the user. </div><div class="ttdef"><b>Definition:</b> user.h:157</div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole. </div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a337a3fe8b983e3e25e25dbb836ea2694"><div class="ttname"><a href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a></div><div class="ttdeci">int guac_user_mouse_handler(guac_user *user, int x, int y, int button_mask)</div><div class="ttdoc">Handler for Guacamole mouse events, invoked when a &quot;mouse&quot; instruction has been received from a user...</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:95</div></div>
+<div class="ttc" id="user-fntypes_8h_html_afa8b0e25073cbe710265dc8a0ed150ca"><div class="ttname"><a href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a></div><div class="ttdeci">int guac_user_end_handler(guac_user *user, guac_stream *stream)</div><div class="ttdoc">Handler for Guacamole stream &quot;end&quot; instructions. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:336</div></div>
+<div class="ttc" id="structguac__user_html_a88a14fda25c9929269d198d4d602f7fb"><div class="ttname"><a href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">guac_user::blob_handler</a></div><div class="ttdeci">guac_user_blob_handler * blob_handler</div><div class="ttdoc">Handler for blob events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:365</div></div>
+<div class="ttc" id="structguac__user_html_ad424a52c5d996e4a33de5dad61555883"><div class="ttname"><a href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">guac_user::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Arbitrary user-specific data. </div><div class="ttdef"><b>Definition:</b> user.h:206</div></div>
+<div class="ttc" id="structguac__user_html_a8b958a20fbe7cf082d5ee074fceac474"><div class="ttname"><a href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">guac_user::file_handler</a></div><div class="ttdeci">guac_user_file_handler * file_handler</div><div class="ttdoc">Handler for file events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:308</div></div>
+<div class="ttc" id="user_8h_html_a26d186ee6b669c78278124ece46cc8f7"><div class="ttname"><a href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7">guac_user_supports_webp</a></div><div class="ttdeci">int guac_user_supports_webp(guac_user *user)</div><div class="ttdoc">Returns whether the given user supports WebP. </div></div>
+<div class="ttc" id="structguac__user_html_a05ec6fd1894ff8df10c051b20df1b763"><div class="ttname"><a href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">guac_user::mouse_handler</a></div><div class="ttdeci">guac_user_mouse_handler * mouse_handler</div><div class="ttdoc">Handler for mouse events sent by the Gaucamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:233</div></div>
+<div class="ttc" id="client-types_8h_html"><div class="ttname"><a href="client-types_8h.html">client-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole client structure, guac_client. </div></div>
+<div class="ttc" id="user_8h_html_af00042d94cb64fb8ac92cd84aff05bf8"><div class="ttname"><a href="user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8">guac_user_stream_webp</a></div><div class="ttdeci">void guac_user_stream_webp(guac_user *user, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface, int quality, int lossless)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as WebP-encoded ...</div></div>
+<div class="ttc" id="structguac__object_html"><div class="ttname"><a href="structguac__object.html">guac_object</a></div><div class="ttdoc">Represents a single object within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> object.h:32</div></div>
+<div class="ttc" id="structguac__user_html_af35d1f6f2c97d917bf88cf66384f58a3"><div class="ttname"><a href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">guac_user::pipe_handler</a></div><div class="ttdeci">guac_user_pipe_handler * pipe_handler</div><div class="ttdoc">Handler for pipe events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:327</div></div>
+<div class="ttc" id="user_8h_html_a8216ec7024947564fb4ea6b8b0b07eaf"><div class="ttname"><a href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf">guac_user_stop</a></div><div class="ttdeci">void guac_user_stop(guac_user *user)</div><div class="ttdoc">Signals the given user that it must disconnect, or advises cooperating services that the given user i...</div></div>
+<div class="ttc" id="structguac__user_html_a77f042802092c8bbf4407836f3185343"><div class="ttname"><a href="structguac__user.html#a77f042802092c8bbf4407836f3185343">guac_user::clipboard_handler</a></div><div class="ttdeci">guac_user_clipboard_handler * clipboard_handler</div><div class="ttdoc">Handler for clipboard events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:272</div></div>
+<div class="ttc" id="structguac__user_html_ad44c1bf6ab56aae0098458a1af2aa6be"><div class="ttname"><a href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">guac_user::ack_handler</a></div><div class="ttdeci">guac_user_ack_handler * ack_handler</div><div class="ttdoc">Handler for ack events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:346</div></div>
+<div class="ttc" id="structguac__user__info_html_ac05b09cce376e656f4e4baa19f888345"><div class="ttname"><a href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">guac_user_info::image_mimetypes</a></div><div class="ttdeci">const char ** image_mimetypes</div><div class="ttdoc">NULL-terminated array of client-supported image mimetypes. </div><div class="ttdef"><b>Definition:</b> user.h:81</div></div>
+<div class="ttc" id="structguac__user_html_a265180af7291745b2e090ee6fa47cbb8"><div class="ttname"><a href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">guac_user::owner</a></div><div class="ttdeci">int owner</div><div class="ttdoc">Non-zero if this user is the owner of the associated connection, zero otherwise. </div><div class="ttdef"><b>Definition:</b> user.h:127</div></div>
+<div class="ttc" id="structguac__user_html_a391e11605bf5605df3e27f6f7d0e2c69"><div class="ttname"><a href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">guac_user::audio_handler</a></div><div class="ttdeci">guac_user_audio_handler * audio_handler</div><div class="ttdoc">Handler for audio events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:483</div></div>
+<div class="ttc" id="user_8h_html_a5f0bae838d82357e95e98769f7b98cd2"><div class="ttname"><a href="user_8h.html#a5f0bae838d82357e95e98769f7b98cd2">guac_user_parse_args_boolean</a></div><div class="ttdeci">int guac_user_parse_args_boolean(guac_user *user, const char **arg_names, const char **argv, int index, int default_value)</div><div class="ttdoc">Automatically handles a single boolean argument received from a joining user, returning the value of ...</div></div>
+<div class="ttc" id="user-fntypes_8h_html"><div class="ttname"><a href="user-fntypes_8h.html">user-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the guac_user object. </div></div>
+<div class="ttc" id="user_8h_html_a28f08ab54f138796dea4655ef54526fe"><div class="ttname"><a href="user_8h.html#a28f08ab54f138796dea4655ef54526fe">guac_user_handle_connection</a></div><div class="ttdeci">int guac_user_handle_connection(guac_user *user, int usec_timeout)</div><div class="ttdoc">Handles all I/O for the portion of a user&amp;#39;s Guacamole connection following the initial &quot;select&quot; instr...</div></div>
+<div class="ttc" id="structguac__user_html_a36a2fee906be0898907ba6e4a97bdb9a"><div class="ttname"><a href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">guac_user::size_handler</a></div><div class="ttdeci">guac_user_size_handler * size_handler</div><div class="ttdoc">Handler for size events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:289</div></div>
+<div class="ttc" id="structguac__user__info_html_a496d5f3d26a7db0a0490afa553126c66"><div class="ttname"><a href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">guac_user_info::optimal_width</a></div><div class="ttdeci">int optimal_width</div><div class="ttdoc">The number of pixels the remote client requests for the display width. </div><div class="ttdef"><b>Definition:</b> user.h:54</div></div>
+<div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared...</div><div class="ttdef"><b>Definition:</b> user.h:101</div></div>
+<div class="ttc" id="structguac__user__info_html"><div class="ttname"><a href="structguac__user__info.html">guac_user_info</a></div><div class="ttdoc">Information exposed by the remote client during the connection handshake which can be used by a clien...</div><div class="ttdef"><b>Definition:</b> user.h:46</div></div>
+<div class="ttc" id="user-fntypes_8h_html_aead320956199884ff6af82d49d6163c1"><div class="ttname"><a href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a></div><div class="ttdeci">int guac_user_blob_handler(guac_user *user, guac_stream *stream, void *data, int length)</div><div class="ttdoc">Handler for Guacamole stream blobs. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:290</div></div>
+<div class="ttc" id="user_8h_html_aa3f85461f15abfb46fd7c732538b33ea"><div class="ttname"><a href="user_8h.html#aa3f85461f15abfb46fd7c732538b33ea">guac_user_stream_argv</a></div><div class="ttdeci">void guac_user_stream_argv(guac_user *user, guac_socket *socket, const char *mimetype, const char *name, const char *value)</div><div class="ttdoc">Streams the given connection parameter value over an argument value stream (&quot;argv&quot; instruction)...</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a50636d9fb70c454a5e82cbf6ee4f9c8a"><div class="ttname"><a href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a></div><div class="ttdeci">int guac_user_argv_handler(guac_user *user, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole argument value (argv) streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:267</div></div>
+<div class="ttc" id="structguac__user_html_a12f1c20cab11d657e0f255db10f42e2f"><div class="ttname"><a href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">guac_user::leave_handler</a></div><div class="ttdeci">guac_user_leave_handler * leave_handler</div><div class="ttdoc">Handler for leave events fired by the guac_client when a guac_user is leaving an active connection...</div><div class="ttdef"><b>Definition:</b> user.h:421</div></div>
+<div class="ttc" id="structguac__user__info_html_a252079af642b62554566e8675dc43354"><div class="ttname"><a href="structguac__user__info.html#a252079af642b62554566e8675dc43354">guac_user_info::optimal_height</a></div><div class="ttdeci">int optimal_height</div><div class="ttdoc">The number of pixels the remote client requests for the display height. </div><div class="ttdef"><b>Definition:</b> user.h:62</div></div>
+<div class="ttc" id="pool-types_8h_html"><div class="ttname"><a href="pool-types_8h.html">pool-types.h</a></div><div class="ttdoc">Type definitions related to the guac_pool pool of unique integers. </div></div>
+<div class="ttc" id="structguac__user_html_ac7e84b1bf15d3d15ba49ce58f1819060"><div class="ttname"><a href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">guac_user::last_frame_duration</a></div><div class="ttdeci">int last_frame_duration</div><div class="ttdoc">The duration of the last frame rendered by the user, in milliseconds. </div><div class="ttdef"><b>Definition:</b> user.h:164</div></div>
+<div class="ttc" id="user_8h_html_a0303ef487d51b06bb0f007f1a5df0d78"><div class="ttname"><a href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78">guac_user_handle_instruction</a></div><div class="ttdeci">int guac_user_handle_instruction(guac_user *user, const char *opcode, int argc, char **argv)</div><div class="ttdoc">Call the appropriate handler defined by the given user for the given instruction. ...</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a48d196c39615f6a1ff9b129267cb402e"><div class="ttname"><a href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a></div><div class="ttdeci">int guac_user_key_handler(guac_user *user, int keysym, int pressed)</div><div class="ttdoc">Handler for Guacamole key events, invoked when a &quot;key&quot; event has been received from a user...</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:116</div></div>
+<div class="ttc" id="structguac__user_html_a1b52d918f437923d65e9b3eecb20fcfd"><div class="ttname"><a href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">guac_user::active</a></div><div class="ttdeci">int active</div><div class="ttdoc">Non-zero if this user is active (connected), and zero otherwise. </div><div class="ttdef"><b>Definition:</b> user.h:135</div></div>
+<div class="ttc" id="user_8h_html_ab19481d0800901190d3d734eae466151"><div class="ttname"><a href="user_8h.html#ab19481d0800901190d3d734eae466151">guac_user_log</a></div><div class="ttdeci">void guac_user_log(guac_user *user, guac_client_log_level level, const char *format,...)</div><div class="ttdoc">Writes a message in the log used by the given user. </div></div>
+<div class="ttc" id="structguac__user__info_html_ace535bea6879596b6473657f3fc83b57"><div class="ttname"><a href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">guac_user_info::video_mimetypes</a></div><div class="ttdeci">const char ** video_mimetypes</div><div class="ttdoc">NULL-terminated array of client-supported video mimetypes. </div><div class="ttdef"><b>Definition:</b> user.h:74</div></div>
+<div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds. </div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a6c24aa9dee9ee4be3f3d21e1e24b9e3e"><div class="ttname"><a href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a></div><div class="ttdeci">int guac_user_file_handler(guac_user *user, guac_stream *stream, char *mimetype, char *filename)</div><div class="ttdoc">Handler for Guacamole file streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:208</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a1658ce15f8c6fe958e873015e12aeed9"><div class="ttname"><a href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a></div><div class="ttdeci">int guac_user_clipboard_handler(guac_user *user, guac_stream *stream, char *mimetype)</div><div class="ttdoc">Handler for Guacamole clipboard streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:161</div></div>
+<div class="ttc" id="structguac__client_html"><div class="ttname"><a href="structguac__client.html">guac_client</a></div><div class="ttdoc">Guacamole proxy client. </div><div class="ttdef"><b>Definition:</b> client.h:46</div></div>
+<div class="ttc" id="user_8h_html_a3b3c740837b8e2cae6a232b45ca362f4"><div class="ttname"><a href="user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4">guac_user_free_stream</a></div><div class="ttdeci">void guac_user_free_stream(guac_user *user, guac_stream *stream)</div><div class="ttdoc">Returns the given stream to the pool of available streams, such that it can be reused by any subseque...</div></div>
+<div class="ttc" id="user_8h_html_a08f6fd4d84de665487a45fb324dc8844"><div class="ttname"><a href="user_8h.html#a08f6fd4d84de665487a45fb324dc8844">guac_user_parse_args_int</a></div><div class="ttdeci">int guac_user_parse_args_int(guac_user *user, const char **arg_names, const char **argv, int index, int default_value)</div><div class="ttdoc">Automatically handles a single integer argument received from a joining user, returning the integer v...</div></div>
+<div class="ttc" id="structguac__user__info_html_a043432620dafe7ba38fcd3550fdc7d27"><div class="ttname"><a href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">guac_user_info::audio_mimetypes</a></div><div class="ttdeci">const char ** audio_mimetypes</div><div class="ttdoc">NULL-terminated array of client-supported audio mimetypes. </div><div class="ttdef"><b>Definition:</b> user.h:68</div></div>
+<div class="ttc" id="structguac__pool_html"><div class="ttname"><a href="structguac__pool.html">guac_pool</a></div><div class="ttdoc">A pool of integers. </div><div class="ttdef"><b>Definition:</b> pool.h:34</div></div>
+<div class="ttc" id="structguac__user_html_ab6b6bdcd73d29132df5f331921ca287a"><div class="ttname"><a href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">guac_user::argv_handler</a></div><div class="ttdeci">guac_user_argv_handler * argv_handler</div><div class="ttdoc">Handler for argv events (updates to the connection parameters of an in-progress connection) sent by t...</div><div class="ttdef"><b>Definition:</b> user.h:504</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a88f4b7af6d47c82f65e9332afcc7ab09"><div class="ttname"><a href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a></div><div class="ttdeci">int guac_user_ack_handler(guac_user *user, guac_stream *stream, char *error, guac_protocol_status status)</div><div class="ttdoc">Handler for Guacamole stream &quot;ack&quot; instructions. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:319</div></div>
+<div class="ttc" id="user_8h_html_a35a47c81b581f7aff3eb04c2a6d35b7c"><div class="ttname"><a href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">guac_user_alloc_stream</a></div><div class="ttdeci">guac_stream * guac_user_alloc_stream(guac_user *user)</div><div class="ttdoc">Allocates a new stream. </div></div>
+<div class="ttc" id="user_8h_html_a7e0e1220fd00fd769b8e6b731f8c9bf8"><div class="ttname"><a href="user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8">guac_user_free</a></div><div class="ttdeci">void guac_user_free(guac_user *user)</div><div class="ttdoc">Frees the given user and all associated resources. </div></div>
+<div class="ttc" id="structguac__user_html_a8496638b8c4c52f5f15d483b92becf27"><div class="ttname"><a href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">guac_user::socket</a></div><div class="ttdeci">guac_socket * socket</div><div class="ttdoc">This user&amp;#39;s actual socket. </div><div class="ttdef"><b>Definition:</b> user.h:113</div></div>
+<div class="ttc" id="user-fntypes_8h_html_ab7ae6833c33b39618a8b78603581ff79"><div class="ttname"><a href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a></div><div class="ttdeci">int guac_user_pipe_handler(guac_user *user, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole pipe streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:237</div></div>
+<div class="ttc" id="user_8h_html_a7530b31b5a621a4f68fdce4bee2bdc5f"><div class="ttname"><a href="user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f">guac_user_parse_args_string</a></div><div class="ttdeci">char * guac_user_parse_args_string(guac_user *user, const char **arg_names, const char **argv, int index, const char *default_value)</div><div class="ttdoc">Automatically handles a single argument received from a joining user, returning a newly-allocated str...</div></div>
+<div class="ttc" id="user-fntypes_8h_html_afd4c60871cc2dbbbdc82f58ae1c5baa0"><div class="ttname"><a href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a></div><div class="ttdeci">int guac_user_put_handler(guac_user *user, guac_object *object, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole object put requests. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:454</div></div>
+<div class="ttc" id="layer-types_8h_html"><div class="ttname"><a href="layer-types_8h.html">layer-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole layers. </div></div>
+<div class="ttc" id="user-fntypes_8h_html_aaa5806d288a42d93a54864b6c35617b8"><div class="ttname"><a href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a></div><div class="ttdeci">int guac_user_leave_handler(guac_user *user)</div><div class="ttdoc">Handler for Guacamole leave events. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:385</div></div>
+<div class="ttc" id="protocol-types_8h_html_a93612063886db58071d02b5393abf186"><div class="ttname"><a href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a></div><div class="ttdeci">guac_composite_mode</div><div class="ttdoc">Composite modes used by Guacamole draw instructions. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:170</div></div>
+<div class="ttc" id="user_8h_html_a0eff54a869374e37237b2006ad77b958"><div class="ttname"><a href="user_8h.html#a0eff54a869374e37237b2006ad77b958">guac_user_abort</a></div><div class="ttdeci">void guac_user_abort(guac_user *user, guac_protocol_status status, const char *format,...)</div><div class="ttdoc">Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an e...</div></div>
+<div class="ttc" id="user_8h_html_a6e947ee6996d5711f18d5b785757ccb3"><div class="ttname"><a href="user_8h.html#a6e947ee6996d5711f18d5b785757ccb3">guac_user_stream_jpeg</a></div><div class="ttdeci">void guac_user_stream_jpeg(guac_user *user, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface, int quality)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as JPEG-encoded ...</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a></div><div class="ttdeci">guac_protocol_status</div><div class="ttdoc">Set of all possible status codes returned by protocol operations. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:44</div></div>
+<div class="ttc" id="structguac__layer_html"><div class="ttname"><a href="structguac__layer.html">guac_layer</a></div><div class="ttdoc">Represents a single layer within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> layer.h:34</div></div>
+<div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+<div class="ttc" id="structguac__user__info_html_a2c08990b6fd1e0627652a9c879ea2078"><div class="ttname"><a href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078">guac_user_info::timezone</a></div><div class="ttdeci">const char * timezone</div><div class="ttdoc">The timezone of the remote system. </div><div class="ttdef"><b>Definition:</b> user.h:97</div></div>
+<div class="ttc" id="structguac__user_html_a5e296149a26932dfeb7d8b0bac933ecf"><div class="ttname"><a href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">guac_user::client</a></div><div class="ttdeci">guac_client * client</div><div class="ttdoc">The guac_client to which this user belongs. </div><div class="ttdef"><b>Definition:</b> user.h:106</div></div>
+<div class="ttc" id="user_8h_html_ad8529247b551cb93509236a7f9138dd2"><div class="ttname"><a href="user_8h.html#ad8529247b551cb93509236a7f9138dd2">vguac_user_abort</a></div><div class="ttdeci">void vguac_user_abort(guac_user *user, guac_protocol_status status, const char *format, va_list ap)</div><div class="ttdoc">Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an e...</div></div>
+<div class="ttc" id="user_8h_html_acf92065fb6bbc92f9794ea50255acdb9"><div class="ttname"><a href="user_8h.html#acf92065fb6bbc92f9794ea50255acdb9">guac_user_free_object</a></div><div class="ttdeci">void guac_user_free_object(guac_user *user, guac_object *object)</div><div class="ttdoc">Returns the given object to the pool of available objects, such that it can be reused by any subseque...</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a></div><div class="ttdeci">guac_client_log_level</div><div class="ttdoc">All supported log levels used by the logging subsystem of each Guacamole client. </div><div class="ttdef"><b>Definition:</b> client-types.h:62</div></div>
+<div class="ttc" id="structguac__user_html_a0b33553d0e1af01d8c9fbc6ec33202c3"><div class="ttname"><a href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">guac_user::put_handler</a></div><div class="ttdeci">guac_user_put_handler * put_handler</div><div class="ttdoc">Handler for put events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:461</div></div>
+<div class="ttc" id="user_8h_html_a586cd1d712dce0db02d57684ddcb02ef"><div class="ttname"><a href="user_8h.html#a586cd1d712dce0db02d57684ddcb02ef">guac_user_alloc</a></div><div class="ttdeci">guac_user * guac_user_alloc()</div><div class="ttdoc">Allocates a new, blank user, not associated with any specific client or socket. </div></div>
+<div class="ttc" id="user_8h_html_a35e4c7ba75a16c0b512d543ef4fe9630"><div class="ttname"><a href="user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630">guac_user_stream_png</a></div><div class="ttdeci">void guac_user_stream_png(guac_user *user, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as PNG-encoded d...</div></div>
+<div class="ttc" id="structguac__user_html_aad1c6a8b56d17c12eb1f1e36c4798c70"><div class="ttname"><a href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">guac_user::user_id</a></div><div class="ttdeci">char * user_id</div><div class="ttdoc">The unique identifier allocated for this user, which may be used within the Guacamole protocol to ref...</div><div class="ttdef"><b>Definition:</b> user.h:121</div></div>
+<div class="ttc" id="timestamp-types_8h_html"><div class="ttname"><a href="timestamp-types_8h.html">timestamp-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol timestamps. </div></div>
+<div class="ttc" id="user-types_8h_html"><div class="ttname"><a href="user-types_8h.html">user-types.h</a></div><div class="ttdoc">Type definitions related to the guac_user object. </div></div>
+<div class="ttc" id="user-constants_8h_html"><div class="ttname"><a href="user-constants_8h.html">user-constants.h</a></div><div class="ttdoc">Constants related to the Guacamole user structure, guac_user. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+</body>
+</html>